I heard about MIDIbox some time ago from a dear friend. Not realizing its potential at the time, it ended up somewhere in the back of my head.
However, now that I am planning to build an analog(ish) synthesizer, I can start to see attraction of the system.
My question is this: How much will the CORE_LPC17 board be able to process at a time?
Here follows a list of functions:
Scan a 49 key keyboard, using a six-bit polyphonic decoder. (Requires six Douts and one Din)
Mix note events from the keyboard into the external MIDI stream.
An internal clock, with tempo derived from either a pot or tapping.
A basic arpeggiator with the following functions:
Up, down, up-down, down-up, random, or order pressed modes.
Run over 4 octaves.
Semibreve, crotchet, quaver, semi-quaver, etc… based on clock input, from either the external input or the internal clock.
Gate length (PW) controlled via pot.
Output a CV, a gate, and clock pulse (to LFOs)
Potentially a MIDI output, combining the data from the original MIDI stream, the keyboard, the internal clock (if being used), and the output from the arpeggiator on a separate channel.
I think that is all for now. Shall write back if I remember something else…
So, would the core board be able to process all of this simultaneously?
I´d suggest you go for the new LPC17 core - as it is by far more easily programmable as the old PIC - also, there is a fantastic “learning” tutorial section available - you may find most of the routines you are looking for in there:
How difficult would it be to take lines of code from various MIDIbox projects and combine them into one specialized project?
Another thing I may not have mentioned is that I am looking to build this box with a physical interface. (ie. knobs and switches) Just to keep up with the analog synth feel.
It’s important to read it from the beginning, otherwise you could miss important informations which are helpful to work with the more advanced examples.
Once the framework is understood, you should also be able to do modifications in an existing application, or to build up a new one from scratch.
How about the addition of two LFOs to the original recipe? Either driven independently, or to the beat of a midi clock. Could the MIDIbox deal with three CV outputs? Five even? (separate CVs for each of the three oscillators? (for future development)
I would propose to read the MIDIbox CV thread, which I linked earlier - it gives you a better insight into the possibilities, and it especially answers your questions!
E.g. on MBCV each CV channel has a dedicated Arpeggiator, step Sequencer, two LFOs, one “normal” envelope and one multi-step envelope + a modulation matrix.
8 CV channels are supported by default, the achievable update rate is ca. 5 kHz as far as I remember.
To give you a comparison: typical “modern” synths are working at 1 kHz update rate only.
Btw.: I’m planning a “synth-like” control surface for MBCV as well… it just needs some time because so many other topics are on my TODO list…