Home made sequencer

This is the place to share tips, tricks and questions about Moog's controller products; the MP-201 Multi-Pedal and the EP-2. There are a world of applications for these expression enhancers. Explore...
Post Reply
noSpoonMusic
Posts: 36
Joined: Tue Jun 08, 2010 6:11 pm

Home made sequencer

Post by noSpoonMusic » Wed Nov 10, 2010 9:38 pm

After months of deliberation and research, Ive decided to start building a home made sequencer. I've got help from friends who build computers and machines for a living, so the circuit building and software components will be handled by professionals. I have a few questions about how the midi data is translated by the moog and also how CV signals can be integrated into this system.

The basic design is modeled after the Doepfer MAQ 16/3. There will be sixteen steps, each with their own notched knob that will be used for determining the note of each step. Each step will have either a notched knob or a switch that will control the octave of that step.

Im not sure I completely understand how the Voyager reads midi data. I understand that a midi note on message is sent along with bytes that specify velocity and release, followed by a midi note off message. Where can I find which CC note values specify which note to play? Ive read through the manual and I've only found information about manipulating other parameters such as filter freq, resonance and other functions (p76-78 of the manual). I'll need to know these specifically so I can turn the knob position signal into a midi signal that plays the desired note.

I would also like to include four "auxiliary" knobs per step in the sequencer. These could be analog pots that the sequencer's sofware will translate into the appropriate midi signals. When programmed correctly, these "auxiliary" pots could control variables such as filter frequency, wave shape, or amount to filter. If the software in the sequencer correctly decodes the knob information into the correct midi notes, would this sequencer work? Could the sequencer be sending a different note, octave, filter and waveshape value every 16th note through one midi cable all at the same time?

Regardless of whether or not sending all these messages via midi is possible, I would still like to have the "auxiliary" knobs send out CV data as well. My computer building friends have showed me how I would be able to split the data from each pot into both midi and CV data. Using CV cables instead of midi for the "auxiliary" pots would simplify the software coding needed for the sequencer to work properly. I would just have one CV output cable per "auxiliary" pot, and connect it to the desired port on the VX 352. I still would potentially like to use this thing with synths that only have midi inputs (no CV). . .if possible.

Any ideas, suggestions or directions would be greatly appreciated. Thanks

EMwhite
Posts: 1649
Joined: Sun Jun 21, 2009 12:22 pm
Location: Middlesex

Re: Home made sequencer

Post by EMwhite » Sun Nov 14, 2010 1:22 pm

Sounds ambitious! Here is some info to get you started:

Midi certainly can (send all of the different types of data through one cable) but keep in mind that old-school midi is only something like 62 kbaud.

Back in the old days, there were loops that ran from one device to another to another to another the pass thru of each device (and length of cable, believe it or not) caused latency that could be noticable.

These days, most modern devices are connected via USB but implement the Midi protocol (all but the physical layer).

To address some of your points or questions directly, Midi note data has nothing to do with Midi CCs. CC's are partially defined as standard (e.g. volume) but a large range is undefined and up to the implementer. This is how Moog (for example) assigns certain controls per CC as you have seen in the manual, which may be complete different from how a Dave Smith Mopho is controlled/programmed.

The basic intrinsics of planing (note on, note off, after touch/pressure, velocity, pitch, modulation and a few other controls) are all standard.

Midi data is composed of 'commands' followed by values (in assembly language parlance, this can be thought of as opcodes and operands which may be variable).

So Note-on (9[midichannel]) always contains the channel number (midi channel 1..16 or 0..F hexadecimal), the note number (3c hex is middle "C") and a 'loudness' which is velocity. So a middle C on channel 0 with max velocity would be the following 3 bytes: 90,3c,7f or 144,60,127 in decimal.

Note-off can be implemented as the same formate/command with a loudness of 0 or via 8[midichannel]. You'd have to hook up a midi-scope to see how each keyboard controller (whether ancient or modern) sends various values.

To answer you question about the sort of data that can be sent and how quickly, a C major chord would be sent in order of key pressed (again, the Midi protocol is serial in nature so it is a single stream of bytes). If you pressed C,E,G at almost the same exact time, you'd get

90,3c,7f
90,40,7f
90,43,7f as bytes right after one another.

Note that if there was midi clock on the same wire, or another devices sending something to a different channel perhaps, you would see those messages interspersed.

If you pressed each of the three keys with a two seconds between and tweaked a knob, you'd see the CC data between and if it was a continues controller (as opposed to a simple button with a value of 127 or 0) you would see ALL of that data, (picture a pitch wheel bending).

Have a quick look at this http://www.midi.org/techspecs/midimessages.php

Table 2 contains the basic commands, table 3 contains CC's and you'll see some you recognize followed by a bunch of user defined/variable that as mentioned above are implemented differently by each manufacturer of synth gear.

Good luck !
'76 Minimoog, Taurus 3, Oberheim FVS + Son of 2-voice; Sequential ProOne; Juno 106; Moog Model 15; Kurzweil 250; Hammond M3; and a handful of Fender Basses Flickr!

EMwhite
Posts: 1649
Joined: Sun Jun 21, 2009 12:22 pm
Location: Middlesex

Re: Home made sequencer

Post by EMwhite » Sun Nov 14, 2010 1:26 pm

One added bit. The conversion of CV to Midi data is something that devices (like MP201, or the soon to be released Doepfer box) do by calibrating voltage for each given midi command. In the case of CC's, a value of 127 (non-7 bit resolution) would be 5V and a value of 0 would be 0v. From a Midi not perspective, again, each note number must map to a fixed voltage that needs to be precisely tuned to produce the given frequency.

One of the great things about the Multipedal is that it allows you to join the physical CV and 'virtual' Midi worlds and you can, for instance, drive a clock pulse voltage according to Midiclock. But between there are many many implementation details to deal with.

I haven't seen a device that takes voltage in and spits out Midi data. It would be possible but I think there is a fair amount of circuitry involved in order to sample the voltage and then map to the correct note or value
'76 Minimoog, Taurus 3, Oberheim FVS + Son of 2-voice; Sequential ProOne; Juno 106; Moog Model 15; Kurzweil 250; Hammond M3; and a handful of Fender Basses Flickr!

noSpoonMusic
Posts: 36
Joined: Tue Jun 08, 2010 6:11 pm

Re: Home made sequencer

Post by noSpoonMusic » Mon Nov 15, 2010 12:55 pm

Thanks EM. As far as CV to midi goes, at this point I'm not sure I need it. Ive got a midi keyboard and the RME voyager. The only CV data I could use with this setup would be from the sequencer to the moog's VX CV expanders. This would mean that I only need to output CV data from either pots on the sequencer or from midi data from they keyboard. Within the sequencer's software I can program it to translate the pot position or midi data into specific voltage outputs. My code/computer friends say this wont be too difficult. (They build stuff like http://en.wikipedia.org/wiki/Optical_tweezers . . .Ill take their word for it)

Is there somewhere in either Ableton Live or a sequencer such as an MPC that I can plug in my midi keyboard and see specifically what midi values each note/knob is firing?

In preparation to building an original piece of hardware Id like to play around with routing either Ableton or the MPC to do perform some of the same features that I would like to have in my sequencer. I can already have them make and repeat a sequence consisting of varying pitch and velocity, but I would like to be able to write in envelopes/steps that will control other things such as filter frequency, wave type and other dynamic aspects of the sound. If I could get this to work I would have a much better command of what midi messages work in which situations.

Can midi note, dynamic sound characteristic and midi clock data be transmitted through 1 midi cable without any latency? Every piece of midi equipment Ive ever owned has had a separate midi jack for time data. My sequencer will have the ability to either slave to another device's midi clock or be the master for others. For my other equipment (mpc, loop/efx pedals, ableton) each needs a dedicated line to time code, regardless of which way its going. What about the Voyager RME? Its only got one midi in, so can I have all the messages, including time code go in that one midi in?

EMwhite
Posts: 1649
Joined: Sun Jun 21, 2009 12:22 pm
Location: Middlesex

Re: Home made sequencer

Post by EMwhite » Mon Nov 15, 2010 1:52 pm

That won't be a problem (time code + note and cc messages) provided that the cc messages are not being dumped continuously. Timecode is typically 24 messages per 1/4 note and seems rather heavy when watching an LED flash, but there's room in there.

I'm a Mac user and have 8 routed devices across virtual and physical ports (some din, some USB). My interface is only a M-Audio 2x2 and I use a piece of routing software "Midi Patchbay" to segregate traffic. Having said this, my equipment is about half and half which means that my Phatty, Matrix 1000, Matrix 6, Matrix 6r, Alesis drum module, Jomox and MidiMurf are all DIN and my Radias, Taurus pedals, Multipedal, Novation controller and Keystation61 are all USB as is my M-audio 'iControl' (control surface). I mention this because often, you can use USB capable midi gear AS a Midi Interface (ie. plug an old school DIN connection into it then leverage the USB into your computer; even USB 1.1 was 12 Mbit vs 62k duplex or 31kbaud per cable).

With routing either from within your DAW or using an external program as I do, you can filter what data goes to which channel (ie I don't send clock everywhere). It's all very manageable.

As for a scope recommendation, I'm not familiar with Ableton (am a Logic user) but if you hunt around, you'll be able to find relatively low budget (free) software out there for Mac and PC.
'76 Minimoog, Taurus 3, Oberheim FVS + Son of 2-voice; Sequential ProOne; Juno 106; Moog Model 15; Kurzweil 250; Hammond M3; and a handful of Fender Basses Flickr!

noSpoonMusic
Posts: 36
Joined: Tue Jun 08, 2010 6:11 pm

Re: Home made sequencer

Post by noSpoonMusic » Mon Nov 15, 2010 2:40 pm

EMwhite wrote:That won't be a problem (time code + note and cc messages) provided that the cc messages are not being dumped continuously. Timecode is typically 24 messages per 1/4 note and seems rather heavy when watching an LED flash, but there's room in there.
How often is considered continuously? Can I send time code and note and cc messages that change every 1/64th note?

Post Reply