Jump to content
Sign in to follow this  
torstenanders

How to have multiple articulations on a single note resulting in multiple MIDI events?

Recommended Posts

I am still working on getting playback for GrandOrgue working properly. I defined a sound set with various articulations (shown in a related post, see link below) for setting, e.g., which manual to use for the current hand, and which stop combinations on that manual. Those articulations already work individually in Opusmodus.

 

The problem I am facing is that I need to constantly combine multiple of such articulations in a single note. For example, I may need to specify that the right hand stops playing on the manual I (one articulation), that it instead plays on manual II and III coupled (two further articulations) and which stop combinations to use for those manuals (two more articulations). So, in this example we have five articulations on a single note, and each needs to send a specific MIDI event. Such an occurrence is something completely normal in organ literature. In OMN, this could be written, e.g., as follows using my sound set shown in the post linked below. 

 

'((q c4 -I+II5+III6+II+III))

 

 

Now, my only problem is that whenever there are two articulations combined for a single note, where each should output its own MIDI event, Opusmodus always only outputs just one of these MIDI events. I confirmed this by checking the resulting MIDI events both in an exported MIDI file and with a realtime MIDI monitor (https://www.snoize.com/MIDIMonitor/). Note that my setup works with other software (notation software and DAWs), as they allow for having multiple articulations allocated to a single note outputting separate MIDI events. 

 

Is this perhaps somehow possible with Opusmodus as well?

 

Best,

Torsten

 

PS: I realise that Opusmodus does send multiple MIDI events if multiple MIDI events are explicitly specified for a single articulation, as in the "VSL Cello Solo" file. However, I cannot really explicitly define all the possible articulation combinations as individual articulations instead, as what would result in an impractical large number of them. There are currently individual 48 articulations (for an organ with three manuals and 10 preset combinations each), and these articulations can be combined in various ways in pairs, triplets, quadruples etc., which would result in an impractically huge number of articulations to define. 

 

PPS: One potential workaround for some situations would be to instead allocate some of these articulations to rests immediately preceding the notes for which they are needed, but that is not possible either, because custom articulations cannot be added to rests. Instead, additional notes are added. 

 

PPPS: For completeness: a related post.

 

 

Share this post


Link to post
Share on other sites

BTW: It seems that Opusmodus sends various redundant MIDI events when looking at its realtime output with MIDI monitor. Initially, CC 123 and 120 are initialised to 0 for all 16 channels, but this is done several times (at the end this is done again, but only once).

 

More worryingly, notes are send multiple times. For example, when you send the example below in a score, a note-on for the first note (C5) is send twice almost simultaneously, followed by a note-off for both those notes simultaneously. Indeed, you can commonly hear the result of that as a quasi hick-up in the output, or that the first note is simply skipped. The next notes are also always output twice, but those double events are exactly simultaneously. 

 

    ((q c5 d5 e5 f5) 

 

A related problem is that note-offs and succeeding note-ons are exactly at the same time, which can result in problems for note repetitions. 

 

Best,

Torsten

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×