scriptSONIC - Tutorial 01

Create the simple '01 arpeggiator' example from scratch.

start a new project

Screen Shot 2016-03-07 at 2.11.57 p.m..png

Screen Shot 2016-03-07 at 2.13.05 p.m..png

add a new Loop

Screen Shot 2016-03-09 at 8.53.30 p.m..png

← select Edit mode

← and Script mode

← tap the Event to Edit its script

add a script to set the variable c to be a C chord

Screen Shot 2016-03-09 at 8.53.59 p.m..png

← tap Done to close editor

Screen Shot 2016-03-09 at 8.54.39 p.m..png

← select Split mode & #2

← tap the Event to split it into 2

Screen Shot 2016-03-09 at 8.54.48 p.m..png

← edit Event 0.1 to change the chord to an Fmin7

tap the Loop's length to edit its value →

Screen Shot 2016-03-09 at 8.56.06 p.m..png

change it to 4 secs →

Screen Shot 2016-03-09 at 8.56.13 p.m..png

Screen Shot 2016-03-09 at 8.56.51 p.m..png

add another Loop

add a script to play the first note of the chord c via the Midi object m.

m will be created later.

Screen Shot 2016-03-09 at 8.57.40 p.m..png

Screen Shot 2016-03-09 at 8.57.49 p.m..png

← select Split mode & #4

← tap the Event to split it into 4

Screen Shot 2016-03-09 at 8.58.06 p.m..png

← go back to script edit mode and edit the Event scripts in turn to change the note indices to 1,2 & 3

Screen Shot 2016-03-09 at 8.58.23 p.m..png

set Play mode →

 make the Loops active →

& make them loop →

Screen Shot 2016-03-09 at 8.58.38 p.m..png

← then go to the Script screen

tap the script view to edit →

add a script to create the Midi output object m

tap Run to execute the script

Screen Shot 2016-03-09 at 9.47.18 p.m..png

← then go to the Projects screen

save the project →

select it then rename it →

Screen Shot 2016-03-09 at 9.53.01 p.m..png

open a MIDI destination app of your choice (Cubasis is shown)

make sure it is receiving MIDI from scriptSONIC on Channel 1

Screen Shot 2016-03-07 at 2.20.16 p.m..png

tap Play button to arpeggiate! →

Screen Shot 2016-03-09 at 9.29.21 p.m..png

Things to try:

- change the note ordering

- use m.play(c.notex($.id)) for all the Event scripts instead of numbering the notes by hand. $.id is the Event id and evaluates to 0,1,2 and 3 in each of the four Events

- copy Loop1 and shift the notes to a different octave using

m.play(c.octaved(1).notex($.id))