Documentation Wiki rss-feed

Pico MIDI Additive (requires EigenD 1.4.7 or later)


These scripts are used to start from an existing Eigenharp Alpha or Tau 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 Additive.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 Alpha or Tau setup to which you want to add support for Pico MIDI.

Afterwards open both the EigenBrowser and EigenCommander and type the following in the command line of the commander: eigenbrowser , interpreter hey script browse

Alternatively you can use the script browse key on the Alpha and Tau, as indicated in the quick reference guide.

The EigenBrowser will now allow you to browse to the user scripts and execute them. It's very important to first execute 'Pico MIDI Additive - 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 Additive - part2'.

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

Below is the contents of both scripts:

Pico MIDI Additive - part1

description
    Adds Pico support with one playing keygroup that just sends out MIDI
    to an existing Eigenharp Alpha or Tau setup. This should be ran after
    the setup that needs to be modified has finished loading.

    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 Additive - part2

description
    Adds Pico support with one playing keygroup that just sends out MIDI
    to an existing Eigenharp Alpha or Tau setup. This should be ran after
    the setup that needs to be modified has finished loading.

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

script
    empty join

    # create the required agents
    kgroup create
    it to pico kgroup 1 name ify
    kgroup create
    it to pico kgroup 2 name ify
    scaler create
    it to pico scaler 1 name ify
    midi converter create
    it to pico midi converter 1 name ify
    midi output create
    it to pico midi output 1 name ify
    # we're not create a scale manager since an existing setup should already have it

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

    # set up the playing keygroup
    pico 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
    pico scaler 1 hey scale to major set
    pico scaler 1 hey k bend range to 2 set

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

    # connect other data streams to parameters for expression
    pico scaler 1 pressure output to pico midi converter 1 parameter 1 connect
    pico scaler 1 roll output to pico midi converter 1 parameter 2 connect
    pico scaler 1 yaw output to pico midi converter 1 parameter 3 connect
    pico kgroup 1 output 1 breath output to pico midi converter 1 parameter 4 connect
    pico kgroup 1 output 1 strip position output 1 to pico midi converter 1 parameter 5 connect
    pico kgroup 1 output 1 absolute strip output 1 to pico midi converter 1 parameter 6 connect
    pico scaler 1 pressure output to pico midi converter 1 parameter 16 connect
    pico midi converter 1 parameter 1 to pressure name ify
    pico midi converter 1 parameter 2 to roll name ify
    pico midi converter 1 parameter 3 to yaw name ify
    pico midi converter 1 parameter 4 to breath name ify
    pico midi converter 1 parameter 5 to strip position 1 name ify    
    pico midi converter 1 parameter 6 to absolute strip 1 name ify
    pico 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 pico midi converter 1 parameter 7 connect
    pico keyboard 1 k 9 roll output to pico midi converter 1 parameter 8 connect
    pico keyboard 1 k 9 yaw output to pico midi converter 1 parameter 9 connect
    pico keyboard 1 k 18 pressure output to pico midi converter 1 parameter 10 connect
    pico keyboard 1 k 18 roll output to pico midi converter 1 parameter 11 connect
    pico keyboard 1 k 18 yaw output to pico midi converter 1 parameter 12 connect
    pico midi converter 1 parameter 7 to controller pressure 1 name ify
    pico midi converter 1 parameter 8 to controller roll 1 name ify
    pico midi converter 1 parameter 9 to controller yaw 1 name ify
    pico midi converter 1 parameter 10 to controller pressure 2 name ify
    pico midi converter 1 parameter 11 to controller roll 2 name ify
    pico midi converter 1 parameter 12 to controller yaw 2 name ify

    pico 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 pico tonic talker 1 name ify
    pico kgroup 1 output 1 to pico tonic talker 1 connect

    pico scaler 1 listen
    pico kgroup 1 listen
    pico tonic talker 1 listen

    pico scaler 1 tonic when 17 down
    pico 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 pico octave talker 1 name ify
    pico kgroup 1 output 1 to pico octave talker 1 connect

    pico scaler 1 listen
    pico kgroup 1 listen
    pico octave talker 1 listen

    pico scaler 1 octave when 19 down
    pico 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 pico scale talker 1 name ify

    pico scaler 1 listen
    pico scale talker 1 listen
    interpreter listen

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

    pico scaler 1 scale to major when 1 set
    pico scaler 1 scale to harmonic minor when 2 set
    pico scaler 1 scale to melodic minor when 3 set
    pico scaler 1 scale to chromatic when 4 set    
    pico scaler 1 scale to blues when 5 set
    pico scaler 1 scale to pentatonic major when 6 set
    pico scaler 1 scale to diminished when 7 set
    pico 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 pico kgroup 2 connect

    # set up the controller keygroup
    pico 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 pico controller talker 1 name ify

    pico kgroup 2 output 1 to pico controller talker 1 connect

    pico kgroup 2 listen
    pico 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 pico midi talker 1 name ify

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

    empty join