Jump to content


Popular Content

Showing content with the highest reputation since 02/19/2019 in all areas

  1. 4 points

    Opusmodus 1.3.24622

    Free update for Opusmodus 1.3. users. It includes a support for a second screen and multi voice snippets. The new UNFOLD system opens up a whole new set of possibilities for the composer using OPUSMODUS. Additional library directory: 'Def-Instrument-Sets'. New functions: DEF-INSTRUMENT-SETS Use this function to define the instrument-sets with a given name. With named instrument-sets a composer can customise OPUSMODUS to reflect MIDI synthesisers or samplers which a studio system (inboard or outboard) might contain. The DEF-INSTRUMENT-SETS function is an essential companion to the PS function (PS stands for ‘Preview Score’ or, ‘Preview Snippet’). To create instrument-sets is fairly easy to do as it resembles the instrument setup from the DEF-SCORE instance. The instrument-set template: <instrument-name> (:layout <layout> :port <port> :channel <channel> :sound <sound-set> :program <program> :controllers <controllers> :pan <panning> :volume <volume>) To explain how it all works we will define new instrument-sets with two instruments. In our example we will use :oboe and :bassoon as our instrument names with a library name: my-inst. The next step we need to do is to select the corresponding instrument layout. The predefined layouts you will find in the ‘Instrument Layout Presets’ document in the System/Layout library: Examples: (def-instrument-sets my-inst :instruments (:group group :oboe (:layout oboe-layout :port nil :channel 1 :sound 'gm :program '(oboe) :controllers nil :pan (pan 0) :volume 92) :bassoon (:layout bassoon-layout :port nil :channel 2 :sound 'gm :program '(bassoon) :controllers nil :pan (pan -10) :volume 92) )) Here is how an instrument from a defined instrument-sets name might be entered into PS: (ps 'my-inst :oboe (list '((s a4 leg d5 leg fs4 leg d5 leg g4 leg d5) (s a4 leg d5 leg fs4 leg d5 leg g4 leg d5) (s a4 leg d5 leg cs5 leg b4 leg a4 leg g4 leg) (s fs4 leg d4 leg e4 leg cs4 leg e d4))) :bassoon (list '((e fs3 d3 e3) (e fs3 d3 e3) (e fs3 g3 a3) (e d3 a2 d2))) :key-signature '(d maj) :time-signature '(3 8 1) :tempo 112) You can define as many instrument-sets instances as needed. PS Use this function if you are looking for a quick preview of your score or when a snippet (especially for education) needs a full representation of the intended notation. The PS function name stands for ‘Preview Score’ or ‘Preview Snippet’. In the following examples we use the default instrument-sets library, defined in the ‘GM Instrument Sets.lisp’ file, which you will find in the Library panel. How to create your own instrument-sets library, you will find in the DEF-INSTRUMENT-SETS document. Instrument treble: (ps 'gm :treble (list '((s a4 leg d5 leg fs4 leg d5 leg g4 leg d5) (s a4 leg d5 leg fs4 leg d5 leg g4 leg d5) (s a4 leg d5 leg cs5 leg b4 leg a4 leg g4 leg) (s fs4 leg d4 leg e4 leg cs4 leg e d4))) :key-signature '(d maj) :time-signature '(3 8 1) :tempo 112) Instrument piano: (ps 'gm :p (list '((s a4 leg d5 leg fs4 leg d5 leg g4 leg d5) (s a4 leg d5 leg fs4 leg d5 leg g4 leg d5) (s a4 leg d5 leg cs5 leg b4 leg a4 leg g4 leg) (s fs4 leg d4 leg e4 leg cs4 leg e d4)) '((e fs3 d3 e3) (e fs3 d3 e3) (e fs3 g3 a3) (e d3 a2 d2))) :key-signature '(d maj) :time-signature '(3 8 1) :tempo 112 :title "G. Ph. Telemann, 12 Fantasie per clavicembalo TWV 33-n.1, 1732") Examples: The examples below demonstrate how quickly you can preview your progress at any stage of your work ie. voices, instrumentation etc… (setf p1 '(q d4 pp s eb4 < leg g4 < leg bb4 < leg a4 q. cs5 mf -e 3q gs5 > leg fs5 > leg c5 > b4 > leg f4 leg e4) p2 '(t d4 < leg eb4 < leg g4 < leg bb4 q. a4 marc t fs4 mf leg gs4 leg e. c5 e b4 t f5 leg e5 leg d5 leg eb5 3q bb5 > a4 > bb5 > e a4 pp stacc -e) p3 '(q d5 leg eb5 3q g4 stacc bb4 stacc a4 stacc e. cs4 marc s gs4 leg q gs4 -q) p4 '(-q. e d4 pp q. eb5 mf e g4 q bb4 trem a4 trem) p5 '(q. fs3 pp 3e c3 < leg b4 < leg f4 e d3 mf s eb3 leg g3 leg bb3 leg a3 e fs3 leg fs3 3e gs4 > stacc c5 > stacc b5 > stacc t f5 pp e.. e5) p6 '(q cs3 pp -q t gs3 marc e.. fs3 mf leg e c3 -e t b3 leg f3 q.. e4 pp) ) Please note how the list function is used to enclose the instrument voices. The number of voices in an instrument should not exceed the layout of a particular instrument. For example a piano uses a two staff notation therefore the input should be a two lists in a list (list (list right-hand) (list left-hand)). (ps 'gm :p (list (list p1) (list p6))) Instrument oboe, clarinet and bassoon: (ps 'gm :ob (list p1) :cl (list p3) :bn (list p6)) Brass Quintet: (ps 'gm :b5 (list p1 p2 p3 p4 p5)) DEF-UNFOLD UNFOLD The DEF-UNFOLD and UNFOLD function opens up a whole new set of possibilities for the composer using OPUSMODUS. It can prove a very powerful tool in defining methods (functions) from the outset, for a specific work or as a global index of your most used functions. To be able to store methods, processes and solutions and call them at anytime becomes a valuable resource for a composers workflow. This function is a companion to the UNFOLD function. (def-unfold m1 var (:pitch (pitch-variant x :variant '?)) dyn (:velocity (velocity-to-dynamic x)) ) (setf omn '(s bb4 p a4 h. db4 t gs4 mf fs4 c5 b4 q f5 e5)) To run the defined methods in a given omn-form sequence use the UNFOLD function: (unfold 'm1 '(var dyn) omn) Examples: (def-unfold m2 7 (:pitch (pitch-transpose 7 x)) -12 (:pitch (pitch-transpose -12 x)) ret (:all (gen-retrograde x :flatten t)) var (:pitch (pitch-variant x :variant '?)) gf (nil (gen-fragment '(3) '(3) x)) lrq (:length (length-rational-quantize x)) dyn (:velocity (velocity-to-dynamic x)) ls (nil (length-span '(6/4 6/4) x)) ob (:pitch (ambitus 'oboe x)) bn (:pitch (ambitus 'bassoon x)) hn (:pitch (ambitus 'french-horn x)) ) Please note that the number of methods within an instance can be much bigger than in the example above. Two bars of omn - opusmodus notation (setf mat '((q d4 pp s eb4 < leg g4 < leg bb4 < leg a4 q. cs5 mf -e 3q gs5 > leg fs5 > leg c5 > b4 > leg f4 leg e4) (t d4 < leg eb4 < leg g4 < leg bb4 q. a4 marc t fs4 mf leg gs4 leg e. c5 e b4 t f5 leg e5 leg d5 leg eb5 3q bb5 > a4 > bb5 > e a4 pp stacc -e))) Applying methods: (setf t1 (unfold 'm2 7 mat) t2 (unfold 'm2 '(-12 var ob) mat) t3 (unfold 'm2 'var mat) t4 (unfold 'm2 '(-12 gf lrq ls dyn ret var hn) t3) t5 (unfold 'm2 '(gf lrq ls dyn bn) t2) ) The result with a Wind-Quintet layout: (ps 'gm :w5 (list t1 t2 t3 t4 t5)) BIND-TO-INTERVAL The function BIND-TO-INTERVAL will bind (connect) a series of lists (patterns) to each-other with the given interval. Each transposition value is the sum of the last pitch in the list plus the given interval. The result of the process is a start transposition value for the next list. If rotate and variant options are used, the rotate process is the first followed by variant and finally the start transposition. In the example below the last pitch in the first list is g4, with binding interval 1 (semitone), therefore the start transposition value of the next list is gs4: (bind-to-interval '(1) '((s c4 d4 e4 g4) (s c4 d4 g4 e4))) => ((s c4 d4 e4 g4) (s gs4 bb4 eb5 c5)) Examples: (setf pattern '((s c4 d4 e4 g4) (s c4 d4 g4 e4) (s g4 e4 c4 d4) (s c4 d4 f4 g4) (s c4 d4 g4 f4) (s g4 f4 c4 d4) (s c4 d4 g4 f4) (s g4 gb4 f4 g4) (s g4 gb4 f4 a4) (s d4 f4 g4 a4) (s a4 g4 f4 d4) (s d4 f4 g4 c5))) In this example the binding intervals are 1 and 2 randomly selected: (bind-to-interval (rnd-sample (length pattern) '(1 2)) pattern) => ((s c4 d4 e4 g4) (s gs4 bb4 eb5 c5) (s d5 b4 g4 a4) (s b4 cs5 e5 fs5) (s g5 a5 d6 c6) (s d6 c6 g5 a5) (s bb5 c6 f6 eb6) (s f6 e6 eb6 f6) (s g6 fs6 f6 a6) (s bb6 cs7 eb7 f7) (s fs7 e7 d7 b6) (s cs7 e7 fs7 b7)) In the next example the binding intervals are 13 and -13 with random variant: (bind-to-interval (rnd-sample (length pattern) '(13 -13)) pattern :variant '?) => ((s c4 d4 e4 g4) (s fs3 a3 e3 d3) (s eb4 fs4 bb4 gs4) (s g3 f3 d3 c3) (s b1 a1 e1 fs1) (s g2 f2 bb2 c3) (s b1 a1 d2 e2) (s eb1 eb1 d1 cs1) (s d2 cs2 c2 e2) (s f3 d3 c3 bb2) (s b3 d4 e4 fs4) (s g5 bb5 c6 f6)) Here the binding intervals are 1, -1, 2 -2: (bind-to-interval '(1 -1 2 -1 2 -1 2) pattern) => ((s c4 d4 e4 g4) (s gs4 bb4 eb5 c5) (s b4 gs4 e4 fs4) (s gs4 bb4 cs5 eb5) (s d5 e5 a5 g5) (s a5 g5 d5 e5) (s eb5 f5 bb5 gs5) (s bb5 a5 gs5 bb5) (s b5 bb5 a5 cs6) (s c6 eb6 f6 g6) (s a6 g6 f6 d6) (s cs6 e6 fs6 b6)) (bind-to-interval '(1 -1 2 -1 2 -1 2) pattern :variant '?) => ((s c4 d4 e4 g4) (s gs4 f4 bb4 c5) (s b4 gs4 e4 fs4) (s gs4 bb4 cs5 eb5) (s d5 c5 a4 g4) (s a4 g4 e4 d4) (s cs4 eb4 gs4 fs4) (s gs4 a4 bb4 gs4) (s a4 bb4 b4 g4) (s fs4 a4 b4 cs5) (s eb5 c5 bb4 gs4) (s g4 e4 d4 a3)) Example with rotation: (bind-to-interval (rnd-sample (length pattern) '(1 2)) pattern :rotate '(1 2 1 2 1)) => ((s c4 d4 e4 g4) (s a4 f4 g4 c5) (s d5 e5 a5 fs5) (s gs5 cs5 eb5 fs5) (s gs5 fs5 cs5 eb5) (s e5 a5 g5 d5) (s e5 b4 cs5 fs5) (s g5 a5 a5 gs5) (s bb5 gs5 g5 fs5) (s g5 a5 d5 f5) (s g5 d6 c6 bb5) (s c6 d5 f5 g5)) PAN This function converts mixer panning values in the range from -100(L) to 100(R) into MIDI pan values. The centre position value in the PAN function is 0. Examples: (pan 0) => 64 (pan '(-12 0 12)) => (56 64 72) (pan '(-30 -10 10 30)) => (45 58 70 83) PAN in DEF-SCORE instrument instants definition: (def-score SQ (:title "String Quartet - VSL Show" :key-signature 'chromatic :time-signature (get-time-signature vln1) :tempo tempo :layout (string-quartet-layout 'violin1 'violin2 'viola 'cello)) (violin1 :omn vln1 :port 0 :channel 1 :sound 'vsl-violin-solo :program 0 :pan (pan -30)) (violin2 :omn vln2 :channel 2 :sound 'vsl-violin-solo :program 0 :pan (pan -10)) (viola :omn vla :channel 3 :sound 'vsl-viola-solo :program 0 :pan (pan 10)) (cello :omn vlc :channel 4 :sound 'vsl-cello-solo :program patches-vc :pan (pan 30)) ) PAN in DEF-INSTRUMENT-SETS instance: :string-quartet (:layout string-quartet-layout :port nil :channel '(1 2 3 4) :sound 'gm :program '(violin violin viola cello) :controllers nil :pan (pan '(-30 -10 10 30)) :volume 92) Multi Voice Snippet Select or place the mouse cursor at the end of the expression and press ⌘2. This snippet is very useful in sketching and testing the progress of your work ie. instrumentation, voice density etc… (setf p1 '(q d4 pp s eb4 < leg g4 < leg bb4 < leg a4 q. cs5 mf -e 3q gs5 > leg fs5 > leg c5 > b4 > leg f4 leg e4) p2 '(t d4 < leg eb4 < leg g4 < leg bb4 q. a4 marc t fs4 mf leg gs4 leg e. c5 e b4 t f5 leg e5 leg d5 leg eb5 3q bb5 > a4 > bb5 > e a4 pp stacc -e) p3 '(q d5 leg eb5 3q g4 stacc bb4 stacc a4 stacc e. cs4 marc s gs4 leg q gs4 -q) p4 '(q. fs3 pp 3e c3 < leg b4 < leg f4 e d3 mf s eb3 leg g3 leg bb3 leg a3 e fs3 leg fs3 3e gs4 > stacc c5 > stacc b5 > stacc t f5 pp e.. e5) p5 '(-q. e d4 pp q. eb5 mf e g4 q bb4 trem a4 trem) p6 '(q cs4 pp -q t gs4 marc e.. fs4 mf leg e c4 -e t b4 leg f4 q.. e4 pp) p7 '(-q e d4 leg eb4 h g4 mf leg q. g4 > -e) p8 '(s bb3 pp leg a3 h. db3 t gs4 mp fs3 < c5 < b3 q f4 marc e4) ) (list p1 p2 p3 p4) New window display: (display-midi *last-score* :display :window) (display-musicxml 'score :display :window) Changes to ‘Evaluate Score’ and ‘Last Score’ shortcut keys. Best wishes, Janusz
  2. 3 points
    (setf op25arnie '(e4 f4 g4 cs4 fs4 ds4 gs4 d4 b4 c4 a4 as4)) (respell (gen-chord2 20 '(3) op25arnie :offset '(2 1 2 3))) Using the :offset parameter in the gen-chord2 function could be interesting too, for example for keeping notes between chords for smoother transitions with common tones. S.
  3. 2 points
    Function name: BIND-TO-INTERVAL in Opusmodus version 1.3.24622
  4. 2 points
    Dear Friends, Here 's a way to produce chords from 12 tone rows (Schoenberg opus 25 row): (setf op25arnie '(e4 f4 g4 cs4 fs4 ds4 gs4 d4 b4 c4 a4 as4)) (respell (gen-chord2 20 '(3 3 3 1) op25arnie)) Hope it helps a little. Best, Julio Also check this ! And the Nigel Morgan Parametric Composition book, of course ! More specific, to keep track of the row: (setf op29webernLib (expand-libraries '(library vienna webern r19))) (setf rowint (pitch-to-integer op29webernLib)) (setf pitches (gen-repeat 10 op29webernLib)) (setf lengths (span pitches (gen-repeat 10 '(s s s s -s s e -s s s -s e e -q q)))) (setf text (span pitches rowint)) (def-score Stage-1 (:key-signature 'chromatic :time-signature '(4 4) :tempo 80 :layout (treble-layout 'piano-rh)) (piano-rh :length lengths :pitch pitches :text text ;:velocity dynamics :channel 1 :sound 'gm :program 'acoustic-grand-piano) ) Best, Julio
  5. 1 point

    Opusmodus 1.3.24692

    1.3.24692 – Function name changes: DEF-UNFOLD to DEF-UNFOLD-SET DEF-INSTRUMENT-SETS to DEF-INSTRUMENT-SET – New functions: DEF-UNFOLD-SET UNFOLD-SET-NAMES GET-UNFOLD-SET GET-UNFOLD-SET-GROUPS GET-UNFOLD-SET-GROUP UNFOLD SOUND-SET-NAMES GET-SOUND-SET-PROGRAM-GROUPS GET-SOUND-SET-PROGRAM-GROUP GET-SOUND-SET-PROGRAM GET-SOUND-SET-CONTROLLER-GROUPS GET-SOUND-SET-CONTROLLER-GROUP GET-SOUND-SET-CONTROLLER DEF-INSTRUMENT-SET INSTRUMENT-SET-NAMES GET-INSTRUMENT-SET GET-INSTRUMENT-SET-GROUPS GET-INSTRUMENT-SET-GROUP – New directory in System Library: Libraries. – New directory in Def-Libraries: Def-Unfold-Sets. – New Extension file: 'OSC Remote Setup.lisp'. Fixed: – Documents errors. Examples: SOUND-SET (sound-set-names) => (xce-solo-woodwinds-generic vsl-clarinet-bb vsl-cello sgmo-acoustic-grand-piano k2500r s80 se-1 sgmo-bassoon sgmo-strings-1 zr vsl-altoflute vsl-prepared-piano supernova-ii sy55 reaktor sgmo-vibraphone vsl-imperial vsl-cello-solo trinity ms2000 pr micro-q k1 vsl-cembalo-ks sgmo-piccolo pianoteq vsl-cembalo vsl-violin vsl-viola-solo micro-piano gm2 vsl-contrabass trinity-rack sgmo-celesta sgmo-trombone nord-lead-3 gm sgmo-harp sgmo-glock karma sgmo-trumpet xv-5080 sgmo-flute sgmo-oboe vsl-violin-solo sgmo-horn sgmo-timpani k2600 sgmo-marimba vsl-hornvienna vsl-prepared-piano-ks sgmo-tuba jv-1080 vsl-harmonium-ks vsl-harmonium sgmo jv-2080 sy22 k2500 sgmo-violin virus-b sgmo-cello sgmo-clarinet k2000r k2000 vsl-bassclarinet vsl-upright xce-solo-strings-generic motif sgmo-viola) (get-sound-set-program-groups 'gm) => (piano percussion organ guitar bass strings ensemble brass reed pipe synth-lead synth-pad synth-effects ethnic percussive sound-effects) (get-sound-set-program-group 'gm 'Brass) => (trumpet trombone tuba muted-trumpet french-horn brass-section synth-brass-1 synth-brass-2) (get-sound-set-program 'gm 'trombone) => 57 (get-sound-set-controller-groups 'gm) => (general lsb pedal) (get-sound-set-controller-group 'gm 'general) => (bank-select modulation breath-control foot-control portamento-time data-entry volume balance pan expression effects-controller1 effects-controller2 gen-purpose1 gen-purpose2 gen-purpose3 gen-purpose4) (get-sound-set-controller 'gm 'expression) => 11 UNFOLD (unfold-set-names) => (m1 eg) (get-unfold-set-groups 'eg) => (transp basic ambitus) (get-unfold-set-group 'eg 'ambitus) => (ob bn hn) (get-unfold-set-groups 'eg) => (transp basic ambitus) (get-unfold-set 'eg 'ld) => (:length (length-divide 2 2 x)) Unfold Set Example: (def-unfold-set eg :methods (:group transp t7 (:pitch (pitch-transpose 7 x)) t-12 (:pitch (pitch-transpose -12 x)) :group basic ret (:all (gen-retrograde x :flatten t)) var (:pitch (pitch-variant x :variant '?)) gf (nil (gen-fragment '(3) '(3) x)) ld (:length (length-divide 2 2 x)) lrq (:length (length-rational-quantize x)) dyn (:velocity (velocity-to-dynamic x)) ls (nil (length-span '(6/4 6/4) x)) :group ambitus ob (:pitch (ambitus 'oboe x)) bn (:pitch (ambitus 'bassoon x)) hn (:pitch (ambitus 'french-horn x)) )) INSTRUMENT-SET (instrument-set-names) => (vsl gm) (get-instrument-set-groups 'gm) => (clefs grand wind brass strings wind-ensemble brass-ensemble piano string-ensemble choir) (get-instrument-set-group 'gm 'wind) => (:pic :fl :afl :bfl :ob :eh :oda :cl :acl :bcl :bn :cbn :ssax :asax :tsax :bsax) (get-instrument-set-group 'gm 'string-ensemble) => (:s3 :sq) (get-instrument-set 'gm :p) => (:layout piano-layout :port nil :channel 1 :sound 'gm :program 0 :controllers nil :pan (pan 0) :volume 92) (get-instrument-set 'gm :sq) => (:layout string-quartet-layout :port nil :channel '(13 14 15 16) :sound 'gm :program '(violin violin viola cello) :controllers nil :pan (pan '(-30 -10 10 30)) :volume 92) Instrument Set Example: (def-instrument-set my-inst :instruments (:group wind :oboe (:layout oboe-layout :port nil :channel 1 :sound 'gm :program '(oboe) :controllers nil :pan (pan 0) :volume 92) :bassoon (:layout bassoon-layout :port nil :channel 2 :sound 'gm :program '(bassoon) :controllers nil :pan (pan -10) :volume 92) )) Note: Please create a new directory 'Def-Unfold-Sets' in your '~/Opusmodus/Def-Libraries' directory. This is where you will store your Unfold sets. The 'OSC Remote Setup.lisp' file needs to be dragged into your '~/Opusmodus/Extensions' directory. OSC Remote Setup.lisp Best wishes, Janusz
  6. 1 point

    Using OSC

    Dear Rangarajan, Here it is. OSC threads and Reaktor 6: 1. Expand the Reaktor-Drive.ens.zip file first. Reaktor-Drive.ens.zip 2. Move the Reaktor-Drive.ens file into the '~/Opusmodus/Instruments' directory, this will allow you to star the Reaktor form the Opusmodus app. 3. Add the 'Reaktor OSC Threads.opmo' file into the Opusmodus Navigator. Reaktor OSC Threads.opmo 4. Evaluate the DATA parameters. 5. Evaluate the SCORE. 6. Press START button in the Live Coding Instrument - you should hear a sound coming from your Reaktor instrument. 7. Now you are ready to run the OSC threads. You can stop any thread at any time with STOP-OSC-THREADS. or all threads with STOP-ALL-OSC-THREADS. Yes, the OSC-THREAD send the data to the given controller at the other end. Each message has two values, example: (0.04198588 4). The first value is the controller value, the second value is the time (interval - second or ratio). Best wishes, Janusz
  7. 1 point

    Opusmodus 1.3.24667

    New function: STOP-ALL-OSC-THREADS Fixed: Live Coding Instrument hanging note at Stop. Few document errors. Note: Select 'Check for Updates..." from Opusmodus menu.
  8. 1 point
    Stephane Boussuge

    Using OSC

    I am really very happy to see you back Rangarajan ! Stéphane
  9. 1 point

    CLM Installation in Opusmodus 1.3

    Sorry I didn't realise I needed to do that again, that was an easy fix, thanks!
  10. 1 point

    CLM Installation in Opusmodus 1.3

    CLM Installation Common Lisp Music, by William Schottstaedt is a powerful sound synthesis language implemented in Lisp and C. CLM is essentially a toolbox for instrument building. Although it comes with a number of instruments ready to use, most composers use CLM to define their own instruments. For those of you that wish to dive into CLM sound synthesis system, I advise everyone to read this document carefully first. 1. Command Line Tools First you need to find out if "command line tools" are installed in your system. The C compiler is essential at the instrument compile and load time. Launch the Terminal, found in /Applications/Utilities/ To check if command line tools are installed run: xcode-select --version if installed you will see the below with the version found in your system, something like that: xcode-select version 1234 If command line tools are not installed run: xcode-select --install A software update popup window will appear that asks: “The xcode-select command requires the command line developer tools. Would you like to install the tools now?” choose to confirm this by clicking “Install”, then agree to the Terms of Service when requested. Wait for the Command Line Tools package download to complete, it’ll be about 130MB and installs fairly quickly depending on your connection speed. The installer goes away on its own when complete. Enjoy your new unix command line toolkit! 2. Load and Compile Instruments CLM system comes with a number of instruments which are a great starting point to see and hear CLM in action. Some of them are simple others are complex. Before you can run any of the instruments you must compile them first. To do that you need to open and evaluate a file "Load CLM Instrument.lisp", you will find the file in the CLM directory. This process will take a minute or so and it will create binary and dynamic library files for each of the instruments. The binary files will be saved in the bin directory and the library files will be saved in the libclm directory. After this process is completed you are ready to run the CLM Examples. If you wish to load your instruments at the startup of the app move the "Load CLM Instrument.lisp" file into the “~/Opusmodus/Extensions/“ directory. Thats all you need to do to make CLM system work in Opusmodus. Best wishes, Janusz
  11. 1 point

    Providing code examples to students

    "My focus is on the ever-changing relationship that composers have with rules and procedures." some ideas/names...? => MOZART https://en.wikipedia.org/wiki/Musikalisches_Würfelspiel => the LIGETI-analysis of BOULEZ's STRUCTURES ? => MESSIAEN in general: https://monoskop.org/File:Messiaen_Olivier_The_Technique_of_My_Musical_Language.pdf, or specific "MODE DE VALEURS ET D'INTENSITÉS" => GOTTFRIED MICHAEL KöNIG => XENAKIS (the "ST"-pieces?) => HAUER https://de.wikipedia.org/wiki/Zwölftonspiel
  12. 1 point

    Providing code examples to students

    Hello, I'm making a presentation on 12-tone composition in an educational context. While my focus is on a 12-tone map (including OMN and OpusModus code) I want to begin with some more simple examples e.g. a Canon, a Fugue, first second and third species counterpoint. While I can create a canon, counterpoint and a fugue myself with a bit of time, it would be much less time-consuming for me if I were able to use existing examples. Is there an existing library of OMN examples of these types of compositions? If not, I'm happy to post mine once I'm done. Tom
  13. 1 point

    the new Def-Instruments errors..SOLVED

    So I'm very happy to be exploring new snippet structure but cannot seem to define my own instrument, based on the example in the help file I did this but get errors: SOLVED: I had to Evaluate my Def-Inst before it would play..
  14. 1 point

    Snippets got an upgrade!

    Wow this really is a huge deal for me. We can now have snippets as mini scores before we compile. Key sigs, time sigs, tempo and instrument defs all in a snippet. And multiple voices too. Thanks Janusz. 5 hours later. So this is a major change it seems to me and very useful. The whole workflow has had a boost. This, amongst other things, allows the creation of snippet libraries with granular control over the visual and functional aspects of the snippets. An ideas library is here. Of course it was possible before with mutiple .opmo files and def scores but this is much more useful (and convenient). I can have one .opmo file with a hundred snippets in it, all with different instruments and with correct notation and functionality and individual tempi. As a recent arrival to OpM I do remember my first reaction was ...Preference>Audition>...and then set a static set of preferences for playback?....this just felt limiting to be honest. Then I quickly realised that this was just a temporary thing and def-score was the way to define playback..and still is. But the Preference>Audition set up can effectively be ignored if one wishes now and Snippets are free! Good stuff.
  15. 1 point

    Providing code examples to students

    Such an example will be very useful indeed. Looking forward to see how you made it work. Best, J
  16. 1 point

    OM OSC Setup

    The documentation is not correct and will be updated with the next release. Examples: (defparameter time '(rnd-sample 50 '(1/4 1/2 1/4))) (defparameter values '(vector-smooth 0.05 (gen-white-noise 500))) (defparameter data '(gen-osc-data 60 (eval values) :time (eval time))) (setf osc1-pw (osc-thread reaktor "osc1-pw" (eval data))) or (progn (defparameter time1 '(rnd-sample 50 (gen-length '(1 2 3 4 5 6 7 8 9 10 11 12) 1/2))) (defparameter time2 '(1/4 1/2)) (defparameter time3 '(rnd-sample 50 time2)) (defparameter time4 '(1/128)) (defparameter numb1 '(vector-smooth 0.05 (gen-white-noise 1024))) (defparameter numb2 '(gen-sine 128 4 1)) (defparameter data '(gen-osc-data 300 (eval numb1) :time (eval time1))) (defparameter data2 '(gen-osc-data 300 (eval numb1) :min 0.94 :max 0.98 :time (eval time1))) (defparameter data3 '(gen-osc-data 300 (eval numb1) :min 0.94 :max 0.98 :time time4)) (defparameter data4 '(gen-osc-data 300 (eval numb1) :time (eval time3))) (defparameter data5 '(gen-osc-data 300 (eval numb2) :time time2)) (defparameter data6 '(gen-osc-data 300 (eval numb2) :time time4)) (defparameter data7 '(gen-osc-data 300 (eval numb2) :min 0.70 :max 0.88 :time (eval time1))) ) (progn (setf o1-1 (osc-thread reaktor "osc1-pw" (eval data))) (setf o1-2 (osc-thread reaktor "osc1-tune" (eval data2))) (setf o1-3 (osc-thread reaktor "osc1-tune-fine" (eval data3))) (setf o1-4 (osc-thread reaktor "osc1-shape" (eval data))) (setf o1-5 (osc-thread reaktor "osc1-32w" (eval data2))) (setf o1-6 (osc-thread reaktor "osc1-16w" (eval data4))) (setf o1-7 (osc-thread reaktor "osc1-8w" (eval data4))) (setf o1-8 (osc-thread reaktor "osc1-4w" (eval data4))) (setf o1-9 (osc-thread reaktor "osc1-2w" (eval data4))) (setf o1-10 (osc-thread reaktor "osc1-x-m" (eval data4))) (setf o1-11 (osc-thread reaktor "osc1-32" (eval data))) (setf o1-12 (osc-thread reaktor "osc1-16" (eval data))) (setf o1-13 (osc-thread reaktor "osc1-8" (eval data))) (setf o1-14 (osc-thread reaktor "osc1-4" (eval data))) (setf o1-15 (osc-thread reaktor "osc1-2" (eval data))) (setf o1-16 (osc-thread reaktor "osc1-x" (eval data))) (setf o1-17 (osc-thread reaktor "osc1-adsr-attack" (eval data))) (setf o1-18 (osc-thread reaktor "osc1-adsr-attack-m" (eval data))) (setf o1-19 (osc-thread reaktor "osc1-adsr-decay" (eval data))) (setf o1-20 (osc-thread reaktor "osc1-adsr-decay-m" (eval data))) (setf o1-21 (osc-thread reaktor "osc1-adsr-sustain" (eval data7))) (setf o1-22 (osc-thread reaktor "osc1-adsr-release" (eval data))) (setf o1-23 (osc-thread reaktor "osc1-adsr-release-m" (eval data))) ) (stop-osc-threads '(o1-1 o1-2 o1-3 o1-4 o1-5 o1-6 o1-7 o1-8 o1-9 o1-10 o1-11 o1-12 o1-13 o1-14 o1-15 o1-16 o1-17 o1-18 o1-19 o1-20 o1-21 o1-22 o1-23))
  17. 1 point

    Opusmodus - second monitor

    The upcoming release will allow you to open display-midi, display-musicxml, graphs and snippets in a separate window. For any of you using second monitor this will be great addition to your work flow. Examples: (display-midi 'score :display :window) (display-musicxml 'score :display :window) Best, Janusz
  • Create New...