June 23Jun 23 Hello everyone,I’d like to share a first experimental version of a small project I’ve been developing around Opusmodus: Livecode.GitHub: https://github.com/Nanotk303/LivecodeLivecode is a Common Lisp live-coding prototype for Opusmodus / LispWorks. The idea is to evaluate Lisp/OMN expressions on the fly, in a pattern-based live-coding spirit, while keeping an idiomatic Lisp syntax and a direct connection with the Opusmodus workflow.This is an alternative directly accessible by code to the Opusmodus Livecoding Instrument.Minimal example:(load "/path/to/Livecode/load.lisp") (setf p1 '((q c4 e d4 e e4 q g4))) (live '((inst1 :omn p1 :port "Bus 1" :channel 1)) :tempo 90)You can then modify p1 and re-evaluate the (live ...) form without stopping the global clock.Example with several tracks:(live '((synth1 :omn p1 :port "Bus 1" :channel 1) (synth2 :omn pad1 :port "Bus 1" :channel 2) (kick :omn kick :port "Bus 1" :channel 3)) :tempo 120 :midi-clock-port "Bus 2")Current features include:live evaluation of (live ...) formsreplacing musical material without stopping the clockdirect MIDI output to IAC / CoreMIDI portstimestamped MIDI scheduling for improved timing stabilityoptional MIDI Clock outputMTS support for microtonal pitchesreading Opusmodus def-sound-set filesOMN articulations mapped to soundset keyswitches / CCs / program changesnamed soundset controllers such as expression, velocity-xf, etc.For Opusmodus soundsets, Livecode automatically tries to find:~/Opusmodus/User Source/Libraries/Def-Sound-Sets/ ~/Documents/Opusmodus/User Source/Libraries/Def-Sound-Sets/If your Opusmodus installation is located elsewhere:(livecode:set-livecode-soundset-directory "/path/to/Opusmodus/User Source/Libraries/Def-Sound-Sets/")Then check the loaded soundsets with:(livecode:live-soundset-status)Example with OMN articulations and a soundset:(setf vln '((s d4 p< leg e4 < leg f4 < leg g4 < def q a4 f marc h b4 ff trem+ponte))) (live '((violin :omn vln :port "Bus 1" :channel 1 :sound 'vsl-studio-solo-violin1 :program '(def))) :tempo 120)The project is still a prototype, so there will certainly be limitations depending on OMN syntax and soundset conventions. But it is already working well enough here for experiments with Opusmodus, Vienna Ensemble Pro, Synchron Player, IAC buses, MIDI Clock and MTS.The project is released under the MIT License.I’d be very happy to hear feedback, ideas, tests or suggestions, especially regarding:timing stability in different setupscompatibility with various soundsetsGitHub: https://github.com/Nanotk303/LivecodeThank you!
June 23Jun 23 Author New demo / test, this time test of Synchronisation and Start / Stop with my Live Coding system and Ableton Live.
June 25Jun 25 Author Just added today, Ableton Link Synchronisation, so now you can synchronize Opusmodus with Ableton Live or any other Opusmodus Live coding session allowing Opusmodus Jam sessions with different people, all in sync, yeah !Disclaimer: For Mac OS only, sorry.Stéphane
June 25Jun 25 Author Short demo / test for Opusmodus driving Ableton Live via Link.I've also made some test of livecoding with two computers with my son and it works fine, we can now Jam with Opusmodus.LiveCodingAndAbletonLinkSync.mp4
Saturday at 10:07 AM2 days Wonderful work Stephane, thank you for this! I took the liberty to extend Livecode with an OSC sender (requires the AbletonOSC remote script).It's still in an early phase but perhaps when you have time we can take a look at it together? As you know with OSC we can do many cool things related to automation, program changes, controlling device racks etc. Small demo here, just showing the clip launcherom-osc-live.mp4
Create an account or sign in to comment