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)
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
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)
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.
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”
Pingback: New project MidiGAL | MidiSizer
Would this work:
Order a pre-programmed atmega 329p with midigal firmware and swap it for the one in the midibud build?
yes, this would work.
How much would a built unit sent to Australia be please.
US$120 + $15 shipping. This includes stand offs, but no case.
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.
Hi Pete, Do you think that 6N138 optocoupler could be an option here? I have many of them ! Thanks !
I did not try it myself, however i beliee it should work if you lower R4 from 10K to 470 ohm, or even 220 ohm.
Just reducing the load resistor doesn’t really make the 6N138 fast enough. More important is to add a 10K resistor between base and emitter of its output transistor (pins 7 and 5).
Good to know… just reducing the resistor worked for 6N139.
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.
Hi, could you please let me know of the price of a pre-built unit + shipping to Brazil? Cheers
$120 + $15 for shipping. This does not include the case, just 4 metal stand offs that make it perfectly usable w/o the case.
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!
Looks interesting. Will the eagle files be available, too?
Sure, at some point.
Hi Peter, has the file for a MidiGal case been released somewhere?
Thanks a lot!
Hi! I would like to order. Can you give me your email?
Sure, it’s on the order page here: https://midisizer.com/midigal/#ordering
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 …
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.
Thanks for the reply. Can you explain more though please?
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 ?
yes, see the manual — Recording page
Ok many thanks for your help ! Cheers
Sorry but I can’t find the manual. Can you give me the link please ?
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.
Yes, PayPal is the only way I accept payments.
Yes, fine, but do I need a Paypal account to pay, or can I pay as a casual customer?
Yes, you do need a Paypal account, otherwise I will not be able to process your payment.
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.
Also is there a way to adjust the contrast my screen now has a weird viewing angle.
Yeah, there is a trim pot on the other side of the board for adjusting LCD contrast.
Reset is always recommended after you changed firmware.
How do you do the reset? I tried to start it with the encoder held again, but it didn’t seem to reset it. There is a reset option in the midipal software, but that didn’t seem to help. I remembered the trimmer after I posted. I just can’t find my allen key to open the case now.
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?
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.
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
Hi, Do you sell these pre-assembled? If so I would like to purchase one. Thanks Ben
Sure, please contact me using the email specified on the ordering page.
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.
Can I order a midi sizer pre built with a black case to be shipped to Australia .
Sure. Please email me at the address specified at the ordering page.
Hi, I need a Arp midi hardware for my studio. Is possible to buy a midigalp from spain? How much is this? thx
Fully assembled MidiGAL is $145 plus $25 shipping to Europe. If you want to build it yourself, please check ordering details here: https://midisizer.com/midigal/#ordering
I wanna a midigal parts, I can build it. How doing to buy it, please?
Please contact me using email address at the ordering page: https://midisizer.com/midigal/#ordering
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!!
Thank you, David!
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
According to the specs, TSUNAMI Super WAV has MIDI IN, so it should be possible to use with MidiSEQ and MidiARP.
It would be interesting if you could add a select switch to choose the firmware (assuming that there was enough free space.
No way. Every firmware variant uses MCU’s program memory space almost to a maximum.
Just a thought. Thanks.
Where can i find .sch and eagle files please ?
They are are not published yet. Only the firmware source is open sourced at this point.
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.
MidiGAL can run original MIDIpal firmware as is, so it supports everything MIDIpal supports, including user programs.
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.
Hi, I’m looking for your response about midigal.
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?
I don’t think there is a way to convert program change events to MIDI notes without creating custom firmware.
Could the midigal be used to store and receive sysex dumps from a sound module?
hi. what power supply does this require?
9VDC, 150mA or more, 2.1mm center positive plug.
hey do y know if i can run MidiClk to an original MidiPal?
I never tried it myself, but it should be possible. However, MidiClk UI needs a switch which MIDIpal lacks, however you can hack one in by connecting a momentary witch to Atmega’s MISO pin.
thank a lot!
but for MIDI Clock Tester the switch is just for resetting right? so should work
it works but my midipal has just one line on lcd so i can’t see Stability, shit! 🙂
does the arpeggiator use exclusive or inclusive pattern in the up/down mode?
Not sure what exactly do you mean by exclusive/inclusive patters. Could you please give an example for each?
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,
MidiARP has both inclusive and exclusive up/down modes.
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! 🙂
It didn’t, completely fell through the cracks… until today. Check the new MidiARP firmare https://midisizer.files.wordpress.com/2017/12/midiarp_096.zip I just published — it has this feature. Thank you for reminding!
amazing, thanks! will be ordering a PCB soon!
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!! 😉
This is certainly doable, but not exactly trivial: OnSwitch even handler will need to be added to UiPage structure and implemented in all apps.
Maybe a bit above my ability, so I’ll keep my eyes out if somebody else gets this bug with some more skills!!
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
You’ll receive PCB, pre-programmed MCU and acrylic case with hardware. You’ll have to order all the electronic parts according to this BOM: https://docs.google.com/spreadsheets/d/1_0EAORgMhlgSN2qz0fOchuQtcecc_NV1WpyCK14Q-gs/edit#gid=0.
is it possible to create a random sequence of bank changes with MidiArp? to control a multifx unit
No, MidiARP sends out only note events, not program change events. However, I believe you can use MIDIpal to convert note events to program change events.
ok, i will check the resources online. thanks for your great work!
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.
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.
OLEDs are known to be very noisy, check old MI forum threads for details.
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.
for some reasons my older replies didnt show up… forgive the redundancy 🙂
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.
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?
Of course, I typically have one of them as a master, then split its output with MidiThru and feed a bunch of MidiGALs and other devices as slaves.
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.
yes and yes.
great, thanks 🙂
Hello, is there eagle files brd. available ?
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.
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?
Hi, does MidiDispatcher, MidiArp or MidiSeq use the EEPROM?
Yes, to save and re-load program settings.
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 ?
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.
Hmm… you won’t be able to use MidiGAL firmwares because they all need 8×2 LCD
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.
This item in the BOM is obsolete. Can you recommend an alternative. I’m not an electrical engineer and don’t have the expertise to make a best judgement by myself.
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.