Jump to content

BrianCope

Members
  • Posts

    28
  • Joined

  • Last visited

Reputation Activity

  1. Like
    BrianCope reacted to opmo in Happy New Year 2024   
    Best wishes to you all, happy coding and Happy New year.
     
    Janusz
     
    P.S. Opusmodus AI expert 🙂



  2. Thanks
    BrianCope reacted to AM in Infinity-series applied to scales/modes   
    hi brian,
     
    i modified shortly the code, now you could do what you want...
    "step-to-pitch" will test now what the tonality-input is ... if tonality = pitches -> then use this scale, othwerwise -> "expand the scale"
     
    (defun map-infinity-series (&key seq start tonality) (step-to-pitch :steps (integer-to-interval (reset-seq seq)) :pitches (if (pitchp (car tonality)) tonality (multiple-expand-tonality :startpitch 'c0 :octaves 7 :tonality tonality)) :start start)) (map-infinity-series :seq '(0 -1 3 2 1 2 -1) :start 'fs4 :tonality (make-scale 'c2 49 :alt '(1 2 1 1))) (map-infinity-series :seq '(0 -1 3 2 1 2 -1 2 2 3 3 1 -1 1 -1 2 2) :start 'g4 :tonality '(major)) (map-infinity-series :seq '(0 -1 3 2 1 2 -1 2 2 3 3 1 -1 1 -1 2 2) :start 'fs4 :tonality '(messiaen-mode1 messiaen-mode2 messiaen-mode3)) 1) do it with library... like '(major) or (messiaen-mode1) or what else
    2) do ith with a pitch-sequence like your '(make-scale 'c2 49  :alt '(1 2 1 1))
     
    -> just REPLACE map-infinity-series by the new function-version
    -> ...the only thing you have to look at it: your start-pitch has to be part of your scale!
  3. Like
    BrianCope reacted to AM in Infinity-series applied to scales/modes   
    violà... bit more organized...
     
    a) now you could copy the SUBFUNCTIONS+MAINFUNCTION into:  extensions -> user library. in that way all the functions will be loaded automatically, and it is not necessary to EVALUATE them before using... but it's useful to document it... 
     
    b) otherwise... all this functions in your workspace/opmo-file... (like you are donig it wright now)
     
    ;;; SUBFUNCTIONS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun step-to-pitch (&key steps pitches start) (let ((pos (car (position-item start pitches)))) (append (list (nth pos pitches)) (loop for i in steps ;; setting pos by add the step to pos do (setf pos (+ pos i)) ;; when pitch-range to small then reset to lowest pitch+step ;; could be a more intelligent solution when (or (>= pos (length pitches)) (< pos 0)) do (setf pos 0);(+ 0 i)) collect (nth pos pitches))))) (defun multiple-expand-tonality (&key startpitch octaves tonality) (remove-duplicates ;remove is for "cutting" if there are too much pitches (OMN loops last octave!) (loop repeat octaves with pitch = startpitch with cnt = 0 when (= cnt (length tonality)) do (setq cnt 0) append (expand-tonality (list pitch (nth cnt tonality))) do (incf cnt) do (setq pitch (car (pitch-transpose 12 (list pitch))))))) (defun reset-seq (seq) (let ((n (abs (find-min seq)))) (loop for i in seq collect (+ n i)))) ;;; MAINFUNCTION (defun map-infinity-series (&key seq start tonality) (step-to-pitch :steps (integer-to-interval (reset-seq seq)) :pitches (multiple-expand-tonality :startpitch 'c0 :octaves 7 :tonality tonality) :start start)) ;;; EXAMPLES OF USE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setf inf-list (infinity-series 128 '(1 0))) (map-infinity-series :seq inf-list :start 'g4 :tonality '(major)) (map-infinity-series :seq inf-list :start 'gs3 :tonality '(messiaen-mode6))  
  4. Thanks
    BrianCope reacted to AM in Infinity-series applied to scales/modes   
    i will write you a "merged"-function, takes not a lot of time, then it looks smarter :-)
    do you know how to use USER LIBRARY? very usefull - take a look... then you could import and use it like an ordinary OPMO-function
  5. Thanks
    BrianCope reacted to AM in Infinity-series applied to scales/modes   
    is this correct? i think it is - not smart-coded but it works - you could merge the functions into ONE (sorry for my english). perhaps there is an OPMO-library-solution, but i don't know it...
     
    greetings
     
    (defun step-to-pitch (&key steps pitches start) (let ((pos (car (position-item start pitches)))) (append (list (nth pos pitches)) (loop for i in steps ;; setting pos by add the step to pos do (setf pos (+ pos i)) ;; when pitch-range to small then reset to lowest pitch+step ;; could be a more intelligent solution when (or (>= pos (length pitches)) (< pos 0)) do (setf pos 0);(+ 0 i)) collect (nth pos pitches))))) (defun multiple-expand-tonality (&key startpitch octaves tonality) (remove-duplicates ;remove is for "cutting" if there are too much pitches (OMN loops last octave!) (loop repeat octaves with pitch = startpitch with cnt = 0 when (= cnt (length tonality)) do (setq cnt 0) append (expand-tonality (list pitch (nth cnt tonality))) do (incf cnt) do (setq pitch (car (pitch-transpose 12 (list pitch))))))) (defun reset-seq (seq) (let ((n (abs (find-min seq)))) (loop for i in seq collect (+ n i)))) (step-to-pitch :steps (integer-to-interval (reset-seq '(0 1 -1 2 1 0 -2 3 -1 2 0 1 2 -1 -3 4 1 0 -2 3 0 1 -1 2 -2 3 1 0 3 -2 -4 5 -1 2 0 1 2 -1 -3 4 0 1 -1 2 1 0 -2 3 2 -1 -3 4 -1 2 0 1 -3 4 2 -1 4 -3 -5 6))) :pitches (multiple-expand-tonality :startpitch 'c0 :octaves 7 :tonality '(major)) :start 'g4)  
  6. Like
    BrianCope reacted to opmo in Opusmodus 1.2.22714   
    Fix to DO-TIMELINE and DO-TIMELINE2 functions when with T or NIL plus minor bug fixes.
  7. Thanks
    BrianCope reacted to opmo in Opusmodus 1.2.22703   
    New function: TIME-SWALLOW and minor bug fixes.
     
    The function TIME-SWALLOW 'swallows' sequence of pitches derived from the divide of every length value of a sequence by a given time value: (/ 1/2 1/16) = 8. The rest-lengths are omitted.
    (setf length '(1/2 1/16 7/16 1/8 3/8 3/16 5/16 1/4 1/4 5/16 3/16 3/8)) (setf infinity (infinity-series 100 '(g4 gs4))) => (g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 gs4 g4     f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 fs4 a4 g4     gs4 a4 fs4 e4 b4 g4 gs4 fs4 a4 gs4 g4 f4 bb4 a4 fs4 e4 b4     fs4 a4 g4 gs4 e4 b4 a4 fs4 b4 e4 d4 cs5 gs4 g4 f4 bb4 g4     gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 g4 gs4 fs4 a4 gs4     g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 f4 bb4 gs4 g4) (time-swallow 1/16 1 length pitch) => (g4 fs4 a4 gs4 f4 f4 g4 fs4 a4 g4 g4 a4) Time 1/16 in each length: 8 1 7 2 6 3 5 4 4 5 3 6 8                           1   7                      2 g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 gs4 g4 6                    3          5                4 f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 fs4 a4 g4 gs4 4            5                 3         6 a4 fs4 e4 b4 g4 gs4 fs4 a4 gs4 g4 f4 bb4 a4 fs4 e4 b4 fs4 a4  
    Example with swallow :type 1 (default) and with chord-size (3 3 2 1):
    (make-omn  :length length  :pitch (time-swallow 1/16 '(3 3 2 1) length pitch)) => (h g4gs4fs4 s fs4a4g4 q.. a4g4 e gs4 q. f4bb4g4 e. f4bb4gs4       qs g4bb4 q fs4 a4fs4e4 qs g4gs4fs4 e. g4f4 q. a4) 8-3                         1-3 7-2                    2-1 g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 gs4 g4 6-3                  3-3        5-2              4-1 f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 fs4 a4 g4 gs4 4-3          5-3               3-2       6-1 a4 fs4 e4 b4 g4 gs4 fs4 a4 gs4 g4 f4 bb4 a4 fs4 e4 b4 fs4 a4  
    Same as above but with swallow :type 2:
    (make-omn  :length length  :pitch (time-swallow 1/16 '(3 3 2 1) length pitch :type 2)) => (h g4gs4fs4 s g4gs4a4 q.. fs4e4 e gs4 q. a4f4bb4       e. c5fs4a4 qs a4fs4 q fs4 f4bb4a4 qs fs4a4g4 e. fs4b4 q. cs5) 8-3                                1-3       7-2 g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 gs4 g4 f4 bb4 g4 2-1     6-3                         3-3 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 fs4 a4 g4 gs4 5-2                 4-1           4-3 a4 fs4 e4 b4 g4 gs4 fs4 a4 gs4 g4 f4 bb4 a4 fs4 e4 b4 5-3                    3-2          6-1 fs4 a4 g4 gs4 e4 b4 a4 fs4 b4 e4 d4 cs5 gs4 g4 f4 bb4 g4  
    More examples:
    (make-omn  :length length  :pitch (time-swallow 'e '(3 3 2 1) length pitch)) => (h g4gs4fs4 s gs4g4f4 q.. gs4g4 e fs4 q. a4g4gs4 e. a4fs4e4       qs e4b4 q gs4 f4bb4g4 qs g4gs4fs4 e. fs4a4 q. f4) (make-omn  :length length  :pitch (time-swallow 'e '(3 3 2 1) length pitch :type 2)) => (h g4gs4fs4 s f4bb4fs4 q.. fs4a4 e fs4 q. e4b4gs4       e. bb4g4gs4 qs a4f4 q gs4 bb4f4eb4 qs fs4a4g4 e. a4fs4 q. b4) (setf length2 (gen-length                (distributive-cube                 (interference2 '(3 2))) '(1/16))) => ((1/2 1/4 1/4 1/2 1/4 1/8 1/8 1/4 1/4 1/8 1/8 1/4 1/2 1/4 1/4 1/2)     (1/4 1/8 1/8 1/4 1/8 1/16 1/16 1/8 1/8 1/16 1/16 1/8 1/4 1/8 1/8 1/4)     (1/4 1/8 1/8 1/4 1/8 1/16 1/16 1/8 1/8 1/16 1/16 1/8 1/4 1/8 1/8 1/4)     (1/2 1/4 1/4 1/2 1/4 1/8 1/8 1/4 1/4 1/8 1/8 1/4 1/2 1/4 1/4 1/2)) (make-omn  :length length2  :pitch (time-swallow '(3e e s)                       '((3 3 2 1) (2 3)) length2 pitch)) => ((h g4gs4fs4 q a4fs4e4 f4bb4 h f4 q a4fs4e4 e fs4a4gs4 g4f4        q a4 g4gs4e4 e b4e4d4 cs5gs4 q f4 h f4bb4gs4        q gs4g4f4 g4gs4 h f4)     (q g4gs4 e fs4a4gs4 a4gs4 q gs4g4f4 e f4bb4 s bb4fs4a4 bb4fs4        e bb4fs4a4 fs4a4 s a4g4gs4 a4g4 e a4g4gs4 q g4gs4        e a4fs4e4 fs4e4 q e4b4gs4)     (q g4gs4fs4 e gs4g4f4 f4bb4 q fs4 e a4fs4e4 s e4b4gs4 b4gs4        e gs4 f4bb4g4 s g4gs4fs4 gs4fs4 e fs4 q f4bb4gs4        e bb4f4eb4 eb4c5 q fs4)     (h g4gs4 q a4fs4e4 f4bb4 h f4bb4gs4 q a4fs4 e fs4a4gs4 g4f4        q a4fs4e4 g4gs4 e b4e4d4 cs5gs4 q f4bb4g4        h f4bb4 q gs4g4f4 g4gs4 h f4bb4gs4)) (make-omn  :length length2  :pitch (time-swallow '(3e e s)                       '((3 3 2 1) (2 3)) length2 pitch :type 2)) => ((h g4gs4fs4 q e4b4gs4 fs4a4 h f4 q gs4fs4a4 e fs4e4b4 g4gs4        q a4 gs4g4f4 e f4bb4gs4 f4eb4 q gs4 h bb4fs4a4        q gs4fs4a4 a4g4 h gs4)     (q g4gs4 e a4gs4g4 f4bb4 q fs4a4g4 e a4fs4 s e4b4gs4 gs4g4        e g4f4bb4 g4gs4 s fs4a4f4 f4bb4 e bb4gs4g4 q bb4f4        e c5fs4a4 g4gs4 q a4fs4e4)     (q g4gs4fs4 e f4bb4fs4 g4gs4 q fs4 e g4f4bb4 s gs4fs4a4 f4bb4        e gs4 bb4f4eb4 s fs4a4g4 gs4a4 e fs4 q b4g4gs4        e g4f4bb4 fs4e4 q fs4)     (h g4gs4 q fs4e4b4 gs4fs4 h bb4f4eb4 q fs4a4 e fs4e4b4 g4gs4        q a4fs4b4 f4bb4 e bb4gs4g4 eb4c5 q fs4a4gs4        h g4gs4 q a4gs4g4 gs4a4 h f4bb4g4)) JP
  8. Thanks
    BrianCope reacted to opmo in Help with combining lists   
    The update will be released tomorrow. The final function name might be different.
  9. Like
    BrianCope got a reaction from JulioHerrlein in Help with combining lists   
    Thank you so much Janusz!! I love the way you creative lisp-coders can hear an idea and immediately create a lisp-realisation (with extensions)!!!
     
    What am amazing community. I'll look forward to the update.
     
    All the best
     
    Brian
  10. Like
    BrianCope got a reaction from opmo in Help with combining lists   
    Hello All
     
    Can anyone help me develop a function which superimposes a rhythm onto a constant list of pitches?
     
    For example, how would I go about superimposing a rhythm like (1/2 1/16 7/16 1/8 3/8 3/16 5/16 1/4 1/4 5/16 3/16 3/8)
     
    on to list of pitches like (infinity-series 100 '(g4 gs4))
    => (g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 gs4 g4 f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 fs4 a4 g4 gs4 a4 fs4 e4 b4 g4 gs4 fs4 a4 gs4 g4 f4 bb4 a4 fs4 e4 b4 fs4 a4 g4 gs4 e4 b4 a4 fs4 b4 e4 d4 cs5 gs4 g4 f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 f4 bb4 gs4 g4)
     
    So that the melody would be:
    => (g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 gs4 g4 f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 fs4 a4 g4 gs4 a4 fs4 e4 b4 g4 gs4 fs4 a4 gs4 g4 f4 bb4
          1/2                                        1/16 7/16                              1/8       3/8                             3/16          5/16                      1/4                  1/4                5/16                      3/16           
    => (1/2 g4 1/16 fs4 7/16 a4 1/8 gs4 3/8 f4 3/16 f4 5/16 g4 1/4 fs4 1/4 a4 5/16 g4 3/16 g4)                 
     
    I want to set each pitch to a constant value, for e.g 1/16 then superimpose the rhythm so that rather than span the rhythm to the pitches, the rhythm swallows the pitches leaving a resultant melody. I hope this makes sense.
     
    Any help gratefully received.
     
    Best wishes
     
    Brian
     
     
  11. Like
    BrianCope reacted to Wim Dijkgraaf in Out-of-the-box algorithms   
    I'm interested in having a complete list of the more high-level algorithms that Opusmodus supports out-of-the-box. This is what I found going through the integrated help documentation:
    Lindmayer systems Cellular automata Working with pitch class sets Euclidean Algorithm Tonality mapping Mandelbrot sets Rubin (Rubin functions) Twelve-tone row (including All-interval twelve-tone row and Twelve Tone Forms) Klangreihen technique
    Trobes (composer Joseph Hauer )
    The Time Point System (Babbit)
    Infinity Series (Nørgård)
    Messiaen Permutation
    Stravinsky Rotation
    Brownian motion
    Noise generation
    Gaussian noise
    Pink noise
    White noise
    Markov chain
    Random generators (including random walk)
    Schillinger Interference (Schillinger System of Music Composition)
    Spectral Data
    Wave forms (sine, sawtooth, square, triangle)
     
    Any help to get this list complete is very much appreciated :-)
     
    Big hug,
     
    Wim Dijkgraaf
  12. Like
    BrianCope reacted to Wim Dijkgraaf in Out-of-the-box algorithms   
    Hi AM,
     
    A couple of months ago I followed some online courses on http://www.kadenze.com . Especially the generative art courses as well as The Nature Of Code course. So I started wondering which of the techniques form those courses are supported by standard Opusmodus functions. 
     
    That brought me to the idea to make a list of those topics and eventually also have a couple of links to online and free material with inspiring explanations and background info.
     
    Kind regards,
     
    Wim
  13. Like
    BrianCope reacted to Stephane Boussuge in Using passing-intervals function   
    Hi,
     
    bellow you will find attached score with the first section of a string quartet (work in progress) as an example of the use of the PASSING-INTERVALS function.
     

     
    SB.
     
    SQS1-ForumGM.opmo
  14. Like
    BrianCope reacted to opmo in Opusmodus 1.1.18209   
    New functions:
     
    binary-rhythm level decimal-number ratio &key type rotate variant seed omn
    euclidean-rhythm level low high ratio &key type rotate variant seed omn
    gen-pink-noise n &key octave seed
    pink-noise-sample n sequence &key octave seed
    gen-brownian-motion n &key amp prob output seed
    brownian-motion-sample n sequence &key prob seed
    expand-tonality tonality-form &key type chord
     
    Plus minor bug fixes.
     
     
     
  15. Like
    BrianCope reacted to opmo in Opusmodus 1.1.17942   
    Out Now:
     
    harmonic-progression degree scale &key (size 3) (step 2)
                                root row variant relative
                                (chord t) (flatten t) seed
     
    rnd-sample-seq n sequence &key section seed
     
    and documentation fixes.
  16. Like
    BrianCope reacted to opmo in Opusmodus 1.1.17866   
    We are proud to announce 7 new functions and great additions to tonality tools.
     
    New:
     
    GET-HARMONIC-PATH (sequence &key resolution loop unique sort remove row chord seed)
    Returns a pitch sequence (tonality, scale) made up of an omn sequence or any number of voices (instruments).
     
    DO-SECTION (section function sequence)
    Distributes an operation over a range of lists. Binary list section returns a processed list if 1. If 0 the list is unchanged. A list section with symbols '- and 'x returns a processed list if 'x. If '- the list is unchanged.
     
    DO-TIMELINE (list function &key (resolution :time-signature) loop)
    (Please examine the function if have used before - changes and additions).
    Distributes an operation over a number of bars, if 'x. If '- the bar is unchanged. Optionally you can use binary numbers: 1 equal x and 0 equal -.
     
    GET-TUNING (frequency)
    Returns the difference of a frequency value to the closest tempered pitch.
     
    POSITION-TO-BINARY (numbers)
    Returns a binary list where each of the position numbers is 1.   
     
    BINARY-TO-DECIMAL (binary-list)
    Converts a binary list to a decimal number.
     
    DECIMAL-TO-BINARY (number)
    Converts a decimal number to a binary list.
     
     
    Revisions:
     
    TONALITY-MAP (scale sequence &key resolution loop section)
    HARMONIC-PATH (path sequence &key type resolution loop octave section seed)
     
     
    Functions removed from the system:
     
    BINARY-DO-SECTION
    BINARY-TIMELINE
     
    Both functions can be easily replaced with DO-TIMELINE or DO-SECTION (both work with binary list input).
    The DO-SECTION is made for user’s own defined functions where section option is not applied.
     
    Best wishes,
    JP
  17. Like
    BrianCope reacted to Stephane Boussuge in Fibonacci's Meditation   
    An ambient piece based on a Fibonacci series.

     
    SB.
    FibonacciMeditation.opmo
  18. Like
    BrianCope reacted to Stephane Boussuge in Image 1 for Piano   
    New Score for piano Solo, "Image 1".

     
    SB.
     
    Image-1_02_060116_1314 - Partition complète.pdf
  19. Like
    BrianCope reacted to opmo in Opusmodus 1.1.17676   
    PARTIAL-DIVIDE document fix.
  20. Like
    BrianCope reacted to opmo in Opusmodus 1.1.17640   
    We are excited to announce new functions in Opusmodus and we hope you will find them helpful in your work.
     
    NEW:
    Spectral Composition Tools
    ;;; Spectral Tools (import-spectral-spear "Imports spectral data from the SPEAR application.") (highest-partial "Returns the highest partial value of a given collection of partials data.") (lowest-partial "Returns the lowest partial value of a given collection of partials data.") (normalize-partials "Returns a float-vector with the amplitudes normalized so that their magnitudes add to 1.0.") (partial-divide "Divide a list of partials into sublists of a given length.") (partial-row "Converts frequency data of partials into a unique pitch row (each pitch becoming a root).") (partial "Returns partials of a given type of data.") (partial-remove "Removes partials from a given type of data with its value (min, max).") (partial-sort "Sorts partials of a given data type.")  
    PITCH-ROW
    This function allows a pitch series to be altered into a unique pitch row (each pitch is quasi a root). (setf mat (vector-to-pitch 'piano (mod-sine-waves 4 64 4 0.6 :modulation (gen-sine 64 1 '(0.5 0.2 0.1) :phase 60)))) => (f4 cs6 gs7 b7 f7 c7 bb3 g3 e2 a0 bb0 a0 fs4 fs2 fs2 d6 bb6 c7 a0 b0 bb0 a0 b7 gs7 c7 bb7 bb4 b2 b4 a0 a0 d1 eb6 bb2 d2 e3 b6 eb4 d3 c2 bb0 cs7 a0 a2 cs3 f7 c7 e6 d7 eb7 f2 a0 g7 gs7 a7 c5 cs1 c5 bb7 c8 e6 b2 bb3 fs6) (pitch-row mat) => (f4 cs6 gs7 b7 c7 bb3 g3 e2 a0 fs4 d6 eb6)  
    More options have been added to:
     
    CREATE-LIBRARY 
    Another option we have is to save the library output as a file directly into the DEF-LIBRARY directory. To do that we use the :file keyword. The :file name must be a string "name-of-the-file". (create-library 'Binary-Rhythmics '4-bit-binary 'bin (combination2 4 '(1 0 1 0)) :file "4-bit-library") We also can add an annotation (e.g. explanation or comment) by using the :note keyword: (create-library 'Binary-Rhythmics '4-bit-binary 'bin (combination2 4 '(1 0 1 0)) :file "4-bit-library" :note "Library explanation or comment") The next time we open the application the file will load at the start and will be ready for use.  
    LIBRARY
    (library 'binary-rhythmics '4-bit-binary 'bin15) => (1 1 1 1) (library 'binary-rhythmics '4-bit-binary nil :random 10) => ((1 1 0 1) (1 0 1 1) (0 1 0 1) (0 1 0 1) (1 1 0 1) (0 1 0 0) (0 0 1 0) (1 0 0 0) (0 1 1 0) (0 1 1 0)) (library 'binary-rhythmics '4-bit-binary nil :collect '(1 2 3 2 1)) => ((0 0 0 1) (0 0 1 0) (0 0 1 1) (0 0 1 0) (0 0 0 1)) (library 'binary-rhythmics '4-bit-binary nil :collect :all) Above there is an example of a defined library file followed by four possible output options. The first is to output a single library entry. The second picks 10 entries at random. The third allows an integer list to determine which entries in the library list can be collected together in a set order. The fourth :all will collect the entire library.  
  21. Like
    BrianCope reacted to Stephane Boussuge in Strings Quartet "Derriere les Nuages"   
    A score for String quartet based on a model used differently on several sections.
     
     
    DerriereLesNuages_Score.pdf
    DerriereLesNuages_Full_GM.opmo
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy