Wednesday, March 28, 2007

CComputing – Wk 4 – MIDI Information and Control:

CComputing – Wk 4 – MIDI Information and Control:



After some twenty plus hours of mind-numbing programming, I stop to ask myself: “Is this my future?” If so, God help me…

The updated control surface..

The basic rundown of the added tools to ‘Baby Vomit Keys’ for this week is this:

1) MIDI input selection menu: Connected a midiinfo object to a ubumenu. Upon starting the program, a loadbang hits the midiinfo inlet which forces an update of the connected ubumenu with devices relevant to the computer being used. Ubumenu (middle outlet) is connected to left inlets of notein, ctrlin, pgmin and bendin, via send and receive objects to automatically set the correct ports to be used by these devices.

2) MIDI output selection: A different ubumenu is connected to the same midiinfo device and its device information is updated upon initialisation as well. Its middle outlet is connected to the left inlet of noteout, ctrlout, pgmout, and bendout, via send and receive objects for setting correct output ports.

The edit window..

3) MIDI panic button: Midiflush object inserted as the gateway to note out, and all pitch and velocity information must pass through it before being sent to the synth. Bang object is connected which is activated by pressing the ‘panic’ message button which will activate the flush object and turn off all notes.

4) Pitchbend, Modulation and Program Change: These are all activated by dial objects connected to their relevant output devices (mentioned at point 2) via send and receive objects in most cases. Input from the controller keyboard is achieved by the inclusion of relevant input objects (also mentioned at point 2) also connected to the output devices.

5) Channel selector: Umenu containing numbers 1-16 with middle inlet connected to all input / ouput devices.



Inside the sub-patches..

Enjoy!


Click to access online folder containing text file of patch


Reference:

Christian Haines. ‘Creative Computing Wk 4 - MIDI Information and Control’. Lecture presented at the Audio Lab, level 4, Schultz building, University of Adelaide. 22nd March 2007.