MidiGAL is yet another MIDI controller device inspired by Mutable Instruments MIDIpal.


MidiGAL can run original unmodified Mutable Instruments MIDIpal firmware midipal_v14. There is also a number of other firmware variants that were developed specifically for MidiGAL:

  • MidiClk — MIDI clock tester/generator (see below for new and improved version)
  • MidiArp — advanced MIDI arpeggiator
  • MidiSeq — polyphonic MIDI step sequencer
  • MidiDisp — MIDI events dispatcher
  • MidiClock — MIDI Clock tester (improved MidiClk MIDI clock tester)
  • MidiSync — MIDI Clock generator (improved MidiClk MIDI clock generator)
  • MidiGrids — Mutable Instruments Grids for MIDI (experimental, great with Digitakt)
  • midigal_110 — testing firmware, use it to test MidiGAL LCD, switch, encoder, MIDI I/O and EEPROM.

MidiGAL differences from MIDIpal

MidiGAL hardware is a superset of the original MIDIpal hardware:

  • 8×2 LCD (MIDIpal uses 8×1)
  • tactile switch (MIDIpal has no switch)
  • external EEPROM (MIDIpal has no external EEPROM)
  • 4 x I/O ports (MIDIpal has 8 of them)

DIY Resources

Firmware: midipal_v14 MidiClk_099   midiarp_113 midiseq_102 MidiDisp_100 midisync_106 MidiClock_101 midigrids_101

Bill of materials: MidiGAL BOM

Build instructions: Building MidiGAL

Schematics: midigal_sch

Board outline: midigal_dim, SMT: midigal_smd_top  midigal_smd_bottom

Case files: MidiGAL_Case_4 (thanks to Altitude909)

Test firmware with source code: MidiGAL_src (good starting point if you want to develop your own MIDI processing firmware for MidiGAL)


Acrylic case


This case requires 4 x 10mm (top) and 4 x 22mm (bottom) standoffs.

It is compatible with both long (25mm) and short (20mm) shaft encoders. Long encoder works with pretty much any 6mm D-shaft knob, whereas the short one needs a knob with 8mm skirt or less.

It expects rectangular switch button, the one that is specified in the BOM (TACBLK)

The .EPS file is formatted for Ponoko/Formular but any place should be able to accept it.

Ordering MidiGAL

To order MidiGAL, please send an email to pete at kvitek c o m specifying how many PCBs and pre-programmed MCUs you need, a country where to ship them, and an email address to send the PayPal invoice to.

MidiGAL PCB — $20

Pre-programmed ATMega328p — $10 (please specify the firmware variant)

Acrylic case with all the required hardware (stand offs, screws, nuts and rubber legs): — $30

Continental USA — $5 (California residents add 8.75% tax)
Canada — $15 or $20, if pre-built or a case is included
Europe — $20 or $25, if pre-built or a case is included
Australia — $20 or $25, if pre-built or a case is included

Please make sure your PayPal shipping address is correct!

If you don’t trust your soldering skills, we can build a MidiGAL or two for you. The order is usually fulfilled in a couple of days. Fully assembled MidiGAL in an acrylic case is $145 plus shipping, please email pete at kvitek c o m for details if you are interested.


Starting with March 2018, all fully assembled MidiGALs are SMT, unless you request otherwise. MidiGAL SMT is functionally identical to its original through hole variant and has exactly the same form factor:



214 thoughts on “MidiGAL

  1. Pingback: New project MidiGAL | MidiSizer

  2. No doubt this neat little device works in practice, but there are some puzzling deviations from various specifications and recommendations.

    Why are you using a 10 kΩ pull-up on the optocoupler? This will introduce quite large (but apparently mostly harmless) distortion in the low-to-high transitions.
    The 6N137 is specified only for 330 Ω to 4 kΩ (Fairchild forgot this in their datasheet, but other vendors didn’t); and the most commonly used value in MIDI devices is 1 kΩ.

    Why did you omit the decoupling capacitor from the 6N137?

    And why is there no 220 Ω resistor between the MCU’s TXD pin and the MIDI connector?

    • I picked up that particular MIDI IO circuit from the source I trust: it’s a proven design working perfectly in thousands builds.

      10K pullup is intentional: 6N137 is pretty fast, and we need to slow it down a bit so that fast transitions don’t disrupt ATmega MCU RAM which is a known issue of ATMega silicon. Decoupling capacitor is omitted because of slow transitions. I’m not sure why the output 220R resitors is omitted, will probably add it in my future builds. Thanks for pointing this out!

      • Increasing the pull-up’s value does increase the raise time of the output signal, but it does not affect the fall time, which is smaller to begin with. To smooth both transitions, you could add a small resistor and rely on stray capacitance, or add additional capacitance or inductance.
        The decoupling capacitor does not directly affect the output signal; its purpose is to suppress noise on the supply/ground lines.

      • Increasing pull-up resistor value was enough to alleviate RAM corruption problem w/o adding extra parts.

        Thank you for explaining what decoupling caps are for. With slow raise/fall times of the opto coupler decoupling cap does not seem to be necessary in this application.

        Feel free to solder one between pins 5 and 8 if you think this is a problem.

  3. Is it possible, to play four Mono-Synths in a poly-mode, like the vermona Perfourmer?
    If yes, i cant solder, so what would ist cos,t to get this instrument with a case to Germany?

    • Yeah, MIDIpal “dispatcher” app will do what you need. Pre-built MidiGAL is $120, shipping to EU is $15, this does not include the case which can be ordered at any laser cutter service.

      • when splitting the keyboard, can one part be arpegiated? For example, could I use the lower part of the keyboard for an arpegiated bass while using the upper part for a pad? cheers

      • Yes, MidiArp firmware supports keyboard zones, so you can set it to work like you described. See MidiArp manual here: https://midisizer.com/midigal/midiarp/

        However, since out of zone events are on the same MIDI channel, they will play the same sound and the arp. I’ll add an “out of zone” channel parameter to make your scenario possible in the next firmware update. Thank you for an idea!

  4. I see in the demo video that you add Tie and Rest after you recorded the polyphonic sequence. Possible to add tie and rest WHILE recording ? I mean, I play a chord for the first step, then I push a button to add Res on step 2 then i play another chord and so on …
    Thanks !

    • Yeah, however this can only be done by using switches or knobs on your MIDI controller keyboard. MidiSeq can be set to respond to any CC to insert tie, rest, accent, etc.

      • When MidiSeq receives MIDI CC with certain codes, it will add tie, rest, etc — associated with that MIDI CC code. These associations are freely assignable, so you can use any available knob or button on your MIDI controller keyboard that can send MIDI CC event.

      • Olivier Gilet said this about the Midipal :
        “I have attached a firmware update file with a new MIDIpal sequencer inspired by the SH-101.

        To record, go to the rec menu (set to off by default). The screen changes and shows the step number. From now on, notes played on the MIDI keyboard are queued to the sequence. Use the encoder to select between rest / tie and click to insert them. Move to exit to exit the recording mode.”

        It is not possible to add tie and rest with encoders with the Midigal ?


  5. It says it will send a paypal invoice. Do you have to have a Paypal account to pay this, or can you pay as one time customer. I do not have a Paypal account.

  6. Hi, I was using midiseq then switched to the midipal firmware you have up and I am getting a lot of hanging notes when changing parameters. Is this how it usually works or is there some kind of reset I can do? I thought I might have read that somewhere.

  7. Hi I was having a read about the MidiGal and I am very much interested in purchasing the MidiGal knowing what the midipal can originally do it is perfect for my needs and set-up, I see you can build a full MidiGAL system this is great as to I am no builder! I am not picky about LCD screen colours however I do like the look of the acrylic cases as shown on the website, again I don’t mind what sort of case you have to use to build with, how much would it cost to build a full system and have it shipped to the UK? I would like one as well, I look forward to hearing from you

    I have tried to contact you via email however when it sends it fails took a whole day to notify me that it failed which is bizarre normally its quite quick?

    Kind Regards


    • Yeah, we can build a MidiGAL with firmware of your choice. Price is $120 for pre-built MidiGAL, $25 for acrylic case (black or clear glass), $15 shipping to UK.

  8. pete – i know this is my problem exclusively, but maybe you can help me please with some input, if you have experience with OLED displays — i had a hard time sourcing the display in europe, so i found a DEP 08201–Y OLED display at tme.eu which seemed pin & controller compatible to me. on the midigal board i left out the resistor for backlight and the trimmer for contrast, but i cannot get the display to work. maybe the pins which are NC should not be contacted at all? i also looked at the circuitboard traces for a while but could not really understand where the middle pin of the contrast trimmer is going, it seemed to be a data pin. unfortunately it will take a while to get access to a higher wattage soldering iron to desolder and look what went wrong…

    • ok i somehow was able to get it off again. obviously i did not pay attention to the pin offset, i just inserted it 1:1, putting pin 1 and 2 to A and K

  9. To change the firmware on this, I am putting the midiGAL into firmware update mode by holding the encoder down and then turning the unit on. Then, I send a sysex file from my computer to the midiGAL via midiox. Once the send is done, I turn the unit off and back on in order to get into regular mode, but nothing seems to have changed. I have tried with midiARP and midiCLK and both produce no change.

    Are there any steps to the process which I am missing or do I need to troubleshoot my midi connections/midiox?

    • Chances are you’re loading wrong syse file: if your MidiGAL came programmed with MIDIpal firmware, you have to load *_pal.syx versions of sysex files.

      Also, make sure the MidiOX buffer delay is set to 250ms.

  10. Wonderful little box of MIDI tricks this one! Mine is currently being used primarily to split polyphony across two Roland JP08 synths to correctly chain them and double polyphony.
    Thank you for the great communication and service Peter. Great stuff!!

  11. Hi Pete, can I use the sequencer to trigger the TSUNAMI Super WAV trigger made by robertsonics? I’m thinking of loading drum samples into Tsunami and i need a trigger

  12. Does the MidiGAL support the “user_program” mode of the original MidiPAL? I’m looking to split a keyboard in three, sending each zone to a different channel, and I think that would let me do it.

  13. What an awesome little device! Volcas and Microbrute all synced up, looking forward to having a play with MidiSeq when my MB-33 Retro turns up. Build was fun and aside from a couple of moments of dimwittery from me went without a hitch. Thanks Pete for getting the parts to Scotland so fast and thanks for investing your time in this project (and thanks for adding those LCD anode and cathode holes on the right!).

    If you’re reading this and haven’t yet taken the plunge, do it. Easy build and looks great in the acrylic case.

  14. Hello, I’m interested in the module, but I deeply need it to convert program change to midi note withou latency or good enoug to play notes in time from a midi pedalboard or use it as looper control. Can it do that?

  15. Inclusive is when the arpeggiator reaches the highest note, it repeats that note when it goes back down.
    Exclusive is when it reaches the top note, it is not repeated on the way down.
    I hope that makes more sense,

  16. Hi Pete!
    Did the idea you mentioned here:

    “However, since out of zone events are on the same MIDI channel, they will play the same sound and the arp. I’ll add an “out of zone” channel parameter to make your scenario possible in the next firmware update. Thank you for an idea!”

    …make its way into a firmware update? A friend of mine would have a use for it, and I could imagine using it myself! Happy New Year! 🙂

  17. I love my midigal and midithru!!! Question on midipal firmware:

    Is there any way to easily modify this firmware to make the currently unused switch useable as start/stop for internal clock? The programming side is not my strength, so I’m in the dark on whether this would be easy to add, but it would make life even more wonderful!! 😉


  18. Hi, i want to order the midigal for diy. if i order pcb, preprogrammed chip and acryl box. i have everything i need? resistors, capacitors, lcd screen buttons, etc

  19. If using dispatch, can i play monosynths, and timbres from other synths like a DSI Tetra and a Waldorf micro-Q? And if my rig is controlled by a master sequencer and keyboard controller (echo thru), where would the midigal best be placed in the midi chain?

    • MIDI Events dispatcher like MIDIpal dispatcher app or MidiGAL’s one MidiDispatch firmware goes between your MIDI Events generator (sequencer, keyboard, etc) and sound generator module (synth, sampler, etc).

      If you want to dispatch to polyphonic synths, you’ll have to use MidiGAL’s MidiDispatch because it supports dispatching more than one note to a MIDI channel.

      • Thanks. So if the midipal software is running you can play monosynths polyphonically but you can’t add polyphonic/multitimbral in the mix? Ie. If a master sequencer has assigned a Mopho, Model D, and Evolver to channels 2,3,4 and a Waldorf microQ(which is 16-channel polyphonic and multitimberal) is set to Channel 5, and midigal is receiving note/clock on channel 1, and on dispatch poly mode; you can play chords using notes in order (first note plays channel 2, second channel 3 and so on), and the polysynth will add additional notes of polyphony if you have channels 2-5 set as midi channels, and 4 as the number of synths… but this cannot be done using midipal software, only midigal?

      • MIDIpal dispatcher can only send on note per channel, so your poly will receive only one note. This works if you only need one note from it, or if you can assign different MIDI channels to each voice on your poly.

        However, consider the case: you want to extend an Oberheim Two Voice adding two more Oberheim SEMs. MIDIpal dispatcher app will not work here because it will only send one note to Two Voice thus losing a voice. With MidiGAL’s dispatcher firmware, you can assign more than note to a MIDI channel. Essentially, you have 8 output slots, and you assign MIDI channels to these slots, so in the above scenario, assuming TVS is on channel 1, and SEMs are on 2, 3, you can set MidiGAL Dispatcher to channels 1,1,2,3.

  20. Peter, You’ve built a great thing here!
    I’ve built a MiDi GAL as diy project and have done a few little changes.
    First I’ve used an O-LED Display from Electronic Assembly.
    The Type is EA W082-XLG. That decreases the drawn current an increases the viewing angle up to nearly 180 degrees.
    It has a litte lower profile then the original Displays.
    The mounting Holes fit perfect. The pinout is shifted one double pin up.
    I’ve solved this by soldering in 9 thin 2″ wires between Display and PCB.
    (VCC, GND, RS, WR, EN + 4 used Data Wires)
    Contrast Poti and Backlight Resistor on PCB can be leave out then.
    It was tested with the MidiClk099 Software and it works perfect.
    The other software variants I’ve not tested, but I guess it will work too.
    Additional I’ve used instead the 7805 Voltage Regulator an pincompatible switching Type from TRACO Power labeld TSR 1-2450.
    All that changes decrease the drawn current down to 20mA at 9V.
    At higher Voltage of 12V it goes down to 18mA due to switching regulator.
    So You can think about Battery Powering ( 9V Block or 3 Lipo Cells ) of this great thing.
    Currently I’m writing an new Software for the MiDiGal.
    It should recover the Clock information from a MiDi Drum kit by filter out the Base drum kick.
    But it is’nt ready to kick off this now.

    • Sounds like a great project! BTW, if you are after battery power, why don’t you just eliminate voltage regulator completely, and power it from USB connector? Running on a mobile phone power brick will give you lots of run time.

      • I also got my oled working after messing one up with the pinout. But I noticed it is leaking noise into my studio setup. theoretically this shouldnt happen with midi optocouplers. My other lcd build works fine without noise, I have to investigate this.

    • what you maybe do not know yet: oled displays are very noisy, and they leak their noise THRU midi connections aswell. i don’t know how this is possible, maybe it even sends back noise to the powerline and messes up the whole supply. i stopped testing and i stopped using midigal with oled. /maybe/ it will work fine on a 9 volt block battery, the question is how long? probably after 50 hours it could crash any second… please report here how you deal with the noise.

  21. @gert
    In the past a had a similar Problem with an DMX512 Interface.
    I’ve solved this problem by putting in a Ferrite into the 12V Power Line of the power supply.
    In my case the dissortion came from the Plug power Adaptor.
    Have You tested an other Plug Power Adaptor?
    When You’re shure that the source of dissortion ist the O-LED, this solution doesn’t work in Your case.

  22. Greetings,
    What a great project. Would it be possible to synchronize 2 or more of these so they are working to the exact same clock (internal or midi)? e.g. to run 2 or more sequences or arpeggios (or any of the various functions) together without drifting out of time?

  23. Hi,
    Can you use sequencer firmware also as clock/start generator? So that when sequencer starts runnig, also all the drum machines etc start? If yes, is this clock as accurate as in clock firmware? thanks.

  24. Hi,
    Is there more than one MidiDispatcher app available? From a previous question/answer i understand that there is an app called Midigal MidiDispatcher? Is that correct? And if so why not listed with the other firmwares for midigal? Is there a full list of all firmwares available for Midigal?
    Re: the Midigal MidiDispatcher, is there a limit on the number of notes it can send on multiple channels? I would like to play chords on midi channel 1 to be sent to Midi Channels 1-4 (or more) of my TG77, with all notes of the chord being sent to all 4 or more channels of the TG77 for layered sounds. The TG77 cannot assign midi channels in multi-mode. ie each sound must be on a separate midi ch 1-16. Many thanks for your time

    • MidiDispatcher is available, i just did not publish it formally because I like writing code more than documentation 😉

      There is also MidiPad — a MIDI chorder firmware which basically facilitates playing chords by associating a key with a chord.

      MidiDispatcher currently support up to 8 output channels. This is purely a UI limitation defined by 8 characters wide LCD. Probably should be extended to 16.

  25. What does clk2load mean? Brand new midigal here. Also, it says to double click in main page to save, do you have a video to show this working?

      • Would that explain why an original MidiPal does not seem to work with these firmwares? I’ve added the extra MidiGal button, but pushing buttons and turning the encoder don’t seem to do anything at all.

      • I doubt it… however, theoretically, MidiGAL firmware may hang trying to initialize EEPROM. Frankly, I have never tried to run MidiGAL firmwares on original MIDIpal. I’ll give it a try tomorrow.

        What do you see on the LCD when you flash MidiGAL firmware ?

  26. Keep in mind I only have the original one-line display, but the display is completely blank. MidiClk actually starts up, displays “Midi Clk” and then “Wait”, so that firmware seems to work.

  27. I appreciate that, but I am trying to determine if replacing the LCD will then make the firmware work on the MidiPal. I don’t want to remove and replace the display if it still doesn’t work. I was thinking that the firmware would still show something on the 1-line screen and respond to controls in some visible way, but Seq, Disp and Arp do not. As I said, MidiClk seems to run on the Midipal with 1-line display.

    • Any 7805 with 1A Current and TO220 housing should fit e.g. µA7805, TS7805, LM7805.
      Many manufactors produce such voltage regulators and so the prefix changes.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s