Jump to content

Session 9 - 11.07.20

Recommended Posts

  • opmo changed the title to Session 9 - 11.07.20

Thank you very much, dear Stéphane, for this very interesting session.

I have a question: There are programs, which I can evaluate or put to the MusicXML Viewer and to the audition via Command-1 as snippets. And there are other programs, where this doesn't work and I have to go over Tools: Evaluate Score: Audition and Notation to see and hear the score. Why this difference?

When the MusicXML Viewer and Audition was generated via Snippet, then I have no problem to export the xml via File: Export: Last Score to MusicXML …

But when the MusicXML Viewer and Audition was generated via Tools: Evaluate Score: Audition and Notation, then I can not export the xml, because in File: Export: «Last Score to MusicXML …» is grey. How can I then export the xml?

Link to comment
Share on other sites

I clicked in the MusicXML Viewer to activate this window and pressed cmd+s to save it, but I only hear the "error-sound" of the computer. (Under File: "Save" and also "Save as …" are grey.)

Link to comment
Share on other sites

57 minutes ago, Stephane Boussuge said:

We need to take an appointment and you will share your screen and I will have a look.



Thank you very much. You can make a proposition which is good for you.

Link to comment
Share on other sites

Thanks a lot, Stephane !

Great meeting !


I have one question, regarding the use of customized methods.

We can put on def-library folders in the Def-Unfold_Sets

a file with our customized methods.

This file must have an specific name ?

The sets of  methods are automatically loaded in the startup , so we can call the specific sets in

the unfold function without having to evaluate the complete procedure of each method ?


I did an 11000 lines of code with my book´s chord library. Took me 2 weeks in notepad++

It takes like 7 minutes to load, but its a kind of shortbreak to common practice chords. 

Now with MIDI entry, things can be easier for common practice guys like me, who dont want to

 have chords generated by vectors, but by specific tonal or modal chords.

But I had to copy octave up and down versions of each chord and it multiplied the line numbers.

With a preloaded method of transpositions this could be easier, maybe...


All the best !  Thanks again !

Best !


Link to comment
Share on other sites

Thank you, Stephane and Janusz !


Maybe I will need some help of you.


The library looks like this. THis is one of the 4-note chords:

It allow me to call chords using chord symbols.




(setf C7Mt7 (ambitus-octaves 'c4 1 (pitch-rotate 1 (pcs-transpose -1 (pcs '4-20) :pitch))))
(setf C7Mt5 (ambitus-octaves 'b3 1 (pitch-rotate 0 (pcs-transpose -1 (pcs '4-20) :pitch))))
(setf C7Mt3 (ambitus-octaves 'g3 1 (pitch-rotate -1 (pcs-transpose -1 (pcs '4-20) :pitch))))
(setf C7Mt1 (ambitus-octaves 'e3 1 (pitch-rotate -2 (pcs-transpose -1 (pcs '4-20) :pitch))))

(setf Db7Mt7 (pitch-transpose 1 C7Mt7))
(setf Db7Mt5 (pitch-transpose 1 C7Mt5))
(setf Db7Mt3 (pitch-transpose 1 C7Mt3))
(setf Db7Mt1 (pitch-transpose 1 C7Mt1))

(setf D7Mt7 (pitch-transpose 2 C7Mt7))
(setf D7Mt5 (pitch-transpose 2 C7Mt5))
(setf D7Mt3 (pitch-transpose 2 C7Mt3))
(setf D7Mt1 (pitch-transpose 2 C7Mt1))

(setf Eb7Mt7 (pitch-transpose 3 C7Mt7))
(setf Eb7Mt5 (pitch-transpose 3 C7Mt5))
(setf Eb7Mt3 (pitch-transpose 3 C7Mt3))
(setf Eb7Mt1 (pitch-transpose 3 C7Mt1))

(setf E7Mt7 (pitch-transpose 4 C7Mt7))
(setf E7Mt5 (pitch-transpose 4 C7Mt5))
(setf E7Mt3 (pitch-transpose 4 C7Mt3))
(setf E7Mt1 (pitch-transpose 4 C7Mt1))

(setf F7Mt7 (pitch-transpose 5 C7Mt7))
(setf F7Mt5 (pitch-transpose 5 C7Mt5))
(setf F7Mt3 (pitch-transpose 5 C7Mt3))
(setf F7Mt1 (pitch-transpose 5 C7Mt1))

(setf Gb7Mt7 (pitch-transpose -6 C7Mt7))
(setf Gb7Mt5 (pitch-transpose -6 C7Mt5))
(setf Gb7Mt3 (pitch-transpose -6 C7Mt3))
(setf Gb7Mt1 (pitch-transpose -6 C7Mt1))

(setf G7Mt7 (pitch-transpose -5 C7Mt7))
(setf G7Mt5 (pitch-transpose -5 C7Mt5))
(setf G7Mt3 (pitch-transpose -5 C7Mt3))
(setf G7Mt1 (pitch-transpose -5 C7Mt1))

(setf Ab7Mt7 (pitch-transpose -4 C7Mt7))
(setf Ab7Mt5 (pitch-transpose -4 C7Mt5))
(setf Ab7Mt3 (pitch-transpose -4 C7Mt3))
(setf Ab7Mt1 (pitch-transpose -4 C7Mt1))

(setf A7Mt7 (pitch-transpose -3 C7Mt7))
(setf A7Mt5 (pitch-transpose -3 C7Mt5))
(setf A7Mt3 (pitch-transpose -3 C7Mt3))
(setf A7Mt1 (pitch-transpose -3 C7Mt1))

(setf Bb7Mt7 (pitch-transpose -2 C7Mt7))
(setf Bb7Mt5 (pitch-transpose -2 C7Mt5))
(setf Bb7Mt3 (pitch-transpose -2 C7Mt3))
(setf Bb7Mt1 (pitch-transpose -2 C7Mt1))

(setf B7Mt7 (pitch-transpose -1 C7Mt7))
(setf B7Mt5 (pitch-transpose -1 C7Mt5))
(setf B7Mt3 (pitch-transpose -1 C7Mt3))
(setf B7Mt1 (pitch-transpose -1 C7Mt1))

Each chord also have a octave up and down version, like this:


(setf C7Mt7+12 (pitch-transpose 12 C7Mt7))
(setf C7Mt5+12 (pitch-transpose 12 C7Mt5))
(setf C7Mt3+12 (pitch-transpose 12 C7Mt3))
(setf C7Mt1+12 (pitch-transpose 12 C7Mt1))

(setf Db7Mt7+12 (pitch-transpose 13 C7Mt7))
(setf Db7Mt5+12 (pitch-transpose 13 C7Mt5))
(setf Db7Mt3+12 (pitch-transpose 13 C7Mt3))
(setf Db7Mt1+12 (pitch-transpose 13 C7Mt1))

(setf D7Mt7+12 (pitch-transpose 14 C7Mt7))
(setf D7Mt5+12 (pitch-transpose 14 C7Mt5))
(setf D7Mt3+12 (pitch-transpose 14 C7Mt3))
(setf D7Mt1+12 (pitch-transpose 14 C7Mt1))

(setf Eb7Mt7+12 (pitch-transpose 15 C7Mt7))
(setf Eb7Mt5+12 (pitch-transpose 15 C7Mt5))
(setf Eb7Mt3+12 (pitch-transpose 15 C7Mt3))
(setf Eb7Mt1+12 (pitch-transpose 15 C7Mt1))

(setf E7Mt7+12 (pitch-transpose 16 C7Mt7))
(setf E7Mt5+12 (pitch-transpose 16 C7Mt5))
(setf E7Mt3+12 (pitch-transpose 16 C7Mt3))
(setf E7Mt1+12 (pitch-transpose 16 C7Mt1))

(setf F7Mt7+12 (pitch-transpose 17 C7Mt7))
(setf F7Mt5+12 (pitch-transpose 17 C7Mt5))
(setf F7Mt3+12 (pitch-transpose 17 C7Mt3))
(setf F7Mt1+12 (pitch-transpose 17 C7Mt1))

(setf Gb7Mt7+12 (pitch-transpose 6 C7Mt7))
(setf Gb7Mt5+12 (pitch-transpose 6 C7Mt5))
(setf Gb7Mt3+12 (pitch-transpose 6 C7Mt3))
(setf Gb7Mt1+12 (pitch-transpose 6 C7Mt1))

(setf G7Mt7+12 (pitch-transpose 7 C7Mt7))
(setf G7Mt5+12 (pitch-transpose 7 C7Mt5))
(setf G7Mt3+12 (pitch-transpose 7 C7Mt3))
(setf G7Mt1+12 (pitch-transpose 7 C7Mt1))

(setf Ab7Mt7+12 (pitch-transpose 8 C7Mt7))
(setf Ab7Mt5+12 (pitch-transpose 8 C7Mt5))
(setf Ab7Mt3+12 (pitch-transpose 8 C7Mt3))
(setf Ab7Mt1+12 (pitch-transpose 8 C7Mt1))

(setf A7Mt7+12 (pitch-transpose 9 C7Mt7))
(setf A7Mt5+12 (pitch-transpose 9 C7Mt5))
(setf A7Mt3+12 (pitch-transpose 9 C7Mt3))
(setf A7Mt1+12 (pitch-transpose 9 C7Mt1))

(setf Bb7Mt7+12 (pitch-transpose 10 C7Mt7))
(setf Bb7Mt5+12 (pitch-transpose 10 C7Mt5))
(setf Bb7Mt3+12 (pitch-transpose 10 C7Mt3))
(setf Bb7Mt1+12 (pitch-transpose 10 C7Mt1))

(setf B7Mt7+12 (pitch-transpose 11 C7Mt7))
(setf B7Mt5+12 (pitch-transpose 11 C7Mt5))
(setf B7Mt3+12 (pitch-transpose 11 C7Mt3))
(setf B7Mt1+12 (pitch-transpose 11 C7Mt1))


Link to comment
Share on other sites

If this library is quite big would be better to do that with table and not with functions - just with results (values).

The values (chords) are fixed therefore:

(setf c7mt7 '(c4 e4 g4 b4))
(setf c7mt5 '(b3 c4 e4 g4))
(setf c7mt3 '(g3 b3 c4 e4))
(setf c7mt1 '(e3 g3 b3 c4))
(setf db7mt7 '(cs4 f4 gs4 c5))
(setf db7mt5 '(c4 cs4 f4 gs4))
(setf db7mt3 '(gs3 c4 cs4 f4))
(setf db7mt1 '(f3 gs3 c4 cs4))
(setf c7mt7 'c4e4g4b4)
(setf c7mt5 'b3c4e4g4)
(setf c7mt3 'g3b3c4e4)
(setf c7mt1 'e3g3b3c4)
(setf db7mt7 'cs4f4gs4c5)
(setf db7mt5 'c4cs4f4gs4)
(setf db7mt3 'gs3c4cs4f4)
(setf db7mt1 'f3gs3c4cs4)


Link to comment
Share on other sites

Yes, Janusz !

Great !

Thank you.

But I already did it.

Maybe a second version, without functions would load faster. But actually I dont mind to wait 5 or 7 minutes for loading because it saves me a lot of typping after. I just have to choose my chords intuitively in guitar or piano and after I use chords symbols and manipulate the inversions.


Thanks a lot !



Link to comment
Share on other sites

Dear Janusz,


I think that this could be a good thing to really implement in Opusmodus. I´m  finetuning it, because it involves not only a programming point of view, but also a theoretical and compositional way of thinking music. I feel that it deserves a better explanation, because a lot of chord symbols are based on my experience and also based in my Combinatorial Harmony Book.


After the finetuning, I´m going to make an video explanation of it, to make the things clearer. 

If you are interested we can build something to include in the current library of Opusmodus. 


All the best !


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

Terms of Use Privacy Policy