Jump to content

TomTolleson

Members
  • Posts

    77
  • Joined

  • Last visited

Reputation Activity

  1. Thanks
    TomTolleson reacted to Stephane Boussuge in Chord-Dictum Score   
    I've shared a video here on CHORD-DICTUM function and you will find here the code from the video.
    Enjoy !
     
     
    The Score:
     
    ;;;-------------------------------------------------------- ;;; SCORE 186 ;;; VARIATIONS POUR PIANO ;;; Etude de la fonction "chord-dictum" ;;; S.BOUSSUGE ;;; WIEN - 27.01.2024 ;;;-------------------------------------------------------- ;;; LEARN OPUSMODUS: WWW.COMPOSERWORKSHOP.COM ;;;-------------------------------------------------------- ;;; To view the score press the Cmd-Option-1 keys. ;;;-------------------------------------------------------- ;;; UTILITY ;;; REA-MARK (defun rea-mark (omn-exp) "Add rehearsal marks even on empty bars." (if (event-restp (nth-event 0 omn-exp)) (position-insert 1 'reh omn-exp :section '(0)) (edit-events '((1 1 'reh :articulation)) omn-exp))) ;;;-------------------------------------------------------- ;;; PARAMETERS (setf seed (rnd-round 1 1000000)) (init-seed seed) (setf chords.p '(h. cs3fs3b3d4fs4bb4 q bb2eb3g3b3eb4gs4 h. cs3fs3b3d4fs4bb4 q fs3bb3d4f4bb4eb5 h b2c3eb3a3c4eb4gs4 q gs2cs3f3g3bb3eb4 h fs2bb2d3e3gs3cs4 q eb2gs2c3d3fs3bb3 h. c3eb3fs3b3d4fs4bb4c5 q d3fs3bb3d4f4bb4f5 b2eb3fs3b3d4fs4bb4c5 g2bb2eb3g3b3cs4fs4a4 e2gs2cs3e3g3bb3eb4f4 a2cs3fs3a3c4eb4gs4b4 f2bb2eb3g3bb3eb4f4 h. c3eb3gs3c4e4fs4bb4d5 q a2fs3a3cs4fs4a4 d3fs3bb3d4f4bb4eb5f5 h f3gs3cs4f4g4bb4eb5g5 f3gs3cs4f4g4bb4eb5g5 w f3gs3cs4f4g4bb4eb5g5)) (setf rvel (rnd-sample (length (omn :pitch chords.p)) '((pp)(p)(mp)(mf)(f)(ff)))) (setf chords.d (omn-replace :velocity rvel chords.p)) (setf dictum1 '( (:len w :chd 7 :div 7 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|2|# (:len w :chd 6 :div 2 :vel nil :att nil :grp 2 :int nil :var ? :mtd nil :rhy t) #|3|# (:len w :chd 5 :div 5 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|4|# (:len w :chd 4 :div 4 :vel nil :att nil :grp 3 :int nil :var ? :mtd nil :rhy t) #|5|# (:len h. :chd 7 :div 7 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|6|# (:len h. :chd 6 :div 3 :vel nil :att nil :grp 3 :int nil :var ? :mtd nil :rhy t) #|7|# (:len h. :chd 5 :div 5 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|8|# (:len h. :chd 4 :div 4 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|9|# (:len h :chd 7 :div 2 :vel nil :att nil :grp 2 :int nil :var ? :mtd nil :rhy t) #|10|# (:len h :chd 6 :div 6 :vel nil :att nil :grp 3 :int nil :var ? :mtd nil :rhy t) #|11|# (:len h :chd 5 :div 3 :vel nil :att nil :grp 2 :int nil :var ? :mtd nil :rhy t) #|12|# (:len h :chd 4 :div 4 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|13|# (:len q :chd 7 :div 4 :vel nil :att nil :grp 2 :int nil :var ? :mtd nil :rhy t) #|14|# (:len q :chd 6 :div 6 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|15|# (:len q :chd 5 :div 2 :vel nil :att nil :grp 2 :int nil :var ? :mtd nil :rhy t) #|16|# (:len q :chd 4 :div 4 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) ) ) (setf dictum-temp `(list (rnd-sample 8 '(w h. h q)) ; Length map (rnd-number 8 4 8) ; Chord-size map (rnd-number 8 3 7) ; Length division nil ; Velocity map nil ; Attribute map (rnd-sample 8 '((3 4) (3 4) nil)) ; Chord group (rnd-sample 8 '((0 13 1 11) nil (0 6 -6 11) nil)) ; Intervals '? ; Variant (rnd-sample 8 '(m r nil)) ; Methods (rnd-sample 8 '(nil t t nil)) ; Rhythm series )) (setf dictum2 (gen-chord-dictum (eval dictum-temp))) (setf dictum3 (gen-chord-dictum (eval dictum-temp))) (setf out1 (chord-dictum dictum1 chords.d)) (setf out2 (chord-dictum dictum2 chords.d)) (setf out3 (chord-dictum dictum3 chords.d)) (setf out4 (chord-dictum dictum1 chords.d)) (setf piano (assemble-seq chords.d out1 out2 out3 out4)) (setf split1 (ambitus-filter '(c4 c8) piano)) (setf split2 (ambitus-filter '(a0 b3) piano)) (setf piano-rh split1) (setf piano-rh.rea (assemble-seq (loop for i in piano-rh :collect (rea-mark (list i))))) (setf piano-lh split2) (setf titre (concatenate 'string "Score186-Variation-Piano-" (stringify seed) )) ;;;-------------------------------------------------------- ;;; SCORE AND LAYOUT (def-score Score186 (:title titre :subtitle "pour Piano" :composer "Stephane Boussuge" :copyright "Copyright © 2024" :key-signature 'chromatic :time-signature '((1 1 1 1) 4) :tempo 108 :layout (piano-solo-layout 'piano-rh 'piano-lh)) (piano-rh :omn piano-rh.rea ;:port "bus 6" :channel 1 :sound 'gm :program 'acoustic-grand-piano ) (piano-lh :omn piano-lh ;:port "bus 6" :channel 1 ) ) (init-seed nil)  
     
  2. Thanks
    TomTolleson reacted to Stephane Boussuge in Articulations-as-tracks in Albion Neo   
    Hi Tom,
    I generally use Plogue Bidule to solve this.
     
    Best
     
    Stephane
     
  3. Thanks
    TomTolleson reacted to Stephane Boussuge in Empty Layout in PS   
    Hi Tom,
     
    to output midi, you don't need any layout, you can do this.
    (def-score electronic (:title "electronic music score" :composer "THT" :copyright "Copyright ©2023 " :key-signature 'chromatic :time-signature '((1 1 1 1) 4) :tempo 100 ) (polysynthl :omn polysynth :channel 2 :sound 'gm :program 0 :volume 100 :pan 64 :port 1 :controllers (91 '(72)) ) (polysynthr :omn polysynth :channel 2 :sound 'gm :program 0 :volume 100 :pan 64 :port 1 :controllers (91 '(72)) ) (monosynth :omn monosynth :channel 3 :sound 'gm :program 0 :volume 100 :pan 64 :port 1 :controllers (91 '(72)) ) (modularsynth :omn modularsynth :channel 4 :sound 'gm :program 0 :volume 100 :pan 64 :port 1 :controllers (91 '(72)) ) (padl :omn pad :channel 5 :sound 'gm :program 0 :volume 100 :pan 64 :port 1 :controllers (91 '(72)) ) (padr :omn pad :channel 5 :sound 'gm :program 0 :volume 100 :pan 64 :port 1 :controllers (91 '(72)) ) (kick :omn kick :channel 1 :sound 'gm :program 0 :volume 100 :pan 64 :port 1 :controllers (91 '(72)) ) (snare :omn snare :channel 2 :sound 'gm :program 0 :volume 100 :pan 64 :port 1 :controllers (91 '(72)) ) )  
  4. Thanks
    TomTolleson reacted to opmo in length-augmentation to fill rests   
    (setf aug-rest-length (loop for i in (omn :length mat) when (length-restp i) collect (* 1/2 i) when (length-notep i) collect (* 2 i)))  
    or
    (setf aug-rest-length       (loop for i in (omn :length mat)             when (minusp i) collect (* 1/2 i)             when (plusp i) collect (* 2 i)))  
  5. Thanks
    TomTolleson reacted to opmo in length-augmentation to fill rests   
    (setf mat (flatten '((s d3 ffff -e. s f3 mf -q.. s f3 ffff -e.) (s g3 -e. s f3 -e. q.. g3 -s)))) (setf aug-length (loop for i in (omn :length mat) collect (if (length-restp i) i (car (length-augmentation 4 (list i)))))) (setf augmat (make-omn :length aug-length :pitch (omn :pitch mat) :velocity (omn :velocity mat) :articulation (omn :articulation mat))) (setf mat (pitch-transpose -12 augmat)) => (q d2 ffff -e. q f2 mf -q.. q f2 ffff -e. q g2 -e. q f2 -e. w.. g2 -s)  
  6. Like
    TomTolleson got a reaction from Stephane Boussuge in length-augmentation to fill rests   
    Thank you @Stephane Boussuge!

    A huge help as always. I made a slight modification (for anyone reading this thread) to collect the rests (rather than the notes); essentially the inverse of what Stephane's code accomplishes. Mine is as follows (using "length-notep" in place of "length-restp"):
     
    (setf len '(1/8 1/8 -1/4 1/16 1/16 1/16 1/16 1/4 -1/8 1/16 1/16 1/2)) (setf rest-only (remove-nils                 (loop for l in len                       :collect (if (length-notep l) nil l ))))  
  7. Thanks
    TomTolleson reacted to Stephane Boussuge in length-augmentation to fill rests   
    Hi,
     
    may be this help:
     
    (setf len '(1/8 1/8 -1/4 1/16 1/16 1/16 1/16 1/4 -1/8 1/16 1/16 1/2)) (setf len-only (remove-nils (loop for l in len :collect (if (length-restp l) nil l ))))  
  8. Like
    TomTolleson reacted to Stephane Boussuge in Prelude pour Piano 160923   
    New short piece for piano.
     

    stephaneboussuge · Prelude pour Piano 160923  
  9. Thanks
    TomTolleson reacted to Stephane Boussuge in sc:Synthdef for sampler   
    Here's an example of sampler design:
     
    (sc:defsynth stf-sampler1 ((buffer 0) (rate 1) (start 0) (amp 0.5) (out 0)) (let ( (sig (sc:play-buf.ar 2 buffer (* rate (sc:buf-rate-scale.ir buffer)) :start-pos (* start (sc:buf-frames.ir buffer)) :act :free))) (sc:out.ar out (* amp sig)))) (defparameter sample1 (sc:buffer-read "/Users/stephaneboussuge/Samples/tibetan-singing-bowl.wav" :bufnum 0)) ;(sc:synth :stf-sampler1) ;(sc:synth :stf-sampler1 :rate 0.5) ;(sc:synth :stf-sampler1 :rate 2) (sc:stop) Hope it helps.
     
    Best
     
    S.
  10. Thanks
    TomTolleson reacted to opmo in server.default.options.Xdevice (Audio routing)   
    The 'Loopback' software will allow you audio routing:
     
    Rogue Amoeba | Loopback: Cable-Free Audio Routing
    ROGUEAMOEBA.COM Get all the power of a high-end studio mixing board, right inside your Mac!  
    This is my setup:
     

     
     
  11. Like
    TomTolleson got a reaction from vpolajnar in Applying length-augmentation (or any function) to a list by name   
    OK, so this seems to be working:

     
    (setf source "/Users/tomtolleson/OpusModus/Scores/The Bifurcated Fruit of a Mirror/MIDI/dominabi.mid") (setf sourcelengths (midi-to-omn source :type :length)) (setf flatlengths (mcflatten sourcelengths)) (length-augmentation 4 flatlengths) THT
  12. Thanks
    TomTolleson reacted to vpolajnar in Applying length-augmentation (or any function) to a list by name   
    You should use sourcelengths as variable:
    (length-augmentation 2 sourcelengths) Best!
     
  13. Like
    TomTolleson got a reaction from vpolajnar in Applying length-augmentation (or any function) to a list by name   
    Thank you for the response. That's still throwing an error.
     
    Even when I'm using it as 
     
    (setf lengths (length-augmentation 2 sourcelengths))  
    or
     
    (setf lengths (length-augmentation 2 (sourcelengths)))  
    or
     
    (setf lengths (length-augmentation 2 '(sourcelengths)))  
    Ah, just realized the source of the problem is my original variable "sourcelengths"
     
    When that's evaluated it's
     
    (((1/16 -3/16 1/16 -3/16 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/16 -3/16) (-1/4 1/4 1/16 -3/16 1/4) (3/16 -3/16 1/16 -3/16 1/4 1/8) (1/8 1/16 -3/16 1/16 -3/16 1/4 1/8) (1/8 1/4 1/4 1/4 1/8) (1/8 1/2 1/4 1/8) (1/8 1/4 1/4 1/16 -1/4 -1/16) (-1/8 1/16 -3/16 1/16 -3/16 1/4 1/8) (1/8 1/16 -3/16 7/16 -3/16) (-1/8 1/4 1/4 1/4 1/8) (1/8 1/4 1/16 -3/16 1/4 1/16 -1/16) (-1/8 1/16 -3/16 1/4 1/4 1/16 -1/16) (-1/8 1/4 1/4 1/4 1/8) (1/8 7/16 -3/16 1/4) (1/16 -3/16 1/16 -3/16 1/16 -3/16 1/16 -3/16) (1/16 -3/16 7/16 -1/16 1/4) (1/4 1/4 1/4 1/4) (1/16 -3/16 1/16 -3/16 1/16 -3/16 1/4) (1/16 -3/16 1/2 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/2 1/4) (3/16 -1/2 -1/16 1/16 -3/16) (1/16 -3/16 1/4 1/16 -3/16 1/4) (1/16 -3/16 1/16 -3/16 1/4 1/16 -3/16) (1/4 1/2 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/2 1/4 1/4) (1/4 1/4 1/2) (1/4 1/4 1/4 1/4) (1/2 1/4 1/4) (1/4 1/2 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/2 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/2) (7/16 -3/16 1/16 -3/16 1/8) (1/8 1/16 -3/16 1/4 1/4 1/16 -1/16) (-1/8 1/4 1/16 -3/16 3/8) (1/8 1/16 -3/16 1/4 1/4 1/8) (1/8 1/2 1/4 1/8) (1/8 1/4 1/4 1/4 1/8) (3/8 1/4 1/4 1/8) (1/8 1/2 3/8) (1/16 -1/4 -1/16 1/4 1/4 1/8) (1/8 1/4 1/16 -3/16 3/8) (1/16 -1/16 1/4 1/4 1/4 1/8) (1/8 1/2 3/8) (1/8 1/4 1/4 1/4 1/16 -1/16) (-1/8 1/4 1/4 1/4 1/8) (5/16 -3/16 1/4 1/4) (1/4 1/16 -3/16 1/16 -3/16 1/4) (1/4 1/4 1/2) (7/16 -1/16 1/4 1/4) (1/4 1/4 1/4 1/4) (1/16 -3/16 1/2 1/4) (1/4 1/4 1/4 1/4) (1/4 1/2 1/4) (1/4 1/4 1/2) (1/4 1/4 1/2) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/2 1/4) (3/16 -1/2 -1/16 1/16 -3/16) (1/16 -3/16 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/16 -7/16) (1/4 1/16 -3/16 7/16 -1/16) (-1/8 1/16 -3/16 1/4 1/4 1/16 -1/16) (-1/8 1/16 -3/16 1/4 1/4 1/8) (1/8 1/4 1/4 1/4 1/8) (3/8 1/4 1/4 1/8) (1/8 1/4 1/16 -7/16 1/16 -1/16) (-1/8 1/16 -3/16 1/4 1/4 1/16 -1/16) (-1/8 7/16 -1/4 -1/16 1/8) (1/8 1/4 1/4 1/4 1/8) (1/8 1/16 -3/16 1/4 1/16 -3/16 1/16 -1/16) (-1/8 1/4 1/4 1/16 -3/16 1/8) (1/8 1/4 1/4 1/4 1/8) (5/16 -3/16 1/4 1/16 -3/16) (1/16 -3/16 1/16 -3/16 1/16 -3/16 1/16 -3/16) (7/16 -1/16 1/4 1/4) (1/4 1/4 1/4 1/16 -3/16) (1/16 -3/16 1/16 -3/16 1/4 1/16 -3/16) (1/2 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/2) (1/4 1/4 1/4 1/4) (1/2 7/16)))  
    Applying Length augmentation to that will cause a problem no matter how I do it. I'll need to solve that issue first. Thanks!
    It should be 
     
    (setf sourcelengths '((1/16 -3/16 1/16 -3/16 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/16 -3/16) (-1/4 1/4 1/16 -3/16 1/4) (3/16 -3/16 1/16 -3/16 1/4 1/8) (1/8 1/16 -3/16 1/16 -3/16 1/4 1/8) (1/8 1/4 1/4 1/4 1/8) (1/8 1/2 1/4 1/8) (1/8 1/4 1/4 1/16 -1/4 -1/16) (-1/8 1/16 -3/16 1/16 -3/16 1/4 1/8) (1/8 1/16 -3/16 7/16 -3/16) (-1/8 1/4 1/4 1/4 1/8) (1/8 1/4 1/16 -3/16 1/4 1/16 -1/16) (-1/8 1/16 -3/16 1/4 1/4 1/16 -1/16) (-1/8 1/4 1/4 1/4 1/8) (1/8 7/16 -3/16 1/4) (1/16 -3/16 1/16 -3/16 1/16 -3/16 1/16 -3/16) (1/16 -3/16 7/16 -1/16 1/4) (1/4 1/4 1/4 1/4) (1/16 -3/16 1/16 -3/16 1/16 -3/16 1/4) (1/16 -3/16 1/2 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/2 1/4) (3/16 -1/2 -1/16 1/16 -3/16) (1/16 -3/16 1/4 1/16 -3/16 1/4) (1/16 -3/16 1/16 -3/16 1/4 1/16 -3/16) (1/4 1/2 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/2 1/4 1/4) (1/4 1/4 1/2) (1/4 1/4 1/4 1/4) (1/2 1/4 1/4) (1/4 1/2 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/2 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/2) (7/16 -3/16 1/16 -3/16 1/8) (1/8 1/16 -3/16 1/4 1/4 1/16 -1/16) (-1/8 1/4 1/16 -3/16 3/8) (1/8 1/16 -3/16 1/4 1/4 1/8) (1/8 1/2 1/4 1/8) (1/8 1/4 1/4 1/4 1/8) (3/8 1/4 1/4 1/8) (1/8 1/2 3/8) (1/16 -1/4 -1/16 1/4 1/4 1/8) (1/8 1/4 1/16 -3/16 3/8) (1/16 -1/16 1/4 1/4 1/4 1/8) (1/8 1/2 3/8) (1/8 1/4 1/4 1/4 1/16 -1/16) (-1/8 1/4 1/4 1/4 1/8) (5/16 -3/16 1/4 1/4) (1/4 1/16 -3/16 1/16 -3/16 1/4) (1/4 1/4 1/2) (7/16 -1/16 1/4 1/4) (1/4 1/4 1/4 1/4) (1/16 -3/16 1/2 1/4) (1/4 1/4 1/4 1/4) (1/4 1/2 1/4) (1/4 1/4 1/2) (1/4 1/4 1/2) (1/4 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/2 1/4) (3/16 -1/2 -1/16 1/16 -3/16) (1/16 -3/16 1/4 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/16 -7/16) (1/4 1/16 -3/16 7/16 -1/16) (-1/8 1/16 -3/16 1/4 1/4 1/16 -1/16) (-1/8 1/16 -3/16 1/4 1/4 1/8) (1/8 1/4 1/4 1/4 1/8) (3/8 1/4 1/4 1/8) (1/8 1/4 1/16 -7/16 1/16 -1/16) (-1/8 1/16 -3/16 1/4 1/4 1/16 -1/16) (-1/8 7/16 -1/4 -1/16 1/8) (1/8 1/4 1/4 1/4 1/8) (1/8 1/16 -3/16 1/4 1/16 -3/16 1/16 -1/16) (-1/8 1/4 1/4 1/16 -3/16 1/8) (1/8 1/4 1/4 1/4 1/8) (5/16 -3/16 1/4 1/16 -3/16) (1/16 -3/16 1/16 -3/16 1/16 -3/16 1/16 -3/16) (7/16 -1/16 1/4 1/4) (1/4 1/4 1/4 1/16 -3/16) (1/16 -3/16 1/16 -3/16 1/4 1/16 -3/16) (1/2 1/4 1/4) (1/4 1/4 1/4 1/4) (1/4 1/4 1/2) (1/4 1/4 1/4 1/4) (1/2 7/16)))  
    Not sure how to remove the extra parenthesis algorithmically though.
  14. Thanks
    TomTolleson reacted to Stephane Boussuge in Prélude/Studie "Lake" for Piano   
    Playing a bit, a short experiment with the new lakes function from OM.
     
    S.
     
    PreludePourPiano070923opmo.opmo
     
    Prelude 070923Rev1.mp3
  15. Thanks
    TomTolleson reacted to jesele in Prélude/Studie "Lake" for Piano   
    Here are some links on Per Nørgård.
     
    https://www.lawtonhall.com/blog/2019/9/9/per-nrgrds-infinity-series
    https://www.andersbeyer.com/publications/work-analysis/attraction-and-repulsion/
    https://www.theguardian.com/music/tomserviceblog/2012/jul/30/per-norgard-contemporary-music-guide
     
    Jesper
     
     
  16. Like
    TomTolleson got a reaction from Stephane Boussuge in Orchestral Template EastWest HW Orch and Plogue Bidule   
    That's great! Thanks, Stephane. Having reviewed other options such as MusicXML to Musescore and then Musescore to Cubase I'm finding that much of the articulations and dynamics (e.g. expressions) don't quite translate 1:1 which makes sense and makes me wonder why I was thinking that it would.

    Looking at the range of complex sound design capabilities in Albion Neo, I will likely just compose in Opusmodus and then work with the Spitfire tools hands on for the best effect.
     
    Thanks!
    THT
  17. Like
    TomTolleson reacted to opmo in Opusmodus 3.0.28724 Update   
    3.0.28724
     
    – Changes :
    Workspace directory sort by NAME. Function search shortcut changed to Cmd-D  
    – Documents:
    Documents edit.  
    Opusmodus Windows Beta release imminent.
     

  18. Like
    TomTolleson reacted to opmo in Opusmodus v.3.0 Upgrade   
    We are happy to announce Opusmodus v.3.0 is ready for download.
     
    OPUSMODUS 3.0
    Language: English (French, Italian and German - coming soon)
    © MMXXII Opusmodus™ Ltd. All rights reserved.
    Requirements: macOS 10.12 · 10.15 · 11 · 12 · 13
    Intel & Apple silicon natively supported
     
    Download:
    https://opusmodus.com/forums/downloads/
     
    Note:
    Rename your current Opusmodus folder first. Start Opusmodus app and enter the Licence Key and press 'Activate' or press  'Start Trial' if you don't have the License Key for 3.0. At the start you will be ask to install the new Opusmodus directory. Move your workspaces into the Workspace directory. Don't change any of the directory names in the Opusmodus folder. Your own functions you need to move to the ‘User Source/Extensions’ folder.  
    Best wishes,
    Janusz
  19. Like
    TomTolleson reacted to Stephane Boussuge in Zoom Into Opusmodus new serie Video online   
    Dear all,
     
    the video of the fist Zoom into OM is now online.
     
     
    In future, the Zoom into OM will be only in video format delivered every weekend.
     
    Best
     
    Stéphane
     
     
  20. Thanks
    TomTolleson reacted to Stephane Boussuge in Working with large pieces in multiple sections   
    All of us, as Opusmodus users, know the possibility to compose a piece with multiples sections and assemble later.
     
    We can use the ASSEMBLE-SEQ function in our piece for assemble some material and sections, but we also can use COMPILE-SCORE with multiple pre-defined scores assembled in one COMPILE-SCORE instruction this way:
     
    (compile-score '( score1 score2 score3 etc. ) ) This is a very convenient way for assembling multiple sections as multiple score.
    i put this instructions in a separate file named COMPILE-SCORE and all other section-score in files named S1, S2, S3.... 
    But when the piece grown, you can have many score files in you workspace navigator to evaluate before compiling the full score.
     
    In that case, i add a last file named LoadAll. opmo containing the following instruction for load and read in one time all my section's scores:
     
    (mapcar 'load '( "/Users/yourUserName/Opusmodus/Scores/S1.opmo" ;; S1 for section1, s2 for section2 and so on... "/Users/yourUserName/Opusmodus/Scores/S2.opmo" "/Users/yourUserName/Opusmodus/Scores/S3.opmo" "/Users/yourUserName/Opusmodus/Scores/S4.opmo" "/Users/yourUserName/Opusmodus/Scores/S5.opmo" "/Users/yourUserName/Opusmodus/Scores/S6.opmo" "/Users/yourUserName/Opusmodus/Scores/S7.opmo" "/Users/yourUserName/Opusmodus/Scores/S8.opmo" )) Attached to this post, 2 pictures of one of my workspace showing the organisation of the files.
     
    SB.


  21. Thanks
    TomTolleson reacted to opmo in Using list variable instead of list in Counterpoint   
    You can't do that.
    this is only use for bars - bar numbers.
    (rh  :omn '(#|1|# line1)    :channel 1    :sound 'gm    :program 0    :volume 90    :pan 64)
  22. Thanks
    TomTolleson reacted to Stephane Boussuge in best strategy for organizing large strings and functions   
    Hi Tom,
     
    you can create as many different .opmo files you want with your functions etc... and load them with the load function from your main master file.
     
    Best.
     
    Stéphane
  23. Like
  24. Thanks
    TomTolleson reacted to Stephane Boussuge in MIDI Port number/name   
    Hi,
    normally, if you name your IAC-Port-1 Bus 1, you can send midi to this port from OM using :port "Bus 1" inside  the score.
    Generally it is better to use named port because actually Bus 1 could be :port 0 but if you plug some other midi devices to your computer, this order could change, that's the reason why it is better to use named ports.
    Best !
     
    Stéphane
     
     
  25. Thanks
    TomTolleson reacted to erka in MIDI Port number/name   
    Besides the option of compile-score you can save from the midi-player
     
    Tools-> last-score->midi player (or anything to  the midi player).
    Then in the menu (left upper-corner ) of the midi player -> save as -> give the file a name and destination. Import in DAW.
     
    Regarding ((0 . "Bus 1")) :
    In the score you write :port 0 when you want to send to your IAC-driver Bus 1.
      (inst1 
       :omn omn1
       :port 0
       :channel 1
       )
    In logic etc set the track midi-input to all or BUS 1.
    Make sure that in the MIDI-settings of the DAW the IAC-driver bus is active.
     
    In the Audio-midi-setup.app menu -> window (in German Fenster) -> MIDI-studio -> IAC-drivers you  see the names of the  IAC-driver and can create new ones. 
    (midi-destinations) is listing them counting the opusmodus port starting from 0. That is why ((0 . "Bus 1"))
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy