Are you running OS X?

If you are, can you do me a favor and right click on the Arduino app, go to Show Package Contents and navigate to the following file, and opening it in a text editor:

Arduino > Contents > Resources > Java > Hardware > Teensy > cores > usb_midi > usb_api.cpp

Do a search for the following line: type2 = b1 & 0xF0; and tell me what the next line of code is.

yup OSX:
it reads:

type2 = b1 & 0xF0;
    c = (b1 & 0x0F) + 1;

Ah yeah, can you do me a favor and remove the + 1? And then re-upload the code?

boom problem solved! strange to be doing that to the channels in the api...

It's just how I roll. I run a slightly modified version of Teensyduino, and having the channels indexed at 0 instead of at 1 makes more sense (to me).

unnf those square waves.. thank you sir.. having much fun with this little thing!


Firmware now supports up to four SN76489 chips.

Also added sample support. … -quad.html


that is insane heart heart

grea work!
sample support + an armada of pulse waves... now I will make some good use of my 10 SN76489N smile

An chance of a YM2149F version?

Maybe not YM2149F because I have none of those here.

But I have about 15 AY38912 chips, so I can make the same thing but for 5 x AY3812 / 38910 smile

Sweet. It'll work for both so it's cool.

Worth mentioning that as we lower the master clock , we gain access to lower notes but we also reduce the pitch resolution on higher octaves smile

If you wanted to get crazy, I'm sure there's a way to switch between clocks based on pitch so you can get the low notes when you need them on the lower clock, and toggle to a faster clock for higher pitches.