Jump to content

opmo

Administrators
  • Posts

    2,869
  • Joined

  • Last visited

Everything posted by opmo

  1. (infinity-series 100 (expand-chord '(c4 ionian-augmented :row t))) Same as above: (infinity-series 100 (expand-chord-name 'ionian-augmented :type :pitch)) Mapping the output of the INFINITY-SERIES with TONALITY-MAP to the same scale: (tonality-map '(ionian-augmented :root c4) (infinity-series 100 (expand-chord '(c4 ionian-augmented :row t))))
  2. The OMN-PLIST and OMN-PROCESS function is not documented because is a not part of the release yet. (work in progress). I have created the new function in order to get all the attributes and articulations symbols into one list: :leg :ped :ped1 :half-ped :half-ped1 :sost-ped :sost-ped1 :una-corda :una-corda1 :15mb :15ma :8vb :8va :kgliss-ch :kgliss :gliss4 :gliss3 :gliss2 :gliss The OMN function will stay as it is for now. The OMN-PLIST function has 5 types: length, pitch, velocity, duration and articulation. The NIL will return all types. (setf omn '((-3h fs4 pp leg g4 leg) (h a4) (-q cs5 mp< ord) (q c5 f stacc -) (-5h - c5 pp leg e5 < leg f5 < leg) (h gs4 pp))) (omn-plist nil omn) => (:length ((-1/6 1/6 1/6) (1/2) (-1/4 1/4) (1/4 -1/4) (-1/10 -1/10 1/10 1/10 1/10) (1/2)) :pitch ((fs4 g4) (a4) (cs5) (c5) (c5 e5 f5) (gs4)) :velocity ((pp pp) (pp) (mp<) (f) (pp < <) (pp)) :articulation ((leg leg) (-) (ord) (stacc) (leg leg leg) (-))) grace-note will produce :duration parameters (setf omn2 '((-3h fs4 pp leg g4 leg) (h a4) (-q cs5 mp< ord s c4 app e cs5) (q c5 f stacc -) (-5h - c5 pp leg e5 < leg f5 < leg) (h gs4 pp))) (omn-plist nil omn2) => (:length ((-1/6 1/6 1/6) (1/2) (-1/4 1/4 0 1/8) (1/4 -1/4) (-1/10 -1/10 1/10 1/10 1/10) (1/2)) :pitch ((fs4 g4) (a4) (cs5 c4 cs5) (c5) (c5 e5 f5) (gs4)) :velocity ((pp pp) (pp) (mp< mf mf) (f) (pp < <) (pp)) :duration ((1/6 1/6) (1/2) (1/4 1/16 1/8) (1/4) (1/10 1/10 1/10) (1/2)) :articulation ((leg leg) (-) (ord app -) (stacc) (leg leg leg) (-))) Test: (setf plist (omn-plist nil omn)) (apply #'make-omn plist) => ((-3h fs4 pp leg g4 leg) (h a4 pp) (-q cs5 mp< ord) (q c5 f stacc -) (-5h - c5 pp leg e5 < leg f5 < leg) (h gs4 pp)) The OMN-PROCESS function still needs more work.
  3. I will open the Bug Report forum to all. Reporting a bug must come with an example how to reproduce it.
  4. The best way to report a bug - for now - is to use the 'Request Support' (email) from the Opusmodus Help menu.
  5. Thank for the report. Fixed in 1.2.22703
  6. 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
  7. Where did you found the score? All Opusmodus examples (scores, tutorial) should work without any crash. No wonder you have crashes, in the example above you create 1000's of notes in one bar. I would start with short scores first to understand how all is working together. Spanning length to pitch as it is in your example brake the lengths to unfinished tuplets, the rewrite will crash, naturally :-) I suggest to create more lengths bars first. Example: (setf size (gen-repeat 12 '(13 4))) (setf lengthsa (gen-length-cartesian 1 1 'm 'n 4 '(2 3) size '(1 2 3 4 5 6))) (setf lengthsb (gen-length-cartesian 1 1 'm 'n 4 '(2 3) size '(6 5 4 3 2 1))) (setf pitches (gen-repeat 24 '(c3 cs3 d3 ds3 e3 f3 fs3 g3 gs3 a3 as3 b3))) (setf transposed-pitches (pitch-transpose -12 pitches)) (setf lengths-rests1 (length-weight lengthsa :weight '(3 1) :seed 1)) (setf lengths-rests2 (length-weight lengthsb :weight '(5 1) :seed 2)) (setf pitches-rgrade (gen-retrograde pitches)) (setf piano-righthand (make-omn :length lengths-rests1 :pitch pitches-rgrade :velocity'(mf mp))) (setf piano-lefthand (make-omn :length lengths-rests2 :pitch transposed-pitches :velocity '(mp mf f))) (setf time-sig (get-time-signature piano-righthand)) (def-score Stage-4 (:key-signature 'chromatic :time-signature time-sig :tempo 128 :layout (piano-layout 'piano-rh 'piano-lh)) (piano-rh :omn piano-righthand :channel 1 :sound 'gm :program 'acoustic-grand-piano) (piano-lh :omn piano-lefthand) ) GEN-REPEAT see the difference: (gen-repeat 3 '(c3 cs3 d3 ds3 e3 f3 fs3 g3 gs3 a3 as3 b3)) => (c3 cs3 d3 ds3 e3 f3 fs3 g3 gs3 a3 as3 b3 c3 cs3 d3 ds3 e3 f3 fs3 g3 gs3 a3 as3 b3 c3 cs3 d3 ds3 e3 f3 fs3 g3 gs3 a3 as3 b3) (gen-repeat 3 (list '(c3 cs3 d3 ds3 e3 f3 fs3 g3 gs3 a3 as3 b3))) => ((c3 cs3 d3 ds3 e3 f3 fs3 g3 gs3 a3 as3 b3) (c3 cs3 d3 ds3 e3 f3 fs3 g3 gs3 a3 as3 b3) (c3 cs3 d3 ds3 e3 f3 fs3 g3 gs3 a3 as3 b3))
  8. The update will be released tomorrow. The final function name might be different.
  9. I think you are looking for something like that: (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) (make-omn :length length :pitch (time-swallow 1/16 1 length pitch)) => (h g4 s fs4 q.. a4 e gs4 q. f4 e. qs g4 q fs4 a4 qs g4 e. q. a4) (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) (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) I made some changes the function which allows you now to assign a chord size to the pitch output.
  10. To stop Audition - cmd/esc To audition a snippet you need to choose the correct command type: OMN (length, pitch or velocity) Integers or Intervals. To assign your own key commands would be possible in version 2.0
  11. Please check the PCS documents. (pcs '3-1 :type :vector) => (2 1 0 0 0 0) (pcs '(3-1 3-8) :type :vector) => ((2 1 0 0 0 0) (0 1 0 1 0 1))
  12. Are you collecting the data each day? Could you send me the data for each of the 4 parameters. For example the function VECTOR-TO-LENGTH could generate the lengths: (setf l-data '(87.10115 149.16446 261.51358 97.36691 349.27936 279.12173 133.68344 313.95352 324.80905 50.51986 137.61513 277.79932 142.74834 194.98927 224.3649 188.95398 114.017494 214.18486 340.42432 175.74698 350.46225 184.5418 153.89604 325.713)) (setf l-scale-data (append '(0.0) l-data '(360.0))) (setf length (butlast (rest (vector-to-length '1/16 1 16 l-scale-data)))) => (5/16 7/16 3/4 5/16 1 13/16 7/16 7/8 15/16 3/16 7/16 13/16 7/16 9/16 5/8 9/16 3/8 5/8 15/16 1/2 9/16 7/16 15/16)
  13. Dear Hasan, I could send you few examples on how to use the OSC library and how to send the signal to the OSC devices (Reaktor, etc...). In order to help I would need to know which of the data will be a length, pitch, etc... and that data will be for OSC controllers. In Opusmodus any data can be courted to any of the 4 parameters or to OSC values (floating points). You most have some idea how you would like to use the data in Opusmodus, please explain a bit more the structure.
  14. You can use keyword as instrument identifiers. Example without the :layer: will work: (def-score flute (:key-signature 'chromatic :time-signature '(4 4) :tempo 100) (:flute :omn '((q c5 d5 f5 g5) (q c5 d5 f5 g5)))) To do that we would need to make a change to the layout instruments.
  15. Thank you for sharing, great piece and great sound. I like the 'live' video
  16. To get the intended time signature: :time-signature '((6 8 1) (12 8 2) (4 8 2)) ; etc... Good example with series of time signature values you will find in Webern 'Variationen Fuer Klavier Op.27, II' score in the Utilities panel: 'Score Examples/Webern'.
  17. You will find the 'DADA Quartet' score in the Opusmodus Scores Library with the next release.
  18. Here is an example of one of the Opusmodus contents.opmo files. ;;; Filters/Generate (gen-filter-ambitus "Finds and removes any pitch outside the range with symbols 0 replacing the others with 1 internally and create a map.") (gen-filter-anacrusis "Finds and preserves the end of a series of repeated items and replacing the others.") (gen-filter-change "Finds repeated items and replacing them with (0) internally, and create a map.") (gen-filter-remove "Returns a list of 0 and 1 internally and create a map.") As you can see the short description of the function is in a string: (function-name "short description in a string") Each folder needs to have its own contents.opmo file.
  19. Algorithmic avant garde jazz improvisation for tenor saxophone, piano, bass and drums. I thought it is time to add something new to our 'Made in Opusmodus' forum. Samples: VSL Ensemble Pro with Vienna Instruments Pro. If you like to study the score, here it is: DADA Quartet.opmo
  20. Notation: octave shift above pedal min width on single system tempo meter placement rit extension Fixed the flat-invert in PITCH-INVERT function.
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy