Nice project too, just quickly looking at it I noticed it’s using the ubs.h library that apparently is made specifically for the Arduino Due:
https://www.arduino.cc/en/Reference/USBHost

This should be changed if used with a different board like I’m doing with the Teensy+usb host chip.

Kinda similar to Monome this guy is showing how to make a standalone sequencer with the Launchpad:

All the logic for the sequencing is handled by the arduino as the Launchpad is only sending midi notes when pushing the buttons.

I was thinking of doing my own Launchpad sequencer too later…

2 Likes

oh you’re right, i forgot teensy can’t use that lib directly.

theres this, maybe similar/same API?

[ed] hm… no, not really the same.
[ed ed] but… not too bad. (Task exists, &c)
[ed ed ed] BUT… sorry i finally realized you said teensy 3.2 and a shield.

i haven’t really looked at this project for 5 years. port for both USBHostShield arduinos, and teensy 3.6+ would be useful. and i think all the FTDI and monome protocol stuff would translate.

maybe there is some newer / better option for usb host middleware across arduino types / shields.

FWIW - i have some code that does monome grid (and varibright) on Teensy.

It’s in the middle of some big refactoring that I want to get back to, but the proof of concept part works well.

This is messy but ¯_(ツ)_/¯

3 Likes

Realizing I may have misunderstood the question…

to HOST a monome grid with a teensy - this is totally doable on Teensy 3.6 without any monkeying around with FTDI or other libraries.

@scanner_darkly and I have this working on a project and we have code that hosts a grid or arc from a Teensy 3.6

2 Likes

oh - good to know that things are easier in 2019 than 2014

where might that code be? (not this one, it seems, despite the description https://github.com/okyeron/MonomeHost)

FTDI or other libraries

for clarity: FTDI is the usb->uart chip in older monome grids. these devices definitely require a host-side driver. on linux these are in the kernel. in 2012 i had to roll one for aleph and in 2014 i had to roll one for Due, both modeled on the linux sources. is there an official driver built into teensy libs these days?

Repo is @scanner_darkly’s - not sure it’s public. I’ll see if I can DM you a link.

FTDI stuff is built in on Teensy I think. (forum reference)

1 Like

(Sorry for the deluge of posts)

With Teensy 4, you could do the audio board and USB-host all in one - and not have to rely on a separate USB host chip. There’s a new Audio shield for Teensy 4

1 Like

Yes Teensy 4 is like Teensy 3.6 on the USB Host part so it is included.

Wow the audio board is now updated to work with it! I was waiting for that. I’ll get one soon then!

My solution was an intermediary one where I had a 3.2 with no USB Host and I though maybe it’s more valuable to have a separate USB chip that I can reuse with other micro-controllers later instead of getting a Teensy 3.6 (at the time there was no 4.0 yet). But unfortunately they discontinued that USB chip now… so not a long term solution finally.

For info the USB chip I’m using is this one:
http://www.hobbytronics.co.uk/usb-host-board-v2

1 Like

I added potentiometers to play with the modulator frequency and amplitude and the envelope:

4 Likes

Another spooky demo.

Now I made the buttons of the Launchpad to light up when I play notes, and they stay on as long as the notes are playing to have some feedback.

Still on a branch on GitHub because I’m not yet done with the Launchpad specific code.

1 Like

Hey,
It’s been some time, just wanted to give an update about my Teensy synth.

Now the synth is capable of FM, AM, and Ring modulation.
It offers also 3 modes, Synth, Arp and Drone.

I’m in the process of making a little video to demonstrate the final result.

In the meantime I updated the code and documentation on Github:

9 Likes

This guy made a cool drum machine out of two Teensies running Grids and Peaks software: https://kbob.github.io/2016/06/27/i-made-this-drum-machine

2 Likes

Hey,

Here is finally a complete demo of my synth including raw audio and demos with reverb at the end.

8 Likes

Ahhh, this is really cool. I saw your post on the teensy forums, should have guessed you were over here too.

Thanks for putting all your code on GitHub, it looks real good.

1 Like

This project has evolved so much since December last year… I have been completely out of the forum since then but I have been working on it and on many other things too.

I have developed 3 base platforms to build modules on top of them, I call them Motherboard6, Motherboard9 and Motherboard12.

I have reworked this synth, renamed it to just Synth, it is based on Motherboard6, so it has 6 controls now.

Here is a demo, I play from the laptop, sending midi via USB:

I have built also other modules, Psyc03 (an acid percussive synth), DS9 (a drum synth), Byte (a drum sequencer), Cycle (a note sequencer), and Drone (which is obvious).

They all communicate via midi over jacks from the back.
I am very close to be able to jam properly with my modules now, here is a recent test of 4 modules together:

7 Likes

By the way the code of this new version of Synth is on GitHub here:

7 Likes

This is an incredible idea, and I love it. So it’s basically digital, programmable modular, and you can write your own damn synths for it?

Do you plan to add a MIDI host module to this system? The ability to hook this up to external sequencers, controllers, and instruments would make it even more enticing.

3 Likes

Good questions.

So the core of the modules are the Teensy microcontroller, which is similar to Arduino but more powerful and has also an audio board that can be added on top of it to handle all the audio processing, giving good audio quality.

So Teensy allows for generating audio, transmitting and receiving Midi and reading inputs. It is indeed digital but it is capable of outputting CD quality, 16 bits, 44.1 kHz.

What I did is I created modular boards that allows to create modules. So the boards themselves are modular in the way that when you are about to solder your inputs on them, you can decide to go with buttons or potentiometers or rotary encoders.
So you can use the same board design to create many different modules. That makes it cheaper because when ordering PCB at any manufacturing company, you have a minimum quantity to order and the more quantity the lower the price. Also then I don’t have to design and maintain specific boards for each module which makes it simpler over time.

To be able to handle 3 different type of inputs I had to use multiple multiplexers, because the number of pins on Teensy is too limited, especially when the audio board is connected to it. But depending on what inputs you have (and outputs actually because you can have LEDs too) you can avoid some multiplexers.

So the boards I created so far are Motherboard6, Motherboard9, Motherboard12, the number indicates the number of inputs.

They all have 2 boards, one on which you solder the inputs, one on which you solder all other components, and both are connected together with header pins.

The Motherboards offer Midi input and output jacks on the back, the audio jack is on Teensy’s audio board on the back too, and there is also a dipswitch to select a midi channel for the module.

I designed them also folowing the Eurorack format so that they can be put into Eurorack rails. Though they are powered by micro USB.

Theoritically you can connect the Midi IN of these boards to any other device. I haven’t tested it though, and you have to know that there is no protection on the board to limit the current and voltage coming from the Midi jack, so if you are not careful you could burn the Teensy. Though this is something I will try to work on later.

Now on the code part, you can program your own synths/sequencers, pretty easily I would say. I provide examples and all the code of the modules I made. And what makes it cool I think is that because of the board being the same for many modules, then I was able to create one class per Motherboard (6,9,12) to handle the inputs/outputs, so that to make a new module all you need is to copy this class and concentrate on the audio or the higher level of logic for your module.

Coding a sequencer or a synth could take you just 1h I think when you are familiar with the Motherboard class.

So you can check there for all the code, I always push new things:

And if you’d like to buy the boards, I sell the extra one that I don’t use:

I hope this answers your questions!

1 Like

@Ben I think I didn’t replied to you so I’m not sure you got any notification