Documentation Wiki rss-feed

Pico MIDI From Scratch (requires EigenD 1.4.7 or later)


These scripts are used to start from the Factory Blank setup and create a setup with MIDI output as described in Pico MIDI

The scripts are attached as a zip archive with two text files that need to be moved to your 'Scripts' directory. For more information on using Belcanto Scripts in the Factory Setups please see Belcanto Scripts. It also contains the file 'Pico MIDI.els' which can be imported into Stage to create the tab with the controls.

To be able to run these scripts you need to first load the Blank Factory setup. Afterwards open both the EigenBrowser and EigenCommander and type the following in the command line of the commander: eigenbrowser , interpreter hey script browse

The EigenBrowser will now allow you to browse to the user scripts and execute them. It's very important to first execute 'Pico MIDI - part1', after which the Pico instrument will be automatically detected by EigenD. When that is done, the system will be ready to run 'Pico MIDI - part2'.

Download the archive with the files here: link:Pico MIDI From Scratch.zip

Below is the contents of both scripts:

Pico MIDI - part1

description
    Creates an Pico setup with one playing keygroup that just sends out MIDI

    Run this script first and afterwards run the second part from the
    other script.

script
    empty join

    # create the Pico manager that will detect the instrument
    # give it enough time to detect the Pico before running the second
    # part of the script
    pico manager create

Pico MIDI - part2

description
    Creates an Pico setup with one playing keygroup that just sends out MIDI.

    This script should be ran after the first part is finished.

script
    empty join

    # create the required agents
    kgroup create
    kgroup create
    scaler create
    scale manager create
    midi converter create
    midi output create

    # now that the Pico keyboard should be detected in the meantime
    # connect it up to the kgroup
    pico keyboard 1 to kgroup 1 connect

    # set up the playing keygroup
    kgroup 1 listen

    output 1 create
    output 1 choose

    # playing keys
    k 1 add
    k 2 add
    k 3 add
    k 4 add
    k 10 add
    k 11 add
    k 12 add
    k 13 add
    k 5 add
    k 6 add
    k 7 add
    k 8 add
    k 14 add
    k 15 add
    k 16 add
    k 17 add

    # switches
    k 19 add
    k 20 add
    k 21 add
    k 22 add

    empty join

    # configure the scaler to play chromatic and
    # set the pitch bend range two semitones
    scaler 1 hey scale to chromatic set
    scaler 1 hey k bend range to 2 set

    # connect the agents together
    kgroup 1 output 1 to scaler 1 connect
    scaler 1 to midi converter 1 connect
    midi converter 1 to midi output 1 connect
    kgroup 1 output 1 roll output to scaler 1 k pitch bend input connect

    # connect other data streams to parameters for expression
    scaler 1 pressure output to midi converter 1 parameter 1 connect
    scaler 1 roll output to midi converter 1 parameter 2 connect
    scaler 1 yaw output to midi converter 1 parameter 3 connect
    kgroup 1 output 1 breath output to midi converter 1 parameter 4 connect
    kgroup 1 output 1 strip position output 1 to midi converter 1 parameter 5 connect
    kgroup 1 output 1 absolute strip output 1 to midi converter 1 parameter 6 connect
    scaler 1 pressure output to midi converter 1 parameter 16 connect
    midi converter 1 parameter 1 to pressure name ify
    midi converter 1 parameter 2 to roll name ify
    midi converter 1 parameter 3 to yaw name ify
    midi converter 1 parameter 4 to breath name ify
    midi converter 1 parameter 5 to strip position 1 name ify    
    midi converter 1 parameter 6 to absolute strip 1 name ify
    midi converter 1 parameter 16 to key position name ify

    # connect the bottom two keys controls directly to midi converter parameters
    pico keyboard 1 k 9 pressure output to midi converter 1 parameter 7 connect
    pico keyboard 1 k 9 roll output to midi converter 1 parameter 8 connect
    pico keyboard 1 k 9 yaw output to midi converter 1 parameter 9 connect
    pico keyboard 1 k 18 pressure output to midi converter 1 parameter 10 connect
    pico keyboard 1 k 18 roll output to midi converter 1 parameter 11 connect
    pico keyboard 1 k 18 yaw output to midi converter 1 parameter 12 connect
    midi converter 1 parameter 7 to controller pressure 1 name ify
    midi converter 1 parameter 8 to controller roll 1 name ify
    midi converter 1 parameter 9 to controller yaw 1 name ify
    midi converter 1 parameter 10 to controller pressure 2 name ify
    midi converter 1 parameter 11 to controller roll 2 name ify
    midi converter 1 parameter 12 to controller yaw 2 name ify

    midi converter 1 listen

    # reduce the MIDI data bandwidth to prevent external hosts to be overwhelmed
    minimum decimation to 10 set

    # set up some mappings in the routing matrix
    parameter 1 for polyphonic aftertouch map
    parameter 3 for midi 1 map
    parameter 4 for midi 2 map
    parameter 5 for midi 16 map
    parameter 7 for midi 17 map
    parameter 8 for midi 18 map
    parameter 9 for midi 19 map
    parameter 10 for midi 80 map
    parameter 11 for midi 81 map
    parameter 12 for midi 82 map

    # set the MIDI channel to 1
    midi channel to 1 set

    empty join

    # create a talker to change tonics
    talker create
    it to tonic talker 1 name ify
    kgroup 1 output 1 to tonic talker 1 connect

    scaler 1 listen
    kgroup 1 listen
    tonic talker 1 listen

    scaler 1 tonic when 17 down
    scaler 1 tonic when 18 up

    17 to 3 colour ify
    18 to 3 colour ify

    empty join

    # create a talker to change octaves
    talker create
    it to octave talker 1 name ify
    kgroup 1 output 1 to octave talker 1 connect

    scaler 1 listen
    kgroup 1 listen
    octave talker 1 listen

    scaler 1 octave when 19 down
    scaler 1 octave when 20 up

    19 to 3 colour ify
    20 to 3 colour ify

    empty join

    # create a talker to change the scales
    # it can then be connected up to widgets in Stage
    talker create
    it to scale talker 1 name ify

    scaler 1 listen
    scale talker 1 listen
    interpreter listen

    " scale talker 1 hey 1 to 1 from 2 colour ify " when 1 do
    " scale talker 1 hey 2 to 1 from 2 colour ify " when 2 do
    " scale talker 1 hey 3 to 1 from 2 colour ify " when 3 do
    " scale talker 1 hey 4 to 1 from 2 colour ify " when 4 do
    " scale talker 1 hey 5 to 1 from 2 colour ify " when 5 do
    " scale talker 1 hey 6 to 1 from 2 colour ify " when 6 do
    " scale talker 1 hey 7 to 1 from 2 colour ify " when 7 do
    " scale talker 1 hey 8 to 1 from 2 colour ify " when 8 do

    scaler 1 scale to major when 1 set
    scaler 1 scale to harmonic minor when 2 set
    scaler 1 scale to melodic minor when 3 set
    scaler 1 scale to chromatic when 4 set    
    scaler 1 scale to blues when 5 set
    scaler 1 scale to pentatonic major when 6 set
    scaler 1 scale to diminished when 7 set
    scaler 1 scale to whole tone when 8 set

    1 to 2 colour ify
    2 to 2 colour ify
    3 to 2 colour ify
    4 to 1 colour ify
    5 to 2 colour ify
    6 to 2 colour ify
    7 to 2 colour ify
    8 to 2 colour ify

    empty join

    # setup a keygroup to colour the MIDI controller keys    
    pico keyboard 1 to kgroup 2 connect

    # set up the controller keygroup
    kgroup 2 listen    
    output 1 create
    output 1 choose
    k 9 add
    k 18 add    
    empty join

    # create a talker to color the controller keys
    talker create
    it to controller talker 1 name ify

    kgroup 2 output 1 to controller talker 1 connect

    kgroup 2 listen
    controller talker 1 listen
    interpreter listen

    " " when 1 silent do
    " " when 2 silent do

    1 to 1 colour ify
    2 to 1 colour ify

    empty join

    # create talker to browse MIDI output port
    talker create
    it to midi talker 1 name ify

    midi talker 1 listen
    interpreter listen
    " eigenbrowser , midi output 1 hey midi port browse " when 1 do

    empty join