CREATOR GETTING STARTED - TheTechnobear/Eigenharp GitHub Wiki
Overview
The creator scripts and configs are designed to allow anyone to create EigenD setups from scratch, only selecting what they want. This is useful, as it not only allows unique customisations but also results in smaller setups which are quicker to load.
NEW: for the impatient you can watch this video http://youtu.be/0VYmIO7aBb8 where I walk through how to get started, but come back here after as there are more details in the text below. (inspired by Antonio's fantastic video: http://youtu.be/WizAznWGS4E)
Please note:
- this used to be called modular setup, it now has been renamed to CREATOR
- some of the documentation still refers to 1.0, as do the above videos
Status
Its early days! There are lots of things still to add, and the way it works will undoubtedly evolve as we get more familiar with requirements and wishes, but evolution is the best way forward... just be aware your configuration may need updating .. of course if you save your created setups, these will be unaffected by changes!
Now, on 2.0... its moved to Java and has a more flexible approach to different processing techniques, which are now called modules.
Likely changes:
- Lots more modules, which add supports for things like talkers, scalers, metronomes, etc... basically everything in an normal eigenD setups
Getting Started
There are a few prerequisites to use the this setup
-
YOU - willingness, to try, experiment and enjoy :)
-
ability to access github Its possible to download everything from github.com, but its better to install a git client, so that you can download changes, rather than have to download there are two options. git command line tools - if you used to the command line, this is the easiest way, git mac client - a proper mac application, just add the repository , and then press sync often :)
-
EigenD - 2.0.74, is tested version
-
its only running and testing on mac osx, you could probably use on windows you will need to adapt the start script to your needs to configure java etc, but no big deal - im not supporting it though.
Creating your first setup!
- download stuff from git ... it can go anywhere, but lets say you do it to ~/github/Eigenharp
- start terminal
- in terminal type: cd ~/github/Eigenharp/creator
- start eigend, load a blank setup
- in terminal type: bin/creator.sh pico conf/basicdemo.conf
** Note: more sophisticated setups may use EigenBrowser, so it is recommended to have this started as well. **
this will output lots of lines, of belcanto code that is being executed, each one will have an OK beside it. which shows its been executed. Also if you look very carefully, it will say what scripts are executed and variables are passed to it - more on this later!
What Next?
Ok, so now robot like you have used the setup, but of course thats not the point we want you to be able to create your own! So you need to explore a little bit.
The first step, is to understand what the above line actually created... The easiest way to do this is to look in EigenLabs workbench (WB) (I'll detail the belcanto way, if you dont have workbench in next section, "Seeing the belcanto", but carry on reading here... its still required reading :))
So start WB, you will find it is all over to the left, so space things out so so you see everything .. from here you can see all the wiring and agents.
Now, we need to look at the configuration file that created this - conf/basicaudiounit.conf
If this you will find many lines of the form: linkrig.bc:simple keygroup:audio unit rig 1:1:1:
note, how this is a number of things separated by colons (:) its is always of the form MODULENAME:VAR1:VAR2:VAR3:VAR4:VAR5:VAR6:VAR7:VAR8:VAR9: i.e. a module name, followed by 1-9 variables (or parameters if you prefer) Note: all VARS are optional, i.e. some scripts take none, some may take 2 etc as from 2.0, the module name is either a belcanto template (which uses the template module) or the name of a module. it recognises templates as ending in .bc
what happens when you run the creator.sh is it will execute each template in turn, passing these parameters. (hopefully the template names are helpful enough to know whats going on)
Advanced note: for each line, the template file name will be looked for in the top level directory AND also in the device directory (which you passed in to createsetup). It will run in both locations if its exists in both. This allows a template to be tailored to a particular device , e.g have a different key mapping between the alpha and a pico.
Now that you 'understand' the conf file format, take a look at the setup created in WB, and try to identify what each line might do in basicaudiounit.conf
Also have a look in the relevant template file, the top line usually say what VAR1 etc are used for.
Finally, when creator is running, it shows information about template executed and the variables passed in - this can also help see whats going on...
BTW, want to run again.. EASY, just load the blank setup again, and run the createsetup.sh again
But theres still more help on the way :)
Seeing the belcanto
Ok, so the next step is to see the belcanto that is being generated and executed i.e. we are not going to create a setup (i.e. execute belcanto) we just want to see what would be executed. this is called debug mode, and is activated with the -d flag
now whenever you run setup, it will output to the screen the belcanto that is generated, bin/creator.sh -d pico conf/basicaudiounit.conf but if you would probably prefer in a file, you type the following:
bin/creator.sh -F generated.bc pico conf/basicaudiounit.conf
this creates a file called generated.bc, which you can now look at
This is interesting, because not only does it contain the belcanto generated, but also comments detailing what scripts were called, and with what parameters/variables. so you can see exactly whats going on.
Of course this file is completely valid belcanto and can be executed directly (say with bscript). Just one word of warning, if you do this, create the manager manually FIRST, otherwise it will fail, as the keyboard creation is NOT done synchronously, this means when the scripts try to connect it WILL NOT be have been created and will FAIL.
Thats it, I hope to have more later, but this should get you started!