MicroDexed - DX7 to go


Whaaaaaat? Not arrived yet? That’s pretty bad :disappointed_relieved:

More for the postman’s widow. You will get a PCB from the next charge for free!
(Next charge is currently not in production… I just need some time to check the new layout before producing a lot of expensive srap)

Regards, Holger


@wolfpaw98 between @C0d3man and me there is just land. Doing some little math, I think i could cover that distance by foot without sweating in half the time we waited… :smiley:


@C0d3man a question: do you think that a teensy 3.6 running microDexed have processing power left to scan a 61 keys velocity-sensitive keyboard? 'cause the case for my new Zyntiah is this:

Unfortunately its main board is beyond repair, but the keybed, front panel, and controls, are perfect… if there is some CPU time left, it could run uDexed and act as a MIDI class device for zynthian… else I’ll need two CPUs…


This is really a difficult question. The answer is: maybe. Currently 16 voices are working. For some algorithms there is not much CPU time left. But perhaps you don’t need to scan the keys every audio-block-cycle… other solution: just use only 15 voices of polyphony :wink:

I am thinking of an algorithm which does this automaticly: You can play as much tones until there is only a defined limit of CPU time for a cycle left…

BTW: I was thinking to do the same with a Fatar keyboard, but currently there is no time left for this project.

Regards, Holger


My best performance in poliphony is the two fingers version of chopsticks… go figure :smile:

A 1kHz scan frequency is enough. Most keyboard scan well over 2 kHz with custom chips… and this reminds me as I’m writing that… I have a box of EP2C5T144C8N FPGAs and I’m not afraid to use them… :thinking:


Hmmm, with 128 bytes per buffer you have a calculation frequency of about 345 Hz. So you may get a problem here. The best working buffer size is 64 bytes or about 689 Hz :frowning:

But why not using a simple Arduino/PIC/… with a matrix->MIDI engine and using MIDI for the Teensy (perhaps not the complex current loop variant, but the 5V serial one)?


Than’s the “else I’ll need two CPUs” part, @C0d3man :slight_smile:

But really, I think I’ll go with the FPGA… too much time has passed since I played with VHDL… moreover, with a 200MHz main clock and 90 I/O pins, I can scan the keybed and all the front panel buttons and leds faster and easier than any similar uP/uC setup

Unless you want a copy of the system for your keyboard (or as a part of Zynthian accessories), in that case I could use something more “hobbyist friendly” than a TQFP-144 package and the dreaded Altera software suite :smiley:


That’s really powerful. You can add several controllers…

Thanks - currently there is not much time for this project. I think there will be a lot of software for the Arduino to map a Painomatrix to MIDI and this would be the way I will try in the next ??? months.

Regards, Holger


I released a new version of MicroDexed. Currently not more features. Only some bugs are fixed and I replaced the MIDI engine with the one used in the MIDI library.

I also added a HEX file (in the hex-folder) for easy testing the software without my environment of libraries. I have done the same for MicroMDAEPiano.

The new commit will be at codeberg in the next 8 hours.

Regards, Holger


Not as many as you could think, IMHO.
At least, not for those “vanilla” Arduinos. Maybe 16MHz are not enough to scan 122 switches with enough frequency to get 127 levels of velocity. The best implementation I’ve found was on the teensy (hence my previous question).

As a note: the main CPU of Roland D5 runs at 12MHz, and it has two gate arrays to scan key matrix… not just the keybed, but front panel also…


My MicroDexed is almost ready to power up. I didn’t have a case so I designed one.
TeensyMidiAudioEnclosure.stl (161.9 KB)
TeensyMidiAudioEnclosureTop.stl (2.6 KB)

The stl files are for the case, a top, a top with cooling slots, a top with cooling slots and holes for screws.There was a message saying new users could only have two attachments so I guess I will need another post.


Here are the other two versions of the top.TeensyMidiAudioEnclosureTopSlotted.stl (48.3 KB)
TeensyMidiAudioEnclosureTopSlottedHoles.stl (137.6 KB)


Welcome @LenR

very nice and thanks for sharing! Does it produce “noise” already?

Regards, Holger


I still need to solder in the pins for the music board and make a final check on the connections. I’ll let you know soon. Chaos has necessitated a short break to get some order in my work space.


I am thinking of buying FM8. Would that make sounds I could move to this?


FM8 is MicroDexed^8!

MicroDexed is nearly full compatible with the “old” DX-7 (MicroDexed has no portamento, but 3 slightly different sound engines and less noise).

The DX7-II has a better engine and also less noise against the “old” one. You can also split or double voices (then only 8 notes per voice instead of 16), it has micro-tuning and some other smaller goodies.

Both DX-7 have 6 sinoid operators.

FM-8 has 8(!!!) sinoid operators, much more algorithms and features (AFAIK an Arpegiattor and effects). It is a FM-Monster and IMHO sounds really cool. But it is software… :neutral_face:

Forgot to answer your question:
Yes - (IMHO) FM8 can import DX7-SYSEX data. But with MicroDexed you currently cannot edit sounds (only with external SYSEX editor like CTRLR - but this is currently untested).

The other way (FM8->MicroDexed) may be possible but only if FM8 can export DX7-SYSEX format and only without the additional gimmicks of FM8.

Regards, Holger


FM8 to MicroDexed would be my interest so I could use FM8 as a sound editor and MicroDexed as a player.I would be pleasantly surprised if it can do that. I saw a project that put a breath controller and joystick on the CPU used in this project. Maybe I could integrate it, but maybe it would require too much from the CPU; we will see. I made this project to experiment with sound and figured to integrate the hardware pieces into one box and just run different software, but maybe it would make sense to add breath and joystick to the MicroDexed.

Regards, Len


Maybe this could work. You must have in mind that you only can use algorithms and parameters that a DX-7 supports. And FM8 must store the sounds as a 32-Voice-SYSEX (DX-7 compatible).

If you have an external (breath) controller which sends MIDI data with the expected controller number, it should work.

Regards, Holger


@LenR Perhaps JSynthLib is also a solution for editing? I hope this one will work, so I can check if my SYSEX implementation is ok.

Regards, Holger



I got my JSynthLib running and must say, that this is the first MIDI editor which is working for me on top of Linux. I now have FINALLY a patch editor for the MicroDexed and could therefore test the SYSEX handling (and repair it!). I don’t know if I got all the bugs fixed in the meantime, but at least the basic programming works.

What Dexed still lacks is receiving and storing complete VOICE- and BANK-SYSEX data. There is still no possibility to save parameters anyway. That comes next.

Regards, Holger

BTW: Dexed does now software MIDI-THRU. It forwards all data from the three possible ports to the other. Currently it is enabled by default and it is only a compile-time-option. This will be a configuration option later.