Jump to content

opmo

Administrators
  • Content Count

    1,826
  • Joined

  • Last visited

4 Followers

About opmo

  • Rank
    Admin

Contact Methods

Profile Information

  • Gender
    Male

Recent Profile Visitors

6,655 profile views
  1. Here it is: (sequencer:sequencer-stop *audition-sequencer*) JP
  2. Possible solution to 'fill' the added values: :repeat and :ornament This shouldn't be difficult to implement.
  3. – Additions:ADD-TEXT-ATTRIBUTS – Optional attribute type: :sticky and :non-sticky– Fixed:Typo error in 'GM Instrument Set.lisp' file. Best wishes, Janusz
  4. Implemented in version 1.3.24912 Example: Attributes with optional :non-sticky type: (add-text-attributes ;; motif start signs '(m1 "m1" :non-sticky) '(m2 "m2" :non-sticky) '(m3 "m3" :non-sticky) ;; strings '(am-steg "am steg") ; sticky '(ruhig "ruhig") ) '(q c4 m1+leg d4 q c4 m1+leg d4)
  5. Could you send me some example (with score) of the problem.
  6. All this can be done (and more) with PS, DEF-INSTRUMENT-SET, EDIT-EVENTS and UNFOLD functions.
  7. More about function name changes go to 'History': https://opusmodus.com/history/
  8. Yes, the function name has change to GET-AMBITUS. You will need to make a few correction to your code sorry for the inconvenience.
  9. Could you explain a bit more, I don't understand the use of score window and MIDI playback in the same time.
  10. opmo

    maxmsp and lisp?

    Opusmodus use CCL 1.12, here is the link to CCL 1.12 Clozure/ccl GITHUB.COM Clozure Common Lisp. Contribute to Clozure/ccl development by creating an account on GitHub.
  11. – New function: POLYGON-RHYTHM – Generates a symmetrical polygon to a given n-gon. – Update: LENGTH-WEIGHT – :swallow keyword added. LENGTH-REST-SERIES – omn-form and :swallow keyword added. LENGTH-TO-REST – omn-form and :swallow keyword added. – Documents: Howto Score/Rhythm/Polygon Rhythm.opmo Note: Select 'Check for Updates...' from Opusmodus app menu to get the latest version. POLYGON-RHYTHM This function returns a symmetrical polygon to a given n-gon (sides number) with circle points (denominator) and a given staring point. In this example we use 3-gon in a 16 point circle with the starting point 0: (polygon-rhythm 3 16 0) => (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/16 -1/16 -1/16 -1/16) Same as above with :legato t added: (polygon-rhythm 3 16 0 :legato t) => (1/4 1/2 1/4) The 3-gon in a 16 point circle with the starting point 0 will produce 7 symmetrical 3-gon’s: Example with start point 5: (polygon-rhythm 3 16 5) => (-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/16 -1/16 -1/16 1/16) (circle-rhythm-plot (polygon-rhythm 3 16 5) :points 16) Examples: In the following example we create 8 bars of a ‘Drum Set’ rhythm. First we assign the ‘GM Percussion’ names to variables: (setf bd (read-map *gm-percussion* 'acoustic-bass-drum)) (setf sd (read-map *gm-percussion* 'Acoustic-Snare)) (setf ht (read-map *gm-percussion* 'High-Tom)) (setf hh (read-map *gm-percussion* 'Open-Hi-hat)) Next we create 4 polygon rhythms: (setf bd-gon (polygon-rhythm 3 16 0 :pitch bd :seed 5)) (setf sd-gon (polygon-rhythm 2 16 1 :pitch sd :seed 45)) (setf ht-gon (polygon-rhythm 2 16 5 :pitch ht :seed 45)) (setf hh-gon (polygon-rhythm 5 16 2 :pitch hh :seed 5)) With the CIRCLE-RHYTHM-PLOT function you can visualise how the rhythms are working together: (circle-rhythm-plot (list bd-gon sd-gon ht-gon hh-gon) :points 16) Let’s hear the result above, using PS function and ‘GM Instrument Set’ with a 8 times loop: (ps 'gm :ds-bd (list (gen-eval 8 'bd-gon)) :ds-sd (list (gen-eval 8 'sd-gon)) :ds-ht (list (gen-eval 8 'ht-gon)) :ds-hh (list (gen-eval 8 'hh-gon)) :tempo 120) Same as above but without a seed value: (ps 'gm :ds-bd (list (gen-eval 8 '(polygon-rhythm 3 16 0 :pitch bd))) :ds-sd (list (gen-eval 8 '(polygon-rhythm 2 16 1 :pitch sd))) :ds-ht (list (gen-eval 8 '(polygon-rhythm 2 16 5 :pitch ht))) :ds-hh (list (gen-eval 8 '(polygon-rhythm 5 16 2 :pitch hh))) :tempo 120) In the next example we add a few more percussion instruments. The '? start symbol means the start point is selected at random: 0 to 15. (progn (setf bd (read-map *gm-percussion* 'Acoustic-Bass-Drum)) (setf sd (read-map *gm-percussion* 'Acoustic-Snare)) (setf ht (read-map *gm-percussion* 'High-Tom)) (setf hh (read-map *gm-percussion* 'Open-Hi-hat)) (setf lb (read-map *gm-percussion* 'Low-Bongo)) (setf hb (read-map *gm-percussion* 'High-Bongo)) (setf mhc (read-map *gm-percussion* 'Mute-Hi-Conga)) (setf lc (read-map *gm-percussion* 'Low-Conga)) (ps 'gm :ds-bd (list (gen-eval 16 '(polygon-rhythm 3 16 0 :pitch bd))) :ds-sd (list (gen-eval 16 '(polygon-rhythm 2 16 1 :pitch sd))) :ds-ht (list (gen-eval 16 '(polygon-rhythm 2 16 5 :pitch ht))) :ds-hh (list (gen-eval 16 '(polygon-rhythm 5 16 2 :pitch hh))) :rhy (list (gen-eval 16 '(polygon-rhythm 5 16 '? :pitch lb)) (gen-eval 16 '(polygon-rhythm 4 16 '? :pitch hb)) (gen-eval 16 '(polygon-rhythm 7 16 '? :pitch mhc)) (gen-eval 16 '(polygon-rhythm 7 16 '? :pitch lc))) :tempo 120) )
×
×
  • Create New...