Skip to content

Add an option to load a project on launch. - #24

Open
curtisullerich wants to merge 25 commits into
fiebrink1:masterfrom
curtisullerich:master
Open

Add an option to load a project on launch.#24
curtisullerich wants to merge 25 commits into
fiebrink1:masterfrom
curtisullerich:master

Conversation

@curtisullerich

Copy link
Copy Markdown

This enables using Wekinator in self-contained scripts to start up an instrument or installation without using the file browser or interacting with any dialogs.

Example of how this is useful:

# controller-to-osc.ck sends controller input to Wekinator as OSC
# instrument.ck receives classifier output from Wekinator to control synthesis
chuck controller-to-osc instrument &
wekinator --project foo.wekproj &
wait

The user simply has to run the script above and begin performing, eliminating the need to select the project file in the browser or start listening on the default port.

The need for this came up when using Wekinator in a performance setting where we switched from one instrument to another on stage.

P.S. Hi Rebecca! I've been helping Anne Hege on some instruments for her Furies project (laptopera.com) and that's what prompted me to write this patch. I tried to stick with the style already present in the file and I'm happy to refactor this however you'd like.

P.P.S.
For completeness, here's a version of the above script that tries extra hard to clean up every subprocess when you kill it.

chuck controller-to-osc instrument &
CH_PID=$!
wekinator --project foo.wekproj &
WK_PID=$!

cleanup() {
  echo "exiting ChucK and Wekinator"
  for job in $CH_PID $WK_PID ; do
    kill -s SIGTERM $job > /dev/null 2>&1 || (sleep 10 && kill -9 $job > /dev/null 2>&1 &)
  done
}
trap cleanup SIGINT SIGTERM EXIT
wait

…andling of current and future exceptions clearer.
…xception which now causes a compilation error.
… an allowlist for serialized types. To facilitate that, WekStream is a trivial wrapper around XStream tat allowlists all wekimini classes.
…cies to gradle instead of the checked-in jars.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant