Jump to content

opmo

Administrators
  • Posts

    2,894
  • Joined

  • Last visited

Everything posted by opmo

  1. The PCS-ANALYSIS function returns two more results: inverted-form and interval-class: (pcs-analysis '(4 1 8 10 3 7)) => Sequence: (4 1 8 10 3 7) Set: 6-z29 Prime Form: (0 2 3 6 7 9) Inverted Form: nil Pitch: (c4 d4 eb4 fs4 g4 a4) Normal Order: (1 3 4 7 8 10) Complement: (0 2 5 6 9 11) Inversion: (8 11 4 2 9 5) Vector: (2 2 4 2 3 2) Interval Class: (3 5 2 5 4) (pcs-analysis '(0 3 7)) => Sequence: (0 3 7) Set: 3-11 Prime Form: (0 3 7) Inverted Form: (0 4 7) Pitch: (c4 eb4 g4) Normal Order: (0 3 7) Complement: (1 2 4 5 6 8 9 10 11) Inversion: (0 9 5) Vector: (0 0 1 1 1 0) Interval Class: (3 4) (pcs-analysis '(0 4 7)) => Sequence: (0 4 7) Set: 3-11b Prime Form: (0 3 7) Inverted Form: (0 4 7) Pitch: (c4 e4 g4) Normal Order: (0 4 7) Complement: (1 2 3 5 6 8 9 10 11) Inversion: (0 8 5) Vector: (0 0 1 1 1 0) Interval Class: (4 3) The new function PCS-FORMS takes care of both forms: prime-form and inverted-form. The inverted form set ends with letter b: (pcs-forms '((0 4 7) (0 3 7)) :type :set) => (3-11b 3-11)
  2. opmo

    tutorial guide

    Next - which will take some time - I will add all Opusmodus System Function with examples to our forum.
  3. I will add the inverted form into to the system with the next update.
  4. To do this I would need to rewrite the pitch class set functions. The functions where based on Allen Forte 'The Structure of Atonal Music' book.
  5. (pcs-analysis '(0 3 7)) ? pcs-analysis Sequence: (0 3 7) Set: 3-11 Prime Form: (0 3 7) Pitch: (c4 eb4 g4) Normal Order: (0 3 7) Complement: (1 2 4 5 6 8 9 10 11) Inversion: (0 9 5) Vector: (0 0 1 1 1 0) (pcs-analysis '(0 4 7)) ? pcs-analysis Sequence: (0 4 7) Set: 3-11 Prime Form: (0 3 7) Pitch: (c4 eb4 g4) Normal Order: (0 4 7) Complement: (1 2 3 5 6 8 9 10 11) Inversion: (0 8 5) Vector: (0 0 1 1 1 0) Note: The pitch output form PCS-ANALYSIS is the pitch form prime form.
  6. This needs to be done in notation display (musicxml).
  7. Extended documentation and bug fix in do-timeline and do-timline2 functions if binary list.
  8. (setf r-transitions1 '((e (e 1) (-e 3)) (-e (e 3) (-e 1)))) (setf marked (gen-markov-from-transitions r-transitions1 :size 120)) (setf r1 (length-span (gen-repeat 20 1) marked :omn t)) (setf pitches '(c4 eb4 f4 g4 bb4 c5 eb5)) (setf chords (chord-interval-add '(12) pitches)) (setf rh (make-omn :length r1 :pitch chords)) (setf rrh (omn-to-time-signature (gen-repeat '(3) rh) '(4 4))) or (setf rrh (assemble-seq (mapcar #'(lambda (x) (gen-repeat 3 (list x))) rh)))
  9. If the LH and RH pitches are placed correctly then I would use piano-layout: (def-score grand (:key-signature 'atonal :time-signature '(2 8) :tempo 130 :octave-shift '(c2 c6) ;:flexible-clef t :layout (piano-layout 'rh 'lh)) (lh :omn '(e g1 g3) :channel 1 :sound 'gm :program 0) (rh :omn '(e g3 c6)) )
  10. here only c6 is in the treble clef. (def-score grand (:key-signature 'atonal :time-signature '(2 8) :tempo 130 :octave-shift '(c2 c6) :flexible-clef t :layout (grand-layout 'pno)) (pno :omn (merge-voices '((e g3 c6) (e g1 g3))) :channel 1 :sound 'gm :program 0) )
  11. Is this what you are looking for: (setf sine (gen-sine 120 1 '(0.5 0.2 0.1) :phase 60)) (setf vec (add-sine-waves 4 120 4 0.6 :modulation sine)) (setf mat (vector-to-pitch '(g2 g7) vec)) (setf divide (gen-divide 6 mat)) (setf div1 (gen-collect 3 divide)) (setf div2 (gen-collect 3 divide :remain t)) (setf pich1 (rnd-octaves '(g2 b7) div1)) (setf pich2 (rnd-octaves '(c2 g7) div2)) (setf pitch (gen-mix pich1 pich2 :flatten t)) (setf velocity (rnd-sample 120 '(pp mp mf ff))) (setf omn1 (make-omn :length (rnd-sample 120 '(s -)) :pitch pich1 :velocity velocity :span :pitch)) (setf omn2 (make-omn :length (rnd-sample 120 '(s -)) :pitch pich2 :velocity velocity :span :pitch)) (def-score grand (:key-signature 'atonal :time-signature '(3 8) :tempo 130 :octave-shift '(c2 c6) :accidentals :all :layout (grand-layout 'pno)) (pno :omn (merge-voices omn1 omn2) :channel 1 :sound 'gm :program 0) ) Note: Accidentals types: :accidentals :all :accidentals :natural :accidentals :cautionary The :all-accidentals t is not correct.
  12. Optimisation to DO-TIMELINE. MIDI and frequency (partials) conditions. New compact timeline in DO-TIMELINE and DO-TIMELINE2 Example: (do-timeline '( piccolo (---xxxxxxx xxxxxx---- xxx------- xxxxxx---- ---------- xxxxxxx--- ---xxxxxxx xx) flute (--xxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxx---- ---------- xxxxxxxxxx xxxxxxxxxx xx) alto-flute (--xxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxx------ ---------- ---x--xxxx xxxxxxxxxx xx) oboe1 (xx----xxxx xxxxxx---- xxxxxxxxxx ---xxx---- ---------- xxxxxxxxxx xxxxxxxxxx xx) oboe2 (xxxxxxxxxx xxxxxxxxx- xxxxxxxxxx ---xx----- ---------- xxxxxxxxxx xxxxxxxxxx xx) cor-anglais (xxxxxxxxxx xxxxxx---- xxxxxxxxxx ---xx----- ---------- xxxxxxxxxx xxxxxxx-xx xx) clarinet1 (xxx------- xxxxxx---- --xxxxxxxx ---xxx---- ---------- xx-------- --------xx xx) clarinet2 (xxxxxxxxxx xxxx------ xxxxxxxxxx ---xxx---- ---------- ---------- --------xx xx) clarinet3 (xxxxxxxxxx xxxx------ xxxxxxxxxx ---------- ---------- ---------- --------x- --) bass-clarinet (xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx x--------- ---------- xxxx--xxxx xxxxxxxxxx xx) bassoon1 (xxxxxxxxxx ---------- xxxxxxxxxx ---xxx---- ---------- ---------- --------xx xx) bassoon2 (xxxxxxxxxx xx-------- xxxxxxxxxx -x-------- ---------- ---------- -------x-- --) contrabassoon (xxxxxxxxxx xxxx------ xxxxxxxxxx xx-------- ---------- ---------- ------xx-- --) horn1 (x--------- xxxxxxxx-- ---------- xxxxxxxxxx ---------- ---------- ---------- --) horn2 (xxxx------ xxxxxxxxxx xxxxxxxxxx xx-x------ ---------- ---------- -------xxx --) horn3 (xxxxxx---- xxxxxxxxxx xxxxxxxxxx xx-xxx---- ---------- ---------- -------xxx xx) horn4 (xxxxxx---- xxxxxxxxxx xxxxxxxxxx xx-x------ ---------- ---------- --------xx --) trumpet1 (xxxxxx---- ---xxxxx-- ---------- ---xxx---- ---------- xxxx----xx xxxxxx--xx xx) trumpet2 (xxx--x---- ---xxxxx-- xxxxxxxxxx ---xxx---- ---------- xxxx----xx xxxx----xx xx) trumpet3 (---------- x--xxxxxxx xxxxxxxxxx ---xxx---- ---------- xxxxxxxxxx xxxxxx--xx xx) bass-trumpet (xxxx------ x--------- ---------- x--xxx---x ---------- --------xx xxxxxxx-xx xx) trombone (------xxxx xxxxxxxxxx ---------- x-xxxxxx-x ---------- ---------- ---xxxx--- --) tenor-tuba (---------- xxxxxxxxxx ---xxxxxxx x--------- ---------- ---------- ---xxxx--- --) bass-tuba (xxxxxx---x xx---xxxxx xxxxxxxxxx x--------- ---------- ---------- ---xxxx--- --) harp-lh (xxxxxxxxx- xxxxxxxxxx xx-xxxxxxx xx-xxx-x-x ---------- xxxxxx-xxx xxxxxxxxxx xx) harp-rh (xxxxxxxxxx xxxxxxxxxx xx-xxxxxxx xx-xxx-x-x ---------- xxxxxx-xxx xxxxxxxxxx xx) violin1 (xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx -xxxxxxxxx ---------- ---------- --------xx xx) violin2 (xxxxxxxxxx xxxxxxxxxx xxx------x xxxxxxxxxx ---------- ---------- --------xx xx) viola (xxxxxxxxxx xxxxxxxxxx xxxxxx-xxx xxxx--xxxx ---------- ---------- --------xx xx) violoncello (xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xx-x--xxxx ---------- ---------- --------xx xx) contrabass (xxxxxx---x xxxxxxxxxx xxxxxxxxxx xx-x--xx-- ---------- xxxxxxx-xx -xx-xx-xxx xx) ) '(gen-pause x)) Binary example: (do-timeline '( piccolo (0001111111 1111110000 1110000000 1111110000 0000000000 1111111000 0001111111 11) flute (0011111111 1111111111 1111111111 1111110000 0000000000 1111111111 1111111111 11) alto-flute (0011111111 1111111111 1111111111 1111000000 0000000000 0001001111 1111111111 11) oboe1 (1100001111 1111110000 1111111111 0001110000 0000000000 1111111111 1111111111 11) oboe2 (1111111111 1111111110 1111111111 0001100000 0000000000 1111111111 1111111111 11) cor-anglais (1111111111 1111110000 1111111111 0001100000 0000000000 1111111111 1111111011 11) clarinet1 (1110000000 1111110000 0011111111 0001110000 0000000000 1100000000 0000000011 11) clarinet2 (1111111111 1111000000 1111111111 0001110000 0000000000 0000000000 0000000011 11) clarinet3 (1111111111 1111000000 1111111111 0000000000 0000000000 0000000000 0000000010 00) bass-clarinet (1111111111 1111111111 1111111111 1000000000 0000000000 1111001111 1111111111 11) bassoon1 (1111111111 0000000000 1111111111 0001110000 0000000000 0000000000 0000000011 11) bassoon2 (1111111111 1100000000 1111111111 0100000000 0000000000 0000000000 0000000100 00) contrabassoon (1111111111 1111000000 1111111111 1100000000 0000000000 0000000000 0000001100 00) horn1 (1000000000 1111111100 0000000000 1111111111 0000000000 0000000000 0000000000 00) horn2 (1111000000 1111111111 1111111111 1101000000 0000000000 0000000000 0000000111 00) horn3 (1111110000 1111111111 1111111111 1101110000 0000000000 0000000000 0000000111 11) horn4 (1111110000 1111111111 1111111111 1101000000 0000000000 0000000000 0000000011 00) trumpet1 (1111110000 0001111100 0000000000 0001110000 0000000000 1111000011 1111110011 11) trumpet2 (1110010000 0001111100 1111111111 0001110000 0000000000 1111000011 1111000011 11) trumpet3 (0000000000 1001111111 1111111111 0001110000 0000000000 1111111111 1111110011 11) bass-trumpet (1111000000 1000000000 0000000000 1001110001 0000000000 0000000011 1111111011 11) trombone (0000001111 1111111111 0000000000 1011111101 0000000000 0000000000 0001111000 00) tenor-tuba (0000000000 1111111111 0001111111 1000000000 0000000000 0000000000 0001111000 00) bass-tuba (1111110001 1100011111 1111111111 1000000000 0000000000 0000000000 0001111000 00) harp-lh (1111111110 1111111111 1101111111 1101110101 0000000000 1111110111 1111111111 11) harp-rh (1111111111 1111111111 1101111111 1101110101 0000000000 1111110111 1111111111 11) violin1 (1111111111 1111111111 1111111111 0111111111 0000000000 0000000000 0000000011 11) violin2 (1111111111 1111111111 1110000001 1111111111 0000000000 0000000000 0000000011 11) viola (1111111111 1111111111 1111110111 1111001111 0000000000 0000000000 0000000011 11) violoncello (1111111111 1111111111 1111111111 1101001111 0000000000 0000000000 0000000011 11) contrabass (1111110001 1111111111 1111111111 1101001100 0000000000 1111111011 0110110111 11) ) '(gen-pause x)) best wishes, JP
  13. You can find how to use the RND-SEED in the documentation. You need to explore bit more the system Function example using RND-SEED function: (defun rnd-number* (n low high &key seed) (do-verbose ("rnd-number*") (rnd-seed seed) (if (zerop n) nil (cons (round (+ low (rnd-round 0 (- high low) :seed (seed)))) (rnd-number* (decf n) low high :seed (seed)))))) Each time we evaluate the expression we get a different result. (rnd-number* 12 0 5) => (0 3 2 5 3 3 4 3 2 2 4 4) Adding seed to the expression will produce always the same result. (rnd-number* 12 0 5 :seed 45) => (2 2 5 4 5 0 5 3 5 3 1 1) If you need more help please let me know.
  14. Just import your midi file to Opusmodus (OMN) script and start transforming :-) added 1 minute later Direct midi input (keyboard) into OMN script will be introduce in version 2.0
  15. The INFINITY-SERIES returns only the strict series: 0, 1, −1, 2, 1, 0, −2, 3, …
  16. Check the INFINITY-SERIES documentation how the function works.
  17. Fix to DO-TIMELINE and DO-TIMELINE2 functions when with T or NIL plus minor bug fixes.
  18. (setf r1 '(s s -s) r2 '(s s -s) r3 '(-s -s e -s) r4 '(s -s s -e) r5 '(e -e -e s -s)) You need to flatten the list first: (setf seq (flatten (let ((r-lis nil)) (dotimes (i 10) (push (rnd-unique 5 '(1 2 3 4 5)) r-lis)) r-lis))) (setf r-list (assemble-section 'r seq)) You could do that: (setf r1 '(s s -s) r2 '(s s -s) r3 '(-s -s e -s) r4 '(s -s s -e) r5 '(e -e -e s -s)) (setf seq (flatten (gen-eval 10 '(rnd-unique 5 '(1 2 3 4 5))))) (setf r-list (assemble-section 'r seq))
  19. This is how lisp works Any variable you use in your score needs to be evaluated first. simple test (setf var '(1 2 3 4)) var => (1 2 3 4) (setf var '(a b c d) var => (a b c d) Now the var result is (a b c d)
  20. Because you have evaluated the expression before. If you use the same name it should be in this score. If you quit the App and restart and evaluate the score you will see an error.
  21. (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))))
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy