MIDI Bidules

MIDI Buffer

Similar to the Audio Buffer but for MIDI events

  • Mode : Passthrough, Capture, Playback modes, take note that Capture will continue to play what's in the buffer while recording
  • Buffer Length: the length of the buffer in milliseconds
  • Loop In: In point position for looping, represented in % of the buffer length
  • Loop Out: Out point position for looping, represented in % of the buffer length
  • Clear Buffer: Clear the contents of the buffer

MIDI Buffer (Synced)

Same as the MIDI Buffer except it uses musical time and can follow the tempo of a sync source

  • Buffer Length: the length of the buffer in quarternotes

CC To Params

Same functionality as the CC linking feature from MIDI devices. Can be used to extract CC from a MIDI device without having to connect it to the rest of the graph, or used after a channel splitter to have 16 times more possible CC or at the output of any VST/VSTi/Rewire that can output CC.

CC Value Scaler

Scale the value of incoming CC between the selected range. The 128 possible CC values are used to give more precision in the selected range.

Aftertouch Filter

Filters out all unselected MIDI Aftertouch events.

Aftertouch Value Filter

Filters out MIDI Aftertouch events according to their value.

CC Filter

Filters out all unselected MIDI CC.

CC Value Filter

Filters out MIDI CC events according to their value.

Channel Filter

Filters out all MIDI events on the unselected channels.

Channel Pressure Filter

Filters out all unselected MIDI Channel Pressure events.

Channel Pressure Value Filter

Filters out all MIDI Channel Pressure events according to their value.

MIDI Delay

Delays the MIDI events for a specified amount of time in milliseconds.

MIDI Delay (Synced)

Delays the MIDI events for a specified amount of time in quarternotes, the real amount of delay will be calculated using the sync source tempo

Message Filter

Filters out all unselected MIDI events by type.

Note Filter

Filters out all unselected MIDI notes.

Note Velocity Filter

Filters out MIDI notes according to their velocity value.

Program Change Filter

Filters out all unselected MIDI Program Change events.

Pitchbend Value Filter

Filters out MIDI Pitchbend events according to their value.

MIDI Clock To Sync

It purpose is to transform a MIDI Timing Clock (Clock,Song Position,Start,Stop and Continue) into Bidule internal sync info. MIDI Clock synchronisation is an old legacy standard thats hard to emulate right in the slave software. The results are a combination of MANY factors including your bidule audio buffer latency, (lower the better), MIDI driver jitter and time stamp precision, and also the following settings:

Forcing the tempo value to be fixed: the sync info will use the fixed tempo and still use the incoming MIDI Clock for start/stop and position.

Specify the time signature you would like to use on bidule's side (time sig is NOT transmitted over MIDI clock) This information cant be changed while the Clock is active on the other end.

Finally, you can tell the algorithm to hard resynch itself at each 1,2,4 or 8 mesures of the user supplied time signature. or never, and let drift.

Sync to MIDI Clock

Transforms Bidule internal sync info to MIDI Timing Clock for output to other softwares or external gear.

MIDI File Looper

Standard MIDI file player. Use MIDI files loaded into the Mediapool. This module is also a sync master. Loop players and other modules synched to is should follow all bpm and time signature changes embedded in the file.

MIDI File Player

Standard MIDI file player. Two versions are currently available, the merged tracks and non merged (up to 32 tracks) versions. In case of doubt use the "merged" version and split the outputs using a Channel splitter. This module is also a sync master. Loop players and other modules synched to is should follow all bpm and time signature changes embedded in the file.

MIDI File Recorder

Standard MIDI file recorder. When synced and recording is enabled, the actual recording will only begin at the beginning of the next bar.

MIDI To Value

Convert the selection (incoming MIDI Note or CC) to a smoothed out signal at audio rate.

  • CC#: select the CC to listen to in the incoming signal
  • Use Notes: use MIDI notes as a 0 to 1 interval
  • Channel#: channel to listen to in the incoming signal
  • Smoothing: smoothing time for changes in value
  • Learn: go into learn mode, where the next CC or note will be selected

Note Number To Param

Takes incoming MIDI Note On signals and use the MIDI note number to set the value of its exported parameter that you can link to any parameter using the Parameter Linking window.

Note Shuffler

Randomly alters the incoming MIDI notes.

  • Lowest/Highest Note: select the available range for randomization.

Aftertouch Transposer

Alters the incoming MIDI Aftertouch events note number or value by a specified amount with optional wrapping around.

CC Transposer

Alters the incoming MIDI CC events number or value by a specified amount with optional wrapping around.

Note Transposer

Alters the incoming MIDI notes by the specified semitones/detune value.

Program Change Transposer

Alters the incoming MIDI Program Change events number by a specified amount with optional wrapping around.

Note Velocity To Params

Takes incoming MIDI Note On signals and use the MIDI note velocity to set the value of the corresponding exported parameter that you can link to any other parameter using the Parameter Linking window.

Particle Arpegiator

Modified version of Nate Robins's particule.c example from the GLUT library. The ParticleArpegiator is meant as an example of what you'll be able to do with the Bidule SDK. In this version, colliding particles trigger MIDI!! Each of the maximum 128 particles represent the 128 possible MIDI notes, so do some tests. You might not hear your synths right away. The ToneGenerator works ok with this, but as you know it is monophonic.

  • Num Particles: the number of particles in the system
  • Flow: the flow of the particles
  • Gravity: the gravity for the system
  • Show Balls: show the ball
  • Spectrum Colors/Blue: use the MIDI to spectrum color code or not
  • Fountain/Waterfall: fountain or waterfall mode
  • Point Size: size of the particles

Multi Aftertouch Remapper

Remaps any incoming MIDI Aftertouch to any other Aftertouch.

CC Remapper

Restamps any incoming MIDI CC to the selected CC.

Multi CC Remapper

Remaps any incoming MIDI CC to any other CC all in one bidule instead of using multiple single CC Remapper.

Channel Remapper

Restamps any incoming MIDI event to the selected channel.

Multi Channel Remapper

Restamps any incoming MIDI event to any other channel all in one bidule instead of using multiple single Channel Remapper.

Multi Channel Pressure Remapper

Remaps any incoming MIDI Channel Pressure to any other Channel Pressures.

Messages Remapper

Lets you remap each MIDI message type to a different message type.

Note Remapper

Restamps any incoming MIDI note to the selected note.

Multi Note Remapper

Restamps any incoming MIDI Note event to any other Note all in one bidule instead of using multiple single Note Remapper.

Multi Program Change Remapper

Remaps any incoming MIDI Program Change to any other Program Change all in one bidule

Splitter

Splits a MIDI signal into its 16 channels or routes the signal to its 16 outs each time it receives a program change signal in the 1-16 range.

Step Sequencer

With the step sequence editor you can edit a grid of 16 sequences that always loop, or use the playlist to set a desired sequence to play for all 16 output channels. Each sequence step in the playlist can have its own BPM and step size.

  • Load: loads a saved bank of sequences (.bmsd file)
  • Save: saves a bank of sequences (.bmsd file)
  • +: zoom in the grid
  • -: zoom out the grid
  • Play/Stop: start and stop the output of the step sequencer
  • BPM: tempo for the playing sequences. Remember to press ENTER to apply the value!
  • Steps: number of steps for the playing sequences
  • Channel: assign the current sequence to the MIDI channel
  • Sequence: assign the sequence to the current MIDI channel
  • Playlist Mode: use the playlist / loop the current sequences
  • Edit Playlist: show the playlist editor dialog

The playlist editor dialog is where you can assign a sequence number for each channel for a specified number of events. You can also specify the BPM and the number of steps for each event.

  • Playlist Length: number of events in the playlist
  • Playlist Start/End: in/out points for looping
  • BPM/Set BPM: specifies and set the BPM for each event
  • Num Steps/Set Num Steps: specifies and set the number of steps for each event
  • Reset Events: reset all events to the default BPM, number of steps and no playing sequences

Controls for the grid:

Windows:

  • left mouse button : add and lengthen notes
  • middle mouse button/ctrl-left mouse button : delete notes
  • right mouse button : change a notes velocity (darkens, lightens color of note)

OS X:

  • (left) mouse button : add and lengthen notes
  • shift-(left) mouse button : delete notes
  • ctrl-mouse button/right mouse button : change a notes velocity (darkens, lightens color of note)

The sequence number playing on each channel is also exported as a parameter that you can link to in the Parameter Linking window. For example, you could have a Note Number To Params per MIDI channel and have each of them link to the corresponding parameter for the currently playing sequence for each channel - giving you hands-on control of the sequence being played on all channels at once!

Velocity Scaler

Like a MIDI dynamics compressor.

  • Lowest/Highest Velocity: range to remap all incoming note velocities
  • Master Attenuation: attenuation for all incoming notes