-
Posts
1,064 -
Joined
-
Last visited
Content Type
Forums
Events
Store
Video Gallery
Everything posted by Stephane Boussuge
-
gen-brownian-motion inside lower and upper limit
Stephane Boussuge replied to born's topic in Function Examples
For me, I think that's perfect ! I know many of the OM functions but totally forgot about that one. Thank you for the trick ! Best S. -
gen-brownian-motion inside lower and upper limit
Stephane Boussuge replied to born's topic in Function Examples
For further information about the concept of tendency masking, here's 2 links to Cmask implementation. Something similar in OM would be nice. CMask Manual ABARTETZKI.USERS.AK.TU-BERLIN.DE CMask Article ABARTETZKI.USERS.AK.TU-BERLIN.DE -
You can use get-harmonic-path function. S.
-
I'm in travel actually and very busy but i wrote two short example for you to explore, not exactly what you ask for but I hope interesting to study for you and hopefully inspiring for further exploration. Happy study ;;; EXAMPLE 1 ;;; =================== (progn ; basic version (setf melo.pch (vector-to-pitch '(c4 e5) (gen-noise 64))) (setf melo.len (flatten (rnd-sample 64 '(h. h q (e e)(s s s s) -q)))) (setf melo (make-omn :pitch melo.pch :length melo.len )) (setf chords-types '((-4 -6 -9 -16)(-7 -9 -12 -15)(-2 -8 -12 -17))) (setf base-acc (gen-chord3 melo.pch chords-types :cycle nil :relative t)) (setf acc (chord-interval-replace '(1 2 3 4) '(-11 -10 -9 -8) (ambitus '(c3 g5) (length-legato (length-weight (make-omn :pitch base-acc :length melo.len )))))) (ps 'gm :vn* (list melo) :pg (list acc) :time-signature '(4 4) ) ) ;;; EXAMPLE 2 ;;; ========================= (progn ; modal version (setf melo.pch (vector-to-pitch '(c4 e5) (gen-noise 64))) (setf melo.len (flatten (rnd-sample 64 '(h. h q (e e)(s s s s) -q)))) (setf melo (make-omn :pitch melo.pch :length melo.len )) (setf chords-types '((-4 -6 -9 -16)(-7 -9 -12 -15)(-2 -8 -12 -17))) (setf base-acc (gen-chord3 melo.pch chords-types :cycle nil :relative t)) (setf acc (chord-interval-replace '(1 2 3 4) '(-11 -10 -9 -8) (ambitus '(c3 g5) (length-legato (length-weight (make-omn :pitch base-acc :length melo.len )))))) (setf path (tonality-series '(lydian) :root '(d4 bb4 fs3 c4 a3) :map '(octave))) (setf melo.map (tonality-map path (omn-to-time-signature melo '(4 4)))) (setf acc.map (tonality-map path (omn-to-time-signature acc '(4 4)))) (ps 'gm :vn* (list melo.map) :pg (list acc.map) ) ) SB. Modal-Example-For-Cliff.mp3
-
gen-chord3 is your friend
-
How to extend the system with your own functions
Stephane Boussuge replied to opmo's topic in User Extensions Source Code
Put you .lisp file in folder Opusmodus/User Source/Extensions. -
This is OM polyphonic notation. S.
-
Etude pour Orchestre du 4.5.2023
Stephane Boussuge replied to Stephane Boussuge's topic in Made In Opusmodus
Use ambitus function with the desired ambitus like: (setf chords.cls (ambitus '(bb2 eb5) (closest-path chords :start '(bb3fs4g4d5)))) S. -
merge-voices function is made for OMN expressions, not length lists. S.
-
Etude pour Orchestre du 4.5.2023
Stephane Boussuge replied to Stephane Boussuge's topic in Made In Opusmodus
This piece was totally composed with Opusmodus but the rendering of audio was made with Sibelius. S. -
Ps function is not a problem if you stay in GM but could become a bit complicated for a new comer if you want to use it with plugins, external ports etc... Basically the def-score is indeed the most "normal" and powerful way for OM to manage final score. PS is for drafting/sketching or teaching. But with def-score you can assemble them into complex pieces etc... I can't give a full course here, the subject is too big... For instrumentation, orchestration I may use several strategies but some of my favorites are to use do-timeline or do-timeline2 functions or a different approach like counterpoint function as you made in your exercise file who is working well now with the small possible corrections I've showed to you. S.
-
Etude pour Orchestre du 4.5.2023
Stephane Boussuge replied to Stephane Boussuge's topic in Made In Opusmodus
The sound is the New Noteperformer4 with Sibelius and BBCSO Orchestra. S. -
Because (list my-sequence my-chord-sequence) is a list of lists. When you call for example 1 in you dictum, you don't call the first patterns but the full first list of patterns. Your code could work normally is you replace this list of list expression by: (flatten-sublist (list my-sequence my-chord-sequence)) S.
-
In that case, you can use substitute-map. Here's a short example for woodwind trio: ;;;--------------------------------------------------------- ;;; Parameters (setf material '(#|1|# (q. f4 f e fs4 q d4 s c4 f4 a4 fs4) #|2|# (e d4 f c4 f4 a4 fs4 b4 eb4 f4) #|3|# (h f4 a4) #|4|# (h fs4 f b4) #|5|# (h eb4 f4) #|6|# (q. gs4 mp e c4 q f4 s a4 a4 gs4 b4) #|7|# (h f4 mp a4) #|8|# (q. a4 mp e gs4 q b4 s gs4 c4 b4 fs4) )) (setf fl.index '(1 2 1 3 1 4 5 6 7 8)) (setf ob.index '(3 2 4 3 5 4 6 5 7 6)) (setf bn.index '(1 2 2 1 1 3 3 1 1 4)) (setf ref-list (gen-integer 1 (length material))) (setf flute (substitute-map material ref-list fl.index)) (setf oboe (substitute-map material ref-list ob.index)) (setf bassoon (pitch-transpose -24 (substitute-map material ref-list bn.index))) ;;;--------------------------------------------------------- ;;; Score and Layout (def-score woodwind-trio (:title "Title" :composer "Composer" :copyright "Copyright © " :key-signature 'chromatic :time-signature '((1 1 1 1) 4) :tempo 100 :layout (wind-trio-layout 'flute 'oboe 'bassoon)) (flute :omn flute :channel 1 :sound 'gm :program 'flute :volume 95 :pan 70 :controllers (91 '(52)) ) (oboe :omn oboe :channel 2 :sound 'gm :program 'oboe :volume 95 :pan 54 :controllers (91 '(55)) ) (bassoon :omn bassoon :channel 3 :sound 'gm :program 'bassoon :volume 95 :pan 70 :controllers (91 '(57)) ) ) SB.
-
Hi, here's your code slightly modified to give you and example of the usage of counterpoint function with multiple lists. As you can see, the :sequence keyword in dictum allow you to choose for each instrument in which list you pick the patterns. I've added 2 more lines to your dictum to show how to use :span to constrain the time signature on some bars. The :extend keyword allow you to add rest at the end (default) or at the start (:extend '(s))) of the bar when a bar is extended by :span keyword. Hope this example will help. Best regards. Stéphane Boussuge (progn (setf my-dictum '(((- 1 2 -) :sequence '(1 1 2 1)) ((1 - - 2) :sequence '(1 1 2 1)) ((2 - - 2) :sequence '(1 1 2 1)) ((1 2 2 1) :sequence '(1 1 2 1)) ((3 1 3 2) :span 4/4 :sequence '(1 1 2 1) :extend '(- s s -)) ((4 1 4 1) :span 2/4 :sequence '(1 1 2 1)) )) (setf times (* 1 (length my-dictum))) (setf my-root -0) (setf my-intervals '(0 1 4 7)) (setf my-pitches (pitch-transpose my-root (integer-to-pitch my-intervals))) (setf my-lengths (rnd-sample times '((q e) (q q)) :seed 356)) (setf my-articulations (span my-lengths '(-))) (setf my-velocities '(pp p mp mf f ff)) (setf my-sequence (make-omn :length my-lengths :pitch my-pitches :velocity my-velocities)) (setf my-chord-sequence (make-omn :length my-lengths :pitch (gen-chord2 '(2 4) '(2 2 3 4) '((c4 cs4 e4 g4) (c4 cs4 e4 g4))) :velocity my-velocities :articulation my-articulations)) (setf my-time-signature (get-time-signature my-sequence)) (counterpoint (list my-sequence my-chord-sequence) my-dictum :global-methods '((fl) (cl) (hn) (vc)) :index 'voice1-) (ps 'gm :fl (list voice1-1) :cl (list voice1-2) :hn (list voice1-3) :vc (list voice1-4) :tempo 161 ) )
-
I’m always amazed by the incredible power of Opusmodus and the inspiration it give to me to compose and explore new possibilities . Actually, I'm playing and experimenting a bit with OM and orchestra, preparing my next package of video lessons for ComposerWorkshop.com. Today, I've made this output from my experiences, nothing extraordinary but I wanted to share it as an example of what we can make with Opusmodus in about 1h. It's basically only Slonimsky patterns distributed to the orchestra on an heterophonic way with transpositions from Opusmodus bind-to-interval function (set to "0") Stéphane Etude pour Orchestre 040523.wav
-
score Fibonacci's Meditation
Stephane Boussuge replied to Stephane Boussuge's topic in Made In Opusmodus
Also I can see you try to open the file in the assistant. You have to create a new workspace for your studies and work inside this workspace, not in assistant. For a good understanding of this, I recommend my "Introduction to Opusmodus" on ComposerWorkshop.com Best ! S. -
score Fibonacci's Meditation
Stephane Boussuge replied to Stephane Boussuge's topic in Made In Opusmodus
You wrote some wrong things inside your def-score, compare the def-score of my corrected file to the old one and you will see your errors. Happy study. SB.