-
Posts
2,894 -
Joined
-
Last visited
Content Type
Forums
Events
Store
Video Gallery
Everything posted by opmo
-
Pcs: how to retrieve inverted forms from this function ?
opmo replied to JulioHerrlein's topic in Function Examples
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) -
Pcs: how to retrieve inverted forms from this function ?
opmo replied to JulioHerrlein's topic in Function Examples
I will add the inverted form into to the system with the next update. -
Pcs: how to retrieve inverted forms from this function ?
opmo replied to JulioHerrlein's topic in Function Examples
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. -
Pcs: how to retrieve inverted forms from this function ?
opmo replied to JulioHerrlein's topic in Function Examples
(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. -
[SOLVED] Midi In Collect (now Opusmodus have MIDI input)
opmo replied to JulioHerrlein's topic in Suggestions & Ideas
Ver 2. will be able to import musicXML files and convert to omn. -
function for (string-)harmonics / flagolets?
opmo replied to AM's topic in User Extensions Source Code
This needs to be done in notation display (musicxml). -
Extended documentation and bug fix in do-timeline and do-timline2 functions if binary list.
-
(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)))
-
Translating MIDI velocities into OMN velocities
opmo replied to torstenanders's topic in Support & Troubleshooting
Can't be simpler: (get-velocity '(90 39 58 49)) -
Good solution indeed
- 12 replies
-
- def score
- piano layout
-
(and 1 more)
Tagged with:
-
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)) )
- 12 replies
-
- def score
- piano layout
-
(and 1 more)
Tagged with:
-
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) )
- 12 replies
-
- def score
- piano layout
-
(and 1 more)
Tagged with:
-
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 replies
-
- def score
- piano layout
-
(and 1 more)
Tagged with:
-
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
-
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.
-
[SOLVED] Midi In Collect (now Opusmodus have MIDI input)
opmo replied to JulioHerrlein's topic in Suggestions & Ideas
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 -
code Infinity-series applied to scales/modes
opmo replied to BrianCope's topic in Support & Troubleshooting
The INFINITY-SERIES returns only the strict series: 0, 1, −1, 2, 1, 0, −2, 3, …- 20 replies
-
- inifity-series
- scales
-
(and 1 more)
Tagged with:
-
code Infinity-series applied to scales/modes
opmo replied to BrianCope's topic in Support & Troubleshooting
Check the INFINITY-SERIES documentation how the function works.- 20 replies
-
- inifity-series
- scales
-
(and 1 more)
Tagged with:
-
Fix to DO-TIMELINE and DO-TIMELINE2 functions when with T or NIL plus minor bug fixes.
-
(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))
-
Pleasure, Janusz
-
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)
-
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.
-
code Infinity-series applied to scales/modes
opmo replied to BrianCope's topic in Support & Troubleshooting
(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))))- 20 replies
-
- inifity-series
- scales
-
(and 1 more)
Tagged with: