Jump to content

Opusmodus 1.2.21794


Recommended Posts

Fix to missing TIE is some instances.

 

New:

OMN-TO-MEASURE

This function works the same way as the OMN-TO-TIME-SIGNATURE function but uses measures instead of time-signature form.

---------------------------------- 

 

omn-to-measure omn-form measures &key loop

 

[Function]

 

Arguments and Values:

 

omn                omn-form list.

measures                          a list of length-symbols or ratios.

loop                                    NIL or T. The default is T.

 

Description:

 

The OMN-TO-MEASURE function is used to span an omn-form list to create sublists that match up with a list of time-signature measures. This is particularly valuable when organising the omn output from the import of a Midifile to allow for further processing. For example, here’s part of an improvisation captured to Midifile. First, its output before the OMN-TO-MEASURE:

 

(setf rh-1

      '(-dd h c7 p eb6 mp p - c7 q e6 - h_e g6 e mf

        bb5 mp -h.. q bb6 p -h. q. d6 e c4 -h..

        q bb3 mf e g6 mp h_e e6 -h e g5 h a6

        -e = h bb4 e6 p q bb6 mp e6 e g3 g6 p

        q. g3 e bb3 bb6 mp q g6 pp e c7 mp eb4 p))

 

Now, with this output organised to produce lists that adhere to the measure 4/4:

 

(setf bw-rh1 (omn-to-measure rh-1 '(4/4)))

=> ((-w) (-w) (-w) (-w)

    (h c7 p eb6 mp)

    (h eb6 p -h)

    (h c7 p q e6 -q)

    (h_e g6 p e mf bb5 mp -e tie)

    (-h. q bb6 p)

    (-h. q d6 p tie)

    (e d6 p c4 -h.)

    (-e q bb3 mf e g6 mp h e6 tie)

    (e e6 mp -h e g5 q a6 tie)

    (q a6 mp -e a6 h bb4)

    (h e6 p q bb6 mp e6)

    (e g3 mp g6 p q. g3 e bb3 bb6 mp g6 pp tie)

    (e g6 pp c7 mp eb4 p))

 

Examples:

 

The following examples show further possibilities of this function. Particularly notice in the next example how the tie is added automatically in the second bar.

 

(setf measures '(q h. h. w h.))

 

(setf omn1 '(-q q c5 p eb4 h gb4 q gb5 p a4 f

               c5 q c6 p eb5 gb5 q gb6 p a5 c6))

 

(omn-to-measure omn1 measures)

=> ((-q) (q c5 p eb4 gb4 tie) (q gb4 p gb5 a4 f)

    (q c5 f c6 p eb5 gb5) (q gb6 p a5 c6))

 

The example below is interesting because it’s only featuring a single bass pitch. Remember that in omn when a part may have only a single pitch, simply stating the next rhythmic value automatically includes a repetition of that pitch.

 

(setf omn2 '(s gb2 f -e. s fff -e. s f -e. s fff

             -e. s f -e. s -e. s -e. s -e. s -e.

             s fff -e. s f -e. s fff -e. s f -e.

             s -e. s -e. s -e. s -e. s fff -e. s f

             -e. s fff -e. s -e s -e s -e s -we s

             -q s -q s -q s -q s -q s -q s -))

 

(omn-to-measure omn2 '(q q. q. w))

=> ((s gb2 f -e.)

    (s gb2 fff -e. s gb2 f -)

    (-e s gb2 fff -e.)

    (s gb2 f -e. s gb2 -e. s gb2 -e. s gb2 -e.)

    (s gb2 f -e. s gb2 fff -e. s gb2 f -e. s gb2 fff -e.)

    (s gb2 f -e. s gb2 -e. s gb2 -e. s gb2 -e.)

    (s gb2 f -e. s gb2 fff -e. s gb2 f -e. s gb2 fff -e.)

    (s gb2 fff -e s gb2 -e s gb2 -e s gb2 -q.)

    (-h. s gb2 fff -e.)

    (-s gb2 fff -q s gb2 -q s gb2 -q)

    (s gb2 fff -q s gb2 -q s gb2 -))

 

As in the initial example here’s a fragment barred with two measure values and with loop set to T.

 

(setf omn3 '(s b4 d5 fs5 a5 e. g5 s c5

               b4 a4 g4 b4 a4 cs5 e5 g5

               e. fs5 s b4 a4 g4 fs4 a4

               g4 b4 d5 fs5 e. e5 s a4

               g4 fs4 e4 g4))

 

(omn-to-measure omn3 '(q. q) :loop t)

=> ((s b4 d5 fs5 a5 e g5 tie)

    (s g5 c5 b4 a4)

    (s g4 b4 a4 cs5 e5 g5)

    (e. fs5 s b4)

    (s a4 g4 fs4 a4 g4 b4)

    (s d5 fs5 e e5 tie)

    (s e5 a4 g4 fs4 e4 g4))

 

See OMN-TO-TIME-SIGNATURE

 
Link to comment
Share on other sites

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy