-
Posts
1,054 -
Joined
-
Last visited
Reputation Activity
-
-
Stephane Boussuge got a reaction from TomTolleson in Prelude pour Piano 160923
New short piece for piano.
stephaneboussuge · Prelude pour Piano 160923
-
-
-
-
Stephane Boussuge got a reaction from TomTolleson 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
-
Stephane Boussuge got a reaction from Veit in Movement between changing borders
Hi;
here's a possible solution:
(progn (setf noise (gen-noise 50 :seed 425)) (setf env1 '(50 51 52 53 54)) (setf env2 '(60 59 58 57 56)) (list-plot (vector-to-envelope2 env1 env2 noise)) ) S.
-
Stephane Boussuge got a reaction from AM in Movement between changing borders
Hi;
here's a possible solution:
(progn (setf noise (gen-noise 50 :seed 425)) (setf env1 '(50 51 52 53 54)) (setf env2 '(60 59 58 57 56)) (list-plot (vector-to-envelope2 env1 env2 noise)) ) S.
-
Stephane Boussuge 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
-
Stephane Boussuge got a reaction from jesele 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
-
Stephane Boussuge reacted to opmo in Prélude/Studie "Lake" for Piano
Thank you Stephane, always pleasure to listen to your work.
The new tone-lakes function is very inspiring indeed.
-
Stephane Boussuge got a reaction from opmo 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
-
Stephane Boussuge reacted to opmo in Opusmodus 3.0.29086 Update
Thanks to composer Jesper Elén's excellent contributions, Opusmodus is now incorporating a suite of functions focused on the compositional techniques developed by Per Nørgård.
New functions:
INFINIT-SERIES (extended)
TONE-LAKES
LAKE-START-POSITION
LAKE-EVERYOTHER
GEN-LAKE-SIZE
CHECK-TONE-LAKES-SYMMETRY
Happy coding, Janusz -
Stephane Boussuge reacted to opmo in double stop notation with 2 voices
I will ask James if he can help.
-
Stephane Boussuge reacted to david in Function to change an event in an omn sequence into a rest
thank you Stéphane, it sounds good!
-
Stephane Boussuge got a reaction from opmo in Function to change an event in an omn sequence into a rest
I've made a little string trio score to test this fun new function.
Here it is attached to this post.
Enjoy !
S.
Mouvement de Trio pour cordes (etude fn rnd-rest).mp3 String Trio.opmo
-
Stephane Boussuge got a reaction from AM in Function to change an event in an omn sequence into a rest
I've made a little string trio score to test this fun new function.
Here it is attached to this post.
Enjoy !
S.
Mouvement de Trio pour cordes (etude fn rnd-rest).mp3 String Trio.opmo
-
Stephane Boussuge reacted to AM in prob-mutation
(defun prob-mutation (alist blist &key (factor 1) (prob-list nil)) (loop for a in alist for b in blist for x in (if (null prob-list) (cumulative-sums (gen-repeat (length alist) (float (/ factor (length alist))))) prob-list) when (probp x) collect b else collect a)) ;;; with linear prob-incf (prob-mutation (gen-repeat 100 1) (gen-repeat 100 2)) => (1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 2 2 1 1 1 1 2 2 1 2 2 2 1 1 1 1 1 2 1 1 1 1 1 2 2 1 1 2 2 1 1 2 2 2 2 1 1 2 2 2 1 1 2 1 1 1 1 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2) ;;; with an external prob-list 0 to 1.0 to 0 (setf half-sine (filter-first 100 (gen-sine 200 1 1.0))) (prob-mutation (gen-repeat 100 1) (gen-repeat 100 2) :prob-list half-sine) => (1 1 1 1 1 1 1 1 1 2 2 1 1 2 2 1 2 1 2 1 1 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 1 1 2 2 2 2 2 2 2 1 1 2 1 2 1 2 1 1 2 1 1 2 1 1 1 2 1 1) ;;; with an external prob-list 0 to 0.3 to 0 (setf half-sine (filter-first 100 (gen-sine 200 1 0.3))) (prob-mutation (gen-repeat 100 1) (gen-repeat 100 2) :prob-list half-sine) => (1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 2 1 1 1 1 1 2 1 2 1 1 2 1 2 1 2 1 1 1 2 1 1 1 2 1 1 2 1 1 2 1 1 1 2 1 1 1 1 2 1 2 1 2 1 1 1 1 1 2 1 1 2 2 1 2 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1)
-
Stephane Boussuge got a reaction from opmo in Function to change an event in an omn sequence into a rest
Wonderful function, I love it !
-
Stephane Boussuge reacted to opmo in Function to change an event in an omn sequence into a rest
Revised rnd-rest in version 3.0.29080
The function RND-REST convert a subset of the length notes in the list to length rests, such that the sum of all length rests (including any existing ones) becomes equal to the given percentage of the sum (span) of the absolute values of all lengths in the list.
(setf lengths (gen-repeat 8 1/16)) => (1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16) (rnd-rest 0.3 lengths) => (1/16 1/16 1/16 1/16 1/16 -1/16 1/16 -1/16) (rnd-rest 0.5 lengths) => (1/16 1/16 -1/16 1/16 -1/16 -1/16 1/16 -1/16)
(rnd-rest '(0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9) (gen-repeat 9 (list lengths)) :seed 76)
(setf percent (vector-round 0.2 0.8 (gen-sine 16 1 0.8))) => (0.5 0.61480505 0.71213204 0.77716387 0.8 0.77716387 0.71213204 0.614805 0.5 0.38519496 0.28786793 0.2228361 0.2 0.22283617 0.28786805 0.38519496) (setf seq '((1/10 1/10 1/10 1/10 1/10) (1/6 1/6 1/6) (1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16) (1/16 1/16 1/16 1/16) (1/20 1/20 1/20 1/20 1/20) (1/6 1/6 1/6) (1/10 1/10 1/10 1/10 1/10) (1/10 1/10 1/10 1/10 1/10) (1/6 1/6 1/6) (1/6 1/6 1/6) (1/10 1/10 1/10 1/10 1/10) (1/16 1/16 1/16 1/16) (1/16 1/16 1/16 1/16) (1/6 1/6 1/6) (1/6 1/6 1/6) (1/10 1/10 1/10 1/10 1/10) (1/10 1/10 1/10 1/10 1/10))) (rnd-rest percent seq :omn t :seed 32) => ((5h - = = -) (3h - =) (s - - - = - = -) (-s - = -) (-5q - - - =) (-3h = -) (-5h = - - =) (-5h = = - -) (3h - =) (-3h = =) (-5h = = = =) (s = = =) (s = = =) (3h = =) (3h = =) (5h = = = -) (5h = = - -))
(setf omn1 '((q c5gs4f4 e f5c5gs4 e gs5f5c5 s c6gs5f5) (e c6eb5 c5eb4 e eb4c4 eb5c5) (q b4g4d4 e g4d4b3 s d4b3g3 b3g3d3 q g3d3b2)))
(rnd-rest 0.5 omn1 :seed 11)
(setf omn2 '((e cs4 mf cs4 cs4 d4) (s d4 mf cs4 ds4 d4 d4 e4 d4 d4) (e f4 mf ds4 d4 fs4) (e ds4 mf d4 fs4 ds4) (e d4 mf s g4 e ds4 s d4 e g4) (s ds4 mf d4 g4 ds4 d4 g4 ds4 d4) (e g4 mf s ds4 d4 e g4 s ds4 d4) (q g4 mf ds4)))
(rnd-rest '(0.0 0.2 0.3 0.4 0.5 0.7 0.9 1.0) omn2 :seed 34)
Happy coding.
-
Stephane Boussuge reacted to AM in Function to change an event in an omn sequence into a rest
very nice, like a SIEVE!!
if it would be like:
(rnd-rest '(8 7 6 5 4 3 2 1) omn-seq) you could manage the event-density in time...
or...
(rnd-rest '(0.1 0.2 0.23 0.4 0.7 0.6 0.3 0.43 0.91) omn-seq)
...perhaps also with (gen-envelope-tendency) (or something like that
just a spontanious idea 🙂
-
Stephane Boussuge reacted to opmo in Function to change an event in an omn sequence into a rest
New function rnd-rest in version 3.0.29077
(setf lengths (gen-repeat 8 1/16)) => (1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16) (rnd-rest 2 lengths) => (1/16 1/16 1/16 -1/16 1/16 -1/16 1/16 1/16) (rnd-rest 5 lengths) => (-1/16 -1/16 1/16 -1/16 -1/16 -1/16 1/16 1/16) (rnd-rest '(2 3 1 2 1 3 2 1) '((1/10 1/10 1/10 1/10 1/10) (1/6 1/6 1/6) (1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16) (1/16 1/16 1/16 1/16) (1/20 1/20 1/20 1/20 1/20) (1/6 1/6 1/6) (1/10 1/10 1/10 1/10 1/10) (1/10 1/10 1/10 1/10 1/10) (1/6 1/6 1/6) (1/6 1/6 1/6) (1/10 1/10 1/10 1/10 1/10) (1/16 1/16 1/16 1/16) (1/16 1/16 1/16 1/16) (1/6 1/6 1/6) (1/6 1/6 1/6) (1/10 1/10 1/10 1/10 1/10) (1/10 1/10 1/10 1/10 1/10)) :omn t) => ((-5h - = = =) (-3h - -) (s - = = = = = =) (-s = - =) (5q - = = =) (-3h - -) (-5h = = = -) (5h - = = =) (-3h = -) (-3h - -) (5h - = = =) (s - = -) (s = - =) (-3h - -) (-3h = -) (-5h = = = =) (5h - = - =)) (setf omn '((q c5gs4f4 e f5c5gs4 e gs5f5c5 s c6gs5f5) (e c6eb5 c5eb4 e eb4c4 eb5c5) (q b4g4d4 e g4d4b3 s d4b3g3 b3g3d3 q g3d3b2))) (rnd-rest 2 omn :seed 11) => ((-q -e gs5f5c5 mf s c6gs5f5) (-e - eb4c4 mf eb5c5) (q b4g4d4 mf e g4d4b3 s d4b3g3 - -q))
-
Stephane Boussuge reacted to AM in OSC to PolytempoNetwork
just a snippet... how i/you can use OPMO for some other things (TIME LAPS test mode, just to see if my code is working correctly).
i like the openness of the system.
Bildschirmaufnahme 2023-08-30 um 23.09.15.mov
-
Stephane Boussuge got a reaction from Veit in Map pitch lists to vector
May be:
(setf transp (gen-transition 0 7 7 1 :rounded t)) (setf set '(g4a4)) (setf out (pitch-transpose-n transp (gen-trim (length transp) set))) SB.
-
Stephane Boussuge reacted to AM in How do I reference multiple variables?
Practical Common Lisp
GIGAMONKEYS.COM