There is a global envelope that controls volume of all melodies together, and it is defined in config.ini
string as a sequence of 8 numbers in range from 0 to 127. The period of envelope is controlled with F6
keys and is shown as bpm
value in the status bar at the top of the window.
The envelope is shown or hidden by pressing the 'e
' key. When shown, the envelope can be controlled from a MIDI controller. The default configuration uses eight first sliders of KORG nanoKontrol.
If you watch the score (press F1
to see it) when a melody is being played, you might notice
that some notes are sometimes changed. They are 'harmonized', that is if a random number within 0..100 happens
to be below certain threshold then the note made from the image is replaced
with the nearest note from the chord matrix specified in config.ini
The threshold is defined in config.ini
. The default value is 50. If the quality is 100 (or higher!), all notes are harmonized. If the quality is zero, none. The quality of a selected melody can be adjusted from a MIDI controller when the envelope (see above) is shown. The default configuration uses the right-most slider of KORG nanoKontrol.
Arpeggio and Chord Matrices
The default configuration contains one set of parameters called Chord Matrix. There are 12 parameters, one for each note: chord0, chord1, ... chord11
The value is a string of 12 digits like 100010010000
Non-zero values tell which notes to play in arpeggio mode.
It is possible to have more than one matrices. The first value of the first matrix should be called chord0#0
of the second matrix - chord0#1
, and so on (note increasing number after the '#').
# Chord matrix
In order to switch the matrix in runtime, press Esc
and then a
for the first matrix, b
for the second, and so on.
The following configuration value specifies input MIDI device(s) - commands from all the devices with the given string in their names will be handled. For example, they can be both nanoPad and nanoKontrol.
If a device sends Note On/Off events, they are forwarded to the MIDI channel assigned to the currently selected melody.
This is a string that expected to be in the name of the first MIDI out device - note that there is no number in the parameter name. This string matches the default Windows MIDI device.
All the following MIDI out devices are numbered:
MIDI Control Change commands can be sent when
- a track is started
- a note is being played
In the former case, the horizontal position of the track centre mapped to the 0..127 range is sent as a parameter to the CC command numbers configured for the MIDI device as following
It is possible to mute the current melody by pressing the 'u' key. Then the playing melody only sends CC events, not sounds. This makes possible that one melody changes parameters of another melody assigned to the same instrument.
The capital 'T' key - that is Shift-t - changes the destination type of current melody playback. Possible destinations are (note the changing letter in the melody status line):
|MIDI device (the one currently selected with F10, make sure to select an instrument after device)
|Both MIDI and OSC listener
|Audio, that is pre-loaded sound samples are played by BO itself
The sample speed settings are assigned per sample directory.
For example if you have:
then the pitch
is applied to birds
samples. If you need to change the speed setting during performance, repeat directories twice:
Thus you have birds
for instrument 0 and birds
for instrument 1, etc.
Duration is meant to control legato / staccato qualities of a melody playback. When duration is set 1, each following note starts approximately when the previous ends. When duration is below 1, there are silent gaps between notes. When duration is greater than 1, notes overlap.
The duration can be controlled from GUI or by '(' and ')' keys.
Serial port is used in this Arduino-based prototype
Add a line like following in config.ini:
It's possible to run BO in multiple computers in fully synchronized mode. Each performer's actions are distributed to all remote instances. Of course it only makes sence if they play the same image.
In addition, the Windows package includes a control application called BOC. It doesn't generate MIDI and music OSC. It sends commands to control the main BO application remotely. Thus user interface elements don't appear on the main screen which is important for live performance.
Please don't hesitate to ask for more technical details. The only reason why they are not described because nobody would possibly read.
Write to victor(at)victorx.eu