Skip to content
View in the app

A better way to browse. Learn more.

Opusmodus

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Session 9 - 11.07.20

Featured Replies

  • 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?

  • Author

Click inside the displayed score To give it the focus and press cmd+s to save it as music xml.
 

s.

About the difference, some scores use ps function and some others use def-score, so the approach is a bit different for evaluation.

 

s.

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.)

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.

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 !

Julio

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.

Best,

Julio

 

(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))

 

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))
or
(setf c7mt7 'c4e4g4b4)
(setf c7mt5 'b3c4e4g4)
(setf c7mt3 'g3b3c4e4)
(setf c7mt1 'e3g3b3c4)
(setf db7mt7 'cs4f4gs4c5)
(setf db7mt5 'c4cs4f4gs4)
(setf db7mt3 'gs3c4cs4f4)
(setf db7mt1 'f3gs3c4cs4)
 

 

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 !

Best,

Julio

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 !

Julio

Yes, maybe some funcionality to make octave transpositions easier, and a voicing system as well.

I´ll make it clear.

 

Best,

Julio

Create an account or sign in to comment


Copyright © 2014-2026 Opusmodus™ Ltd. All rights reserved.
Product features, specifications, system requirements and availability are subject to change without notice.
Opusmodus, the Opusmodus logo, and other Opusmodus trademarks are either registered trademarks or trademarks of Opusmodus Ltd.
All other trademarks contained herein are the property of their respective owners.

Powered by Invision Community

Important Information

Terms of Use Privacy Policy

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.