/ Topics / MIDI In

ChucK . ChucK Live
Asset-based, Nonlinear Workflow
On Graphs and Code . Authoring Musical Notes
Player . Instrument . NoteStream . TimeKeeper
Channels, Effects . Control Signals
Audio I/O . MIDI Input . VST3 Plugins


audiotrack

Wherein we discuss the means to employ MIDI in ChucK.

From MIDI to Notestream

In Fiddle, the Notestream is a programatic representation of musical events and thus overlaps with many concepts that underpin the MIDI standard. At the heart of both is the ability to convey note and control messages from one point to another. On the event-source side, a MIDI device produces note and control/expression messages. On the event-sink side, a MIDI compatible device typically generates sounds described by the events, though there are many MIDI "devices" that can play other roles like routing, multiplexing, recording.

Because the MIDI 1.0 standard targeted hardware devices and was created when digital hardware was significantly less powerful, we remain constrained by many MIDI designs from long ago. Certain MIDI devices have adopted an MPE standard (MIDI Polyphonic Expression) to work-around an important class of contraints imposed by MIDI v1. The MPE spec describes simple techniques to employ MIDI v1 to represent polyphonic pitch-bend and other expression control-signals. In addition, we appear to be on the verge of wide-spread adoption of the next-gen MIDI 2.0 standard. With all this churn around MIDI things are bound to be a bit confusing.

Role Call of MIDI-related Nodes

At this point you're probably ready to give it a whirl. You can do this by following the above links to various examples.

MIDI and Live Performance

Since MIDI devices are essentially "live" it's interesting to consider how one might integrate Fiddle+ChucK into a live performance. Just as a synthesizer has a number of presets, Fiddle's Graph files can be thought of as presets but with the ability to capture settings across a multitude of devices. Now you can develop any number of graphs, each of which represents a performance scenario. Moving from one scenario to the next is as simple as moving between tabs, clearing the last scenario and ChucKing the next.

MIDI Output

And if you're still reading, perhaps you're interested in learning about how to get MIDI out of ChucK. Of course you can easily convert the MIDI to an audio signal and record that. But if you really want MIDI out, the simple answer is, you can't. A more complex answer is that ChucK supports a MidiOut capability but currently this isn't exposed by Fiddle's runtime. You're free to roll your own.

See Also

MIDI CC

General MIDI

home .. topics .. interface .. reference .. examples .. tipjar