/ Topics / Player

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


Wherein we present an overview of the Fiddle Player

A Player performs notes on one or more instruments.

The role of a Player is to convert a stream of notes into control messages in a form consumeable by Instruments. Specifically, Instruments consume NoteOn/NoteOff messages in addition to a control stream carrying arbitrary parameter value changes. The Player output, Inst is meant to be routed to an Instrument Controller input parameter. Player can also be connected to control stream consumers via the CC output. The only difference between these outputs is that Player manages polyphony for Instrument connections.

As mentioned elsewhere, Players are autonomous and asynchronous. Notes can come at "any time" and have any duration. In ChucK, this translates to needing their own private shred in which to to take care of business. The Fiddle Runtime detects Players (actually any Controller) and creates+launches shreds for each one. In a Fiddle+ChucK session, the number of live shreds is driven largely by the number of Controllers in your session.


Here's a Player connected to MIDI Device notestream and controlling 4 Instrument instances. Most Instruments are monophonic, ie emit only a single note at a time. For these instruments, a special Instances parameter controls the number of copies of the instrument Fiddle will make available for the Player. Now it's Player's job to distribute incoming notes, chords, etc to produce as much polyphony as you've provided for.

Below you can see Player connected to a MIDI Device, remapping CC names for use by BeeThree. A notestream provides the Player a combination of notes and control signals. In the case of MIDI keyboard, the MIDI CC names are often a fixed-feature of the device. Player can remap any input CC name to any output CC name and this allows you, say, to connect your keyboard's pitchwheel to an arbitrary parameter of your instrument.

This example shows a mapping between the MIDI Device's CC1 parameter to the standard PitchWheel parameter. It also shows a mapping from CC2 to BeeThree's custom parameter, ControlTwo.

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