Documentation Wiki rss-feed

Alpha 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 Alpha 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 'Alpha MIDI.els' which can be imported into Stage to create the tabs 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 'Alpha MIDI - part1', after which the Alpha instrument will be automatically detected by EigenD. When that is done, the system will be ready to run 'Alpha MIDI - part2'.

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

Below is the contents of both scripts:

Alpha MIDI - part1

description
    Creates an Alpha setup with two keygroups that just send out MIDI,
    one for the main keyboard and one for the percussion keys.

    Run this script first and wait for the green blinking light on the
    Alpha to disappear. After that run the second part from the other script.

script
    empty join

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

Alpha MIDI - part2

description
    Creates an Alpha setup with two keygroups that just send out MIDI,
    one for the main keyboard and one for the percussion keys.

    This script should be ran after the first part is finished and the
    green blinking light on the Alpha is gone.

script
    empty join

    # create the required agents
    scale manager create

    kgroup create
    scaler create
    midi converter create
    midi output create

    kgroup create
    scaler create
    midi converter create
    midi output create

    kgroup create

    # now that the Alpha keyboard should be detected in the meantime
    # connect it up to the kgroups
    alpha keyboard 1 to kgroup 1 connect        
    alpha keyboard 1 to kgroup 2 connect        
    alpha keyboard 1 to kgroup 3 connect

    # set up the main keyboard keygroup
    ###################################
    kgroup 1 listen

    output 1 create
    output 1 choose

    k 1 to k 23 as course 1 add
    k 25 to k 47 as course 2 add
    k 49 to k 71 as course 3 add
    k 73 to k 95 as course 4 add
    k 97 to k 119 as course 5 add

    course 1 offset to 0 interval set
    course 2 offset to 4 interval set
    course 3 offset to 4 interval set
    course 4 offset to 4 interval set
    course 5 offset to 4 interval set

    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 octave to 2 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
    kgroup 1 output 1 strip position output 2 to midi converter 1 parameter 7 connect
    kgroup 1 output 1 absolute strip output 2 to midi converter 1 parameter 8 connect
    kgroup 1 output 1 pedal output 1 to midi converter 1 parameter 9 connect
    kgroup 1 output 1 pedal output 2 to midi converter 1 parameter 10 connect
    kgroup 1 output 1 pedal output 3 to midi converter 1 parameter 11 connect
    kgroup 1 output 1 pedal output 4 to midi converter 1 parameter 12 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 7 to strip position 2 name ify    
    midi converter 1 parameter 8 to absolute strip 2 name ify
    midi converter 1 parameter 9 to pedal 1 name ify
    midi converter 1 parameter 10 to pedal 2 name ify
    midi converter 1 parameter 11 to pedal 3 name ify
    midi converter 1 parameter 12 to pedal 4 name ify
    midi converter 1 parameter 16 to key position name ify

    # connect the bottom rows of keys controls directly to midi converter parameters
    alpha keyboard 1 k 24 pressure output to midi converter 1 parameter 17 connect
    alpha keyboard 1 k 24 roll output to midi converter 1 parameter 18 connect
    alpha keyboard 1 k 24 yaw output to midi converter 1 parameter 19 connect
    alpha keyboard 1 k 48 pressure output to midi converter 1 parameter 20 connect
    alpha keyboard 1 k 48 roll output to midi converter 1 parameter 21 connect
    alpha keyboard 1 k 48 yaw output to midi converter 1 parameter 22 connect
    alpha keyboard 1 k 72 pressure output to midi converter 1 parameter 23 connect
    alpha keyboard 1 k 72 roll output to midi converter 1 parameter 24 connect
    alpha keyboard 1 k 72 yaw output to midi converter 1 parameter 25 connect
    alpha keyboard 1 k 96 pressure output to midi converter 1 parameter 26 connect
    alpha keyboard 1 k 96 roll output to midi converter 1 parameter 27 connect
    alpha keyboard 1 k 96 yaw output to midi converter 1 parameter 28 connect
    alpha keyboard 1 k 120 pressure output to midi converter 1 parameter 29 connect
    alpha keyboard 1 k 120 roll output to midi converter 1 parameter 30 connect
    alpha keyboard 1 k 120 yaw output to midi converter 1 parameter 31 connect
    midi converter 1 parameter 17 to controller pressure 1 name ify
    midi converter 1 parameter 18 to controller roll 1 name ify
    midi converter 1 parameter 19 to controller yaw 1 name ify
    midi converter 1 parameter 20 to controller pressure 2 name ify
    midi converter 1 parameter 21 to controller roll 2 name ify
    midi converter 1 parameter 22 to controller yaw 2 name ify
    midi converter 1 parameter 23 to controller pressure 3 name ify
    midi converter 1 parameter 24 to controller roll 3 name ify
    midi converter 1 parameter 25 to controller yaw 3 name ify
    midi converter 1 parameter 26 to controller pressure 4 name ify
    midi converter 1 parameter 27 to controller roll 4 name ify
    midi converter 1 parameter 28 to controller yaw 4 name ify
    midi converter 1 parameter 29 to controller pressure 5 name ify
    midi converter 1 parameter 30 to controller roll 5 name ify
    midi converter 1 parameter 31 to controller yaw 5 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 80 map
    parameter 9 for midi 64 map
    parameter 10 for midi 11 map
    parameter 17 for midi 12 map
    parameter 18 for midi 13 map
    parameter 19 for midi 14 map
    parameter 20 for midi 16 map
    parameter 21 for midi 17 map
    parameter 22 for midi 18 map
    parameter 23 for midi 19 map    
    parameter 24 for midi 20 map
    parameter 25 for midi 21 map
    parameter 26 for midi 22 map
    parameter 27 for midi 23 map    
    parameter 28 for midi 24 map    
    parameter 29 for midi 80 map
    parameter 30 for midi 81 map
    parameter 31 for midi 82 map

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

    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

    # set up the percussion keygroup
    ################################
    kgroup 2 listen

    output 1 create
    output 1 choose

    k 121 to k 132 as course 1 add

    course 1 offset to 0 interval set

    empty join

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

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

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

    midi converter 2 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 5 for midi 16 map
    parameter 7 for midi 80 map
    parameter 1 for polyphonic aftertouch map
    parameter 3 for midi 1 map
    parameter 4 for midi 2 map
    parameter 9 for midi 64 map
    parameter 10 for midi 11 map

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

    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 2 name ify

    scaler 2 listen
    scale talker 2 listen
    interpreter listen

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

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

    # create a talker to calibrate the pedal bounds
    # it can then be connected up to widgets in Stage
    #################################################
    talker create
    it to pedal talker 1 name ify

    pedal talker 1 listen
    alpha keyboard 1 listen

    pedal 1 when 1 minimise
    pedal 2 when 2 minimise
    pedal 1 when 3 maximise
    pedal 2 when 4 maximise

    pedal minimum threshold 1 to 0 set
    pedal maximum threshold 1 to 0 set
    pedal minimum threshold 2 to 0 set
    pedal maximum threshold 2 to 0 set

    empty join

    # setup a keygroup to colour the MIDI controller keys
    #####################################################

    # set up the controller keygroup
    kgroup 3 listen    
    output 1 create
    output 1 choose
    k 24 add
    k 48 add
    k 72 add
    k 96 add
    k 120 add
    empty join

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

    kgroup 3 output 1 to controller talker 1 connect

    kgroup 3 listen
    controller talker 1 listen
    interpreter listen

    " " when 1 silent do
    " " when 2 silent do
    " " when 3 silent do
    " " when 4 silent do
    " " when 5 silent do

    empty join

    # create a talker to browse MIDI output ports
    #############################################
    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
    " eigenbrowser , midi output 2 hey midi port browse " when 2 do

    empty join