Jump to content

Stephane Boussuge

Moderators
  • Posts

    1,070
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Stephane Boussuge got a reaction from Nikos in Fibonacci's Meditation   
    An ambient piece based on a Fibonacci series.

     
    SB.
    FibonacciMeditation.opmo
  2. Like
    Stephane Boussuge got a reaction from BrianCope in Image 1 for Piano   
    New Score for piano Solo, "Image 1".

     
    SB.
     
    Image-1_02_060116_1314 - Partition complète.pdf
  3. Like
    Stephane Boussuge got a reaction from lviklund in Image 1 for Piano   
    New Score for piano Solo, "Image 1".

     
    SB.
     
    Image-1_02_060116_1314 - Partition complète.pdf
  4. Like
    Stephane Boussuge got a reaction from opmo in Image 1 for Piano   
    New Score for piano Solo, "Image 1".

     
    SB.
     
    Image-1_02_060116_1314 - Partition complète.pdf
  5. Like
    Stephane Boussuge got a reaction from Rangarajan in Fibonacci's Meditation   
    An ambient piece based on a Fibonacci series.

     
    SB.
    FibonacciMeditation.opmo
  6. Like
    Stephane Boussuge got a reaction from opmo in Happy New Year   
    Happy new Opusmodus year to all of you !
     
    S.
  7. Like
    Stephane Boussuge got a reaction from BrianCope in Fibonacci's Meditation   
    An ambient piece based on a Fibonacci series.

     
    SB.
    FibonacciMeditation.opmo
  8. Like
    Stephane Boussuge got a reaction from erka in Fibonacci's Meditation   
    An ambient piece based on a Fibonacci series.

     
    SB.
    FibonacciMeditation.opmo
  9. Like
    Stephane Boussuge reacted to opmo in Spectral - Marangona   
  10. Like
    Stephane Boussuge reacted to opmo in replace pitch/rhy-val -> acciaccatura - in OMN   
    Other solution:
    (setf omn '(s. fs5 mf s p s. ff t f4 p fs5 s. mf t f -s)) (make-omn :length (omn :length omn) :pitch (omn :pitch omn) :velocity (omn :velocity omn) :articulation (substitute-motif '(3/32) '(acc) (omn :length omn) :otherwise '-)) => (s. fs5 acc s p s. ff acc t f4 p fs5 s. mf acc t f -s)  
  11. Like
    Stephane Boussuge reacted to opmo in how to write a "polytempo score"   
    I will see what we can do. Maybe we could add the SMPTE to the DEF-SCORE to each of the instrument instance.
    This could be part of version 2.0 as well as microtonality etc...
     
    Example of microtonal notation:
    (q c4 h d4.5 g5.3)  
    1/10 of a semitone:
    (q c4.1 mp)  
    or
    (q c4.0456)   
  12. Like
    Stephane Boussuge got a reaction from lviklund in November 13th Strings Trio   
    Hi,
     
    Here's a Strings Trio composed in memory of the victims of Paris attack.
    Attached Part-a  and part-d opmo scores for study purpose.
    S.B
     

     
     
     
    st-a.opmo
    st-d.opmo
  13. Like
    Stephane Boussuge got a reaction from opmo in November 13th Strings Trio   
    Hi,
     
    Here's a Strings Trio composed in memory of the victims of Paris attack.
    Attached Part-a  and part-d opmo scores for study purpose.
    S.B
     

     
     
     
    st-a.opmo
    st-d.opmo
  14. Like
    Stephane Boussuge reacted to opmo in Opusmodus 1.1.7708   
    NEW:
    DO-TIMELINE
     
    The function DO-TIMELINE distributes an operation over a number of bars, if x. If - the bar is unchanged.
     
  15. Like
    Stephane Boussuge got a reaction from lviklund in Etude 1 from 3 études sur un spectre de Trombone   
    Here's the first study from 3 études sur un spectre de Trombone for piano, a work using some of the new spectral function of Opusmodus.
     

     
    S.B
    Etude1.opmo
  16. Like
    Stephane Boussuge got a reaction from opmo in Etude 1 from 3 études sur un spectre de Trombone   
    Here's the first study from 3 études sur un spectre de Trombone for piano, a work using some of the new spectral function of Opusmodus.
     

     
    S.B
    Etude1.opmo
  17. Like
    Stephane Boussuge got a reaction from hujairi in scale degree conversion?   
    also you may be interested by this example:
     
    ;; An example of diatonic transposition ;; ie. using tonality degree for tonality mapping. ;; degree selection (setf degr '(1 4 2 5 1 6 4 2 5)) ;; remove 1 from each degree for use as transposition ;; inside tonality for diatonic transposition (setf trsp (mapcar (lambda(x) (- x 1)) degr)) ;;; some material (setf arps1 (gen-repeat (length degr) '((s c4 e4 g4 c5 e5 g5 c6 g5 e5 c5 g4 e4)))) ;; apply diatonic transposition (inside tonality) (setf arps.map (tonality-map '(major :root d4) (pitch-transpose trsp arps1))) SB.
     
  18. Like
    Stephane Boussuge got a reaction from lviklund in Duo pour Violon et Piano 101015   
    Hi,
     
    Here's a Duet for Violin and Piano.
    Music score and opmo. script attached to this post.
     

     
    SB.
    DuoViolonPiano101015-1.pdf
    s1.opmo
  19. Like
    Stephane Boussuge reacted to opmo in Orchestral media Music Production test   
    Par excellence!
  20. Like
    Stephane Boussuge got a reaction from opmo in Orchestral media Music Production test   
    A quick and dirty test of Opusmodus possibility and capability for Media Music Production.
    Test successful.
     
    Setup is Opmo driving EastWest Hollywood orchestra in Vienna ensemble Pro.
    Output is the direct output from Opusmodus/EastWest.
     
    Naturally this output is just a prototyping and need much more attention (it would be good someday to redo the clarinet part etc..)
    but it was just a test of a personal Orchestral setup.
     

     
    SB.
  21. Like
    Stephane Boussuge reacted to hujairi in laughing about what we lost / 우리가 잃어버린 것들에 대한 조소(嘲笑)   

     
    I just completed working on a new piece for two 25-string Kayageums (Korean zither-like instrument somewhat similar to the Japanese Koto). All the composition was done within Opusmodus but the coding is a little messy. I hope in my next project to clean up the code a little.
     
    During process of composition, I especially liked how Opusmodus can translate text material into different data. For this piece, I used two of the earliest examples of avant-garde poetry from Korea written by Yi Sang (1910 - 1937) that are included in his "Crow's Eye View" 15-poem series. I created the pitches through extrapolations from the texts and by setting the tonalities to the Nando-Kyemyonjo mode and one of the Tcherepnin Nine-Note Scale modes (both of which are in the Opusmodus modes library). The lengths of pitches and rests were partially extrapolated from the text and then developed subtly through use of the gen-length function.
     
    Aside from the tonalities, I also must admit that the ambitus features made it easy to ensure that the notes I played were within the range of the instrument I am working with, which allowed me to play with the limits of the sounds (especially the low register notes). 
     
    The sounds used in this recording is a midi realization using Madrona Lab's Kaivo plug-in running through Ableton Live 9.     
  22. Like
    Stephane Boussuge got a reaction from ajf- in Klangreihen Study   
    Very impressive and interesting score.
    I agree with Janusz about annotations 
     
    thank you for sharing this great score.
    S.
     
     
  23. Like
    Stephane Boussuge reacted to ajf- in Klangreihen Study   
    Here is my study about the klangreihen: 
     
    (defparameter tempo 60) (defparameter title "Klangreihen Study") ;;; This object takes care of setting and getting of parts (defclass study-score () ((instruments :initarg :instruments :initform 0) (duration :initarg :duration :initform 0) (parts))) ;;; When initializing, fill it with an empty model for parts (array of size N) (defmethod initialize-instance :after ((score study-score) &key) (let ((instruments (slot-value score 'instruments ))) (setf (slot-value score 'parts) (make-array instruments :initial-element '(-w)' :fill-pointer instruments)))) ;;; Getter and setter methods (defun get-part (score n) (elt (slot-value score 'parts) n )) (defun (setf part) (part score n) (let ((previous-value (elt (slot-value score 'parts) n))) (setf (elt (slot-value score 'parts) n) (concatenate 'list previous-value part)))) ;;; Instance of the object (defparameter study (make-instance 'study-score :instruments 16 :duration tempo)) ;;; Main procedure (let* ;; Main local variables ((12tone '(0 2 4 5 7 9 6 8 10 11 1 3)) (variants (list (row-variant 0 'r4 12tone) (row-variant 0 '4 12tone))) (total-parts (slot-value study 'instruments)) (bases (apply #'append (map 'list #'(lambda (v) (klangreihen 0 '(3 3 3 3) v)) variants))) (lengths (subseq (gen-divide total-parts (gen-length (distributive-cube (interference2 '(3 2 2))) 16)) 0 (length bases)))) (loop for base in bases for length in lengths do (labels ;; Local transformative functions ((amount-of (n) (/ 1 (nth n length))) (vel-scale (v) (+ 0.2 (* 0.6 v) )) (vel-format (v) (get-velocity (list v) :type :symbol)) (velocity-for (n) (vel-format (vel-scale (/ (amount-of n) 16)))) (length-for (n) (list (nth n length ))) (octave-of (n) (let ((low-bound (- 12 (* 12 (round (* (/ 1 total-parts) n 3.4) ))))) (list low-bound (+ low-bound 12)))) (pitch-for (n) (let* ((rolled (gen-surround base :size (amount-of n) :start n))) (ambitus (octave-of n) rolled)))) (loop for n from 0 to (- total-parts 1) do (destructuring-bind (&key length pitch velocity) ;; Example of handling on a case-by-case basis. No extra cases configured now. (case n (otherwise (list :length (length-for n) :velocity (velocity-for n) :pitch (pitch-for n) ))) (setf (part study n) (make-omn :length length :pitch pitch :velocity velocity :span :pitch))))))) ;;; Retrieve parts and save score (let ((partnum -1)) (def-score Study (:title title :composer "A. Jacomet" :key-signature 'atonal :time-signature '(4 4) :tempo tempo :layout (string-ensemble-layout '(vn11 vn12 vn13 vn14 vn21 vn22 vn23 vn24) '(vla1 vla2 vla3 vla4) '(vlc1 vlc2) '(ctb1 ctb2))) (vn11 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 1) (vn12 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 2) (vn13 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 3) (vn14 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 4) (vn21 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 5) (vn22 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 6) (vn23 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 7) (vn24 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 8) (vla1 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 9) (vla2 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 11) (vla3 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 12) (vla4 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 13) (vlc1 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 14) (vlc2 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 14) (ctb1 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 15) (ctb2 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 15))) (live-coding-midi (compile-score 'Study)) (display-musicxml 'Study) ;;;--------------------------------------------------------- ;;; ANNOTATION ;;;--------------------------------------------------------- #! This study is about the LISP languages and the possibilities of working with object oriented programming and loops. The first important part of this study is the 'study-score' class defined at the top of the file. (defclass study-score () ((instruments :initarg :instruments :initform 0) (duration :initarg :duration :initform 0) (parts))) On initialization, that object will create and save in one of it's properties, a model of the parts, which is an array of lists. (defmethod initialize-instance :after ((score study-score) &key) (let ((instruments (slot-value score 'instruments ))) (setf (slot-value score 'parts) (make-array instruments :initial-element '(-w)' :fill-pointer instruments)))) It is important to note that this can be extended to an N-dimensional array supporting Parts, Pitches, Velocities, Lengths, and more information. We then define trivial functions that are intended to help in adding and retrieving parts. (defun get-part (score n) (elt (slot-value score 'parts) n )) (defun (setf part) (part score n) (let ((previous-value (elt (slot-value score 'parts) n))) (setf (elt (slot-value score 'parts) n) (concatenate 'list previous-value part)))) This will eventually help keep our program free of code redundancy, and we can adapt the parts in any way we like in a global way. The rest is a simple example of utilizing a klangreihen base and looping over it. The loop starts with a LET clause that sets all the basic parameters: (let* ;; Main local variables ((12tone '(0 2 4 5 7 9 6 8 10 11 1 3)) (variants (list (row-variant 0 'r4 12tone) (row-variant 0 '4 12tone))) (total-parts (slot-value study 'instruments)) (bases (apply #'append (map 'list #'(lambda (v) (klangreihen 0 '(3 3 3 3) v)) variants))) (lengths (subseq (gen-divide total-parts (gen-length (distributive-cube (interference2 '(3 2 2))) 16)) 0 (length bases)))) ..... ) Looping over these global parameters, we start to build our theme sequentially, making all parts for each base. (loop for base in bases for length in lengths do (labels ... )) The LABELS special operator allows us to define local functions for our loop body, that will be helpful in transforming the data. Within it's function body, we have the actual loop that loops over the parts: (loop for n from 0 to (- total-parts 1) ...) The DESTRUCTURING-BIND macro allows us to keep our syntax clean and succint, because we can handle different cases using CASE, while setting Length, Velocity and Pitch, and then in a single line, retrieve those values and use them to set that particular omn in the parts array: (destructuring-bind (&key length pitch velocity) ;; Example of handling on a case-by-case basis. No extra cases configured now. (case n (otherwise (list :length (length-for n) :velocity (velocity-for n) :pitch (pitch-for n) ))) (setf (part study n) (make-omn :length length :pitch pitch :velocity velocity :span :pitch))) !#  
  24. Like
    Stephane Boussuge reacted to opmo in How to extend the system with your own functions   
    The first thing you need to do is to create a source file (.opmo or .lisp).
    Give the file a name eg. Custom functions.opmo.
    This file will now be the source file for your functions, make sure the functions are working and that there are no errors.
    Save the file into the ~/Opusmodus/Extensions folder.
     
    The next step is to document the functions that you have created.
    Go to the ~/Opusmodus/System Library folder and create a new folder for example Custom Function.

    This folder is where you will place your (TextEdit) .rtfd system library documents (the best way to create a new document is to copy the contents of one of the System Library’s documents and paste it into the newly created .rtfd file).
     
    Now replace the function name i.e. variables, values etc… with your own examples and documentation. Each function must have its own document. Place the documents into the ~/Opusmodus/System Library/Custom Function folder.
     
    The last step is to create a new file that must be named contents.opmo and place it into the same folder.
    The form of the contents.opmo file should be written as follows:
     
    ;;; Custom functions (foo1 "here you write short note about the foo1 function") (foo2 "here you write short note about the foo2 function")
    The next time you start the application you should be able to use and see your function documents in the ’System Library’ utilities panel.
  25. Like
    Stephane Boussuge got a reaction from marzullo in Le Duc   
    Opusmodus is not only a wonderful tool for composing contemporary art Music, it can be also a very good tool for composers working for Tv or other media.
     
    Attached, a score script extract of this soundtrack score for tv made with Opusmodus.
    It is the section from 1'28  to 1'43 on the Soundcloud file below. 
     

     
    LeDuc2.opmo
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy