MidiREX

MidiREX is a small but versatile MIDI loop sequencer created for live performance. It is designed to provide basic multi track recording and playback capabilities with minimal distraction to your inspiration.

MidiREX records MIDI events received on its MIDI IN (except note off velocity and system real time data) and stores them in non-volatile memory for later playback. The recorded events can include notes, controllers, pitch bend, after touch, program changes, and system exclusive data. (Note: the latter is not yet supported in version 0.94).

MidiREX_#1

MidiREX_#2

Tracks

MidiREX can play up to 4 tracks simultaneously. Its memory capacity is approximately 9,000 notes, however various MIDI controllers like after touch, pitch bend, mod wheel, etc. will take up more memory, so the actual amount of note storage capacity will vary depending on how much these controllers are used.

Each set of 4 tracks is called a ‘part’. There can be up to 50 parts in MidiREX memory. These parts can be combined into lists of parts, which are called ‘songs’. There can be up to 50 songs, and each can contain a list of parts of up to 99 steps long.

Each track can have different length. The longest track in part defines the part length. When track is played to its end it loops back to the beginning and keeps playing. The track length is set when the track is recorded and can be changed at any time, even during play back. Changing track length does not add or delete recorded track MIDI events, it merely defines a point at which track is looped back.

Each track has its own MIDI channel assignment that could be set to MIDI channel (1-16) or to OMNI. Track events are stored in memory with the original MIDI channel they were received on and will be played back as is if the track’s MIDI channel is set to OMNI. However, if track’s MIDI channel is set to specific channel number, the track events will be played back on the selected MIDI channel, essentially overriding original MIDI channel on the fly.

To record a track it needs to be selected. Only one track can be selected at a time. MidiREX cannot record on more than one track.

Incoming MIDI events could be filtered and quantized. Both note position and note length quantization is supported.

When MidiREX is not running, MIDI events received on MIDI INPUT are sent to MIDI OUT on the selected track’s MIDI channel allowing you to monitor what you’re going to record. If MidiREX is running but selected track is empty or muted, the incoming MIDI events are still sent to MIDI OUT allowing you to rehearse or jam along with the previously recorded tracks playing. Note that you can hit RECORD at any time and record that wonderful phrase you just came up with without stopping the playback.

When MidiREX is running and selected track is not empty or muted, the incoming MIDI note events transpose notes in the part being played.

Parts

Parts are identified by a number (00-49) and 12 character part name. When running, MidiREX plays currently selected part endlessly until stopped.

Parts can be switched at any time, even during playback, and the switch moment could be quantized to the next beat, next bar or part end.

Songs

Songs are identified by a number (00-49) and 12 character song name. Each song can have up to 99 steps. Each step specifies number of the part to play, how many times to play this part, which tracks to mute and a note to transpose the part to.

When MidiREX is in Song mode, it will play currently selected song’s steps endlessly until stopped.

Song steps can be specified manually or recorded live using MidiREX buttons or MIDI keyboard connected to MIDI IN.

Specifications

Memory capacity: 64K
Parts: 50, each has 4 tracks
Songs: 50, each has up to 99 steps
Tempo range: 25-250 BPM
Clock resolution: 96 PPQN
Clock source: internal or external
Quantization: note and note length, 64th to 2 bar
Controls: RUN, REC, SW1-5, Clickable Encoder
Display: 16×2 character LCD
LEDs: MIDI IN, MIDI OUT, TRK1-4, SONG MODE
MIDI Connectors: MIDI IN, MIDI OUT
Foot switch connector: 3.5mm stereo, normally open or closed, momentary
Battery: CR2032, good for 10+ years
Power supply: 9VDC, center positive, 200mA

Acknowledgements

MidiREX is built around technology developed by Mutable Instruments: most of its hardware components can be found in various MI’s projects (mostly Shruthi-1 and Ambika), while software implementation uses quite a lot of code from MIDIpal. Not to mention the breakthrough Avril programming framework that brought modern C++ programming (read: productivity and sanity) to Atmel MCU world. Without this MidiREX project would not be possible, so thank you, Olivier, for sharing your talent with all of us!

99 thoughts on “MidiREX

  1. Hi Peter – could you post something about the footswitches? I’m assuming that since two are supported, and the connector is a 3.5mm stereo jack, any pair of momentary on switches bridging the tip/ring to the sleeve would work? Are there commercial dual 3.5mm switches that you were thinking of?

    I think I’ll probably just use a midi footswitch I have lying around, but I figured I’d ask since there seems to be no info on the 3.5mm footswitch setup.

    • Correct. Any pair of momentary foot switch pedals will work if you connect them using 3.5mm stereo to 2 x 1/4″ mono Y cable like Hosa CMP153.

      Both normally open and and normally closed foot switches are supported, the polarity is determined when MidiREX is switched on.

      You can also use just one foot switch connecting it with mono cable.

  2. Now that I’ve built and played with it a bit, here are a couple of pesky feature requests:

    – an overdub recording mode, where the track loops while recording, and new notes played are merged with the track. This would be by far the most important feature for me…

    – an erase feature where pressing and holding a button deletes the notes on the track, clearing the part of the track the button is held for.

    – a “quantize to scale” feature that would shift incoming notes to a selected key/scale while recording. This could also be applied after recording, like the other quantize functions can.

  3. Can the loop play function be turned ‘OFF’? I’d like to have it send one shot CC msgs to a digital mixer. Awesome idea! And how do I order the kit?

  4. Hi Peter
    I’ve sent emails to Frank at this address and his other one, but he hasn’t replied to any of them. I realise that he’s busy with other projects, but I’d really like a case for my Midirex. Do you have any other suggestions?

  5. Hi kvitekp!
    I have a small suggestion:
    It would be nice if the MidiRex also sends out the current leds status via some CCs.
    This is usefull for people who like to control the MidiRex with Midi only.
    Best regards
    Marxon

  6. And another one:
    a option to disable MidiRex from passing Midi In directly to Midi Out,
    so it sends recorded Midi events only.

    • Of course it does record note velocity, all controllers, both channel and note after touch, and pitch wheel. The only midi event that is not currently recorded (but may be in the future), is SysEx.

  7. holycrap ! if i understand this correct its like having 4 202 sequencers in one !
    can the u run multiple sequences of different lengths together at the same time ?

    • yeah, pretty much. Sure, each of four sequences can have different length — the shorter ones will be looped back when playing along with the longer ones, for example 2 bar sequence will be played twice during the 4 bar sequence.

  8. Hi kvitekp,
    This looks like quite a fantastic bit of kit. A couple of questions, if you don’t mind:
    Does it record polyphonic note data?
    And are there videos online where I can see a MIDIRex doing it’s thing (preferably polyphonic)?
    Thanks in advance!
    -Banana Apparatus

    • Thank you! MidiREX records everything on its iMIDI IN with exception of sysex and real time (ie clock, active sense, etc) messages. This includes all note data, control change, pitch bend, after touch etc.

      I’m not aware of any videos yet that demo polyphonic recording, sorry.

  9. Hi, a midi looper is very good idea.
    Probably the project can be good if you can merge inside this little box the idea of loop that we find on boss loop station rc 505 ( obiovsly refered to midi) and on SND acme-4 (flexible midi start-stop) .. the link http://www.s-n-d.com/acme4e_a.html
    In any case i would like to see many demo on you tube. It is possible.
    Midi rex is a Great Job!!
    Diego

  10. Hi, I’m fairly new to this kind of thing… Just a few questions if you have the time
    1)Can it record polyphonic information?
    2)Can it record parts in ‘free-time’ i.e like a boss looper where you don’t play to a click and the phrase length is determined by when you pressed start and stop?
    3) If so, can you jump between these different parts easily.
    4)Can you increase the speed of the recorded part after it has been committed to memory?

    Sorry for the list! It looks very interesting, thanks in advance.

    • 1) yes, it can record polyphonic info
      2) yes, it can do free form recording, until you stop recording, then loop
      3) yes, you can switch between 4 parts with a switch press
      4) yes, you can record at the comfortable tempo, then play it back at any tempo you like.

  11. it seems i bricked the song mode in my midirex. without any midi devices, i went button mashing on it – recording 4 bars of nothing, having it play, and switching song/pattern mode while play. switching back and forth, stopping, starting again… until the beatcounter went up really high – to 89.88, midi out led is permanently lit and the unit is unresponsive, needs to be powered off-on to work.

    it is no matter which song number i choose, it always counts up and crashes. i don’t really know why it’s possible to change modes while in play, though it was an empty pattern, but since it was possible i just tried around how far it can go. i tried the 1-3-5 factory reset and also took out the lithium batt, the problem still exists. it seems i did something noone did before… maybe flashing firmware can solve it, but maybe you want to look into it why it happened.

    also what puzzles me a bit is the record button behaviour, as it is adaptive (first i thought my used tactiles have some debounce issue). on an empty pattern you have to press record twice to start recording. and normally, the pattern runs on when you press record again – so you can change track and re-engage record. but on an empty pattern, it stops playback when you press record.

    i think usability wise it would be good to have the record button function always the same, regardless of the content of the pattern – first press is start play&record, second press is disable record, not stop to play.

    also the encoder doubleclick to escape from menu is a bit tough to do haptically, when in the process changing values, double clicking the encoder whilst changing values is a bit dangerous as one could twist for one in/decrement by accident and then escape with a wrong value set. maybe there is a way to have a “back to homescreen” from within any point in the menu with a single button press.

    • Removing the battery should certainly clear all memory and reset the unit. If it does not, there is hardware problem. Regarding record button — it functions consistently on all my units. Would it be possible to record a short video demonstrating it? Yeah, i don’t like double click as well, however i dont see any other way to implement Home function.

      • i re-flashed the firmware but still the problem is there. when i go on the “empty” unit into song mode and press play, it counts up, overflows and crashes. though pattern mode works all normal. i double checked all soldering and parts, cannot imagine much went wrong there.

        my other unit had the same problems with the record button behaviour, i will check the song mode there and look to make a video. it is not consistent, mostly when i go to an empty pattern i have to press record twice. sometimes i have to press only once.

        i thought, wouldn’t it be useful if the song mode main page appears always when switching with sel+play into song mode? when i am in the option menu in pattern mode and switch to song mode, “sel” led lights up, but i am still in option menus. only when i return to mainpage i see the song page.

        this could maybe also be used differently when in options menu: sel+play always goes to main page without changing the mode, next time sel+play changes pattern/song mode. this could be easier/faster than the doubleclick for “going home” and seems intuitive to me.

        what i couldnt solve, i think others also requested this – is it actually possible to record 4 or more bars always looping in overdubbing mode, in a way that the recording is only started once and always is enabled and looping, and it does not change the length of the part? the way it can be used now, always arming the recording an then only having 4 bars once to record seems contraproductive. i tried with all the start/stop recording settings, but could not find a combination that allows “endless loop recording”. maybe it is possible to have the “length” setting to be used as a given length that will not be extended on recording, when someone wants to record longer patterns the length can always be increased to 99 and then trimmed down after recording.

      • Gert, would it be possible to split your questions/requests into several comments? Dealing with one long comment containing half a dozen different topics is suboptimal

      • “i thought, wouldn’t it be useful if the song mode main page appears always when switching with sel+play into song mode? when i am in the option menu in pattern mode and switch to song mode, “sel” led lights up, but i am still in option menus. only when i return to mainpage i see the song page.” — i’m not sure i understand what you mean here… switching the unit on while holding down sel+play? Or sel+play acting as “home” ?

      • “endless loop recording”.recording is not really possible with a kind of serial memory MidiREX uses — it will have to append new copy of the track each time it loops back, quickly exhausting all available memory.

  12. sorry, will post more structured next time. sel+play – yes i meant sel +play acting as home, and then when on home screen it changes pattern/song mode.

  13. for “endless loop recording” – i thought in theory, as long as no notes are played or other values are sent in record mode, there would be nothing to write to memory? as in, what has been recorded already is played back, what is played additionaly in record mode overwrites the old recording or is written into the gaps – where no notes have been recorded previously.

    • there are no gaps — events are written continuously, each having a time stamp with resolution of 96PPQN. Having gaps is not an option, the memory will be wasted almost immediately.

  14. Hi, one simple question: can it be synced to an external clock, e.g. a drummachine? In this case can i predefine the loop length e.g. looping two bars, or can i just quantize the loop length to the next beat?
    Thanks & greets, Roland

    • Yes, MidiREX can be configured to run on external clock. Loop and each track lengths are quantized to the beat. By default, loop length is equal to the length of the longest track, however you can specify loop length manually, in which case it could be shorter or longer than the longest track.

  15. hello, yu good .. nice device overhere

    midirex is a big midiseq ? almost same ..
    any vidéo , with poly chords , bass, mélodie will be great .. in non stop flow
    yu make a pattern / save , do new one .. it don’ t stop
    how long for france for complete kit , yu think ..
    cheers

    • MidiREX is 4 x track MIDI event sequencer, MidiSeq is a polyphonic step sequencer.

      Sorry, we don’t offer complete kits, only PCB and pre-programmed MCU, or a fully built unit.

      • you provide nice pcb and programed servo, great..
        or what price for a fully built for france, ready to ship ?
        how you apply kind of shuffle, by trying different quatitize .. can’t find video .. cheers

      • $160 for pre-build MidiRex, $15 shipping to Europe. This includes metal stand offs to make it usable w/o the case, however no case. Proven case files are available, case can be ordered at any laser cutting service, like Ponoko.

  16. would it be possible to implement this :-a function to trim recorded parts” — like in “remove everything from beginning to this point” and “remove everything from this point to the end”

    • Device model is implemented in dev.h/.cc, feature ui pages in ui_pages folder. Use a similar feature implementation as a starting point, for example, Quantize Notes page.

  17. instead of adding an extra function to trim recorded parts” — like in “remove everything from beginning to this point” and “remove everything from this point to the end” could i edit the event editor page so i could delete individual event steps ?

  18. My setup would be
    midirex out -> microkorg in
    microkorg out -> midirex in
    Now how would I midi sync them to more gear? Use a midi splitter on the midirex out to clock an additional unit? Or is there a more straight forward method?

  19. Hey Peter, I love my MidiRex and couldn’t live without it anymore 🙂 Unfortunately my tactile buttons have bouncing issues… Is there anything one can do about that (e.g. on the firmware side)?

  20. Im very interested in buying one.

    Can I record midi cc with it (without recording any notes)? If so, how many CCs can it record per track? And what would be the resolution of the recording? (how many changes is it recording per beat?)

    Thanks!

    • MidiREX records all incoming MIDI events except for Sysex messages, so it will certainly record lone CCs without any notes.

      Recording is done with resolution of 96PPQN — 94 changes per quarter note, or 4 times the standard MIDI Clock.

  21. I’ve had a lasercut wooden case made for it I’ve designed based on the MI Shruthi acrylic case. If anyone is interested I can send the .eps files.
    Thanks again kvitekp for your work, amazing piece of hardware. If only that overdub feature could happen, but nevertheless it’s already great as is.

  22. his device seems very cool !

    I have a small question, is it possible to play tracks of different parts simultaneously with Midirex?

    Here is an example to be more specific :

    I play track 1 and track 2 on part #1. While playing ( without interruption), I want go to part #2 and play track 3 & 4 of the part #2 (simultaneously with track 1 & 2 of part #1). Then later I want to go to part #3 and play track 4 of part #3 (which will end the track 4 of part #2). Is something like this possible with MidiRex ?

    Thank you,

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 )

Google+ photo

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

Connecting to %s