Help needed with MIDI channel mapping for exported MIDI files

Making a sequence on one machine, that will ultimately be performed on different instruments, in different settings IS PUZZLING.

It is an ‘engineering puzzle’ that involves a lot of ‘lower level techy type stuff’, but you can’t put it together if you don’t know where pieces are stored, and explore/practice ‘putting them together’.

I’m not sure what ‘Maybe just a far better person [slight smile]’ is supposed to mean. Despite being an ‘inferior person’, I’m simply trying to contribute something that might be helpful to the OP, and perhaps the community at large.

I wasn’t sleeping well after a long day of work when I responded to OP, and drafting these posts upon occasion is one way relax physically while also exhausting my brain enough to actually crash for a few hours. I woke up ‘grumpy’ and ‘oversensitive’.

I can simply and directly explain how to make a stave, or even different voices on a stave render a SMF to the specific channels the OP asked for. I could even ‘do the work for him’ and supply a project/template all ready to roll.

Problem with that in my mind, is that wouldn’t walk through the concepts of how and why it works, and where I went in Dorico to build them. While it might answer a few immediate questions, it wouldn’t be good enough to accomplish the goal of regularly building scores that easily render into a useable MIDI file that’s going to ‘sound good’ off in another instrument, in a different setting.

So, I shared the sort of generalized exercise that mentors and professors put me through decades ago. Example Objective Rubric: Use a given set of tools involving 5 or more tracks/staves to render a MIDI file conforming the General MIDI I format. The resulting file should at least use Program Change events to initialize the instruments, trigger the initialized sounds with note on/off events, involve at least 2 forms of dynamic control, use at least 2 continuous controllers, establish a staging and spacing for the performance, incorporate at least one instant tempo change, at least one gradual tempo change, and demonstrate at least two methods to achieve a crescendo or decrescendo effect. (Etc…)

So I went a little further than OP asked, but not much. A tad off the mark with talk about PC changes on purpose, and I did it with GM framework, and a symphony instead of a few organ ranks on purpose, and I did it with an ‘external instrument’ first, and then a virtual one later on purpose, and here is WHY.

Mainly to give a brief tour around Dorico. Go here to change an end point’s actual transmission channel. Go there to tweak a global dynamic curve. Go over yonder to establish if you want velocity, a CC, or both controlling dynamics. Turn to yet a different page if you want to setup or ‘change’ sounds/channels ‘on the fly’. Need a reference plugin? Dorico comes with some…have a quick tour of one of them (Sonic).

I don’t think that simply having Dorico render the notes to the proper channels is going to be ‘good enough’ to just walk into the sanctuary or theatre, pipe the file into the console, and get good results right away. If OP is not building the score while sitting at the instrument, with real time access to the instrument, dynamics can be all over the map in some rather performance wrecking ways.

When composing away from the actual target instrument(s), some kind of ‘reference’ plugin or instrument needs to be mastered and understood. A very simple general MIDI player with very predictable and familiar banks of sounds is a good place to start. Exploring the various options and event types that Dorico offers will be paramount to understanding more than how to make a MIDI file that ‘plays back the notes on the right channels’.

Having a ‘reference point’ of some kind to listen while composing away from the instrument matters. Even if it’s so simple as just a solitary flute, oboe, trumpet, some various mixes of these three base timbers, and maybe a clean sine wave synth sound of some sort for the bass pedals.
Having some kind of clean and predictable reference on playback will help.

Understanding how the rendered MIDI file it’s going to translate on the actual instrument will take a little practice.

I felt that demoing the concept of setting up a Symphonic score that’d work and sound similar in any GM player would answer the direct question on understanding where to go to get Dorico transmitting on the correct channels. It’d also touch on a lot more, and answer quite a few questions that I’m pretty confident the OP will have at some point ‘pretty darn quick’ if he’s going to be rendering MIDI files for instruments that are ‘offline’ to him at the time he is composing.

Playing the right notes on the right channels isn’t really good enough. Dynamics matter, phrasing matters, getting things to ‘balance and blend’ well matters.

I believe it starts with clicking around in Dorico in the respective ‘neighborhoods’ to achieve different things. Thus, I chose a similar, but a little different and more involved concept (than initially asked for) to guide OP into clicking into those ‘neighborhoods’ and ‘fiddling around’. Undoubtedly, he’ll see and learn way more along the way. To ‘really’ go step by step, would have taken FOUR TIMES as many ‘screen shots’. I just hoped to guide him into the right ‘neighborhood’ as to some methods to understand and predict how Dorico behaves, and develop an ear for rendering good MIDI performances that should translate better across ‘different instruments’.

I can come back later and give specific examples on how to build an organ in Sonic that can simulate enough aspects of an organ performance to at least build a nice ‘reference station’ that’ll help OP learn to make and render Scores at home, away from the actual target organ, that will sound much closer to what he ‘expects’ on the specific organ and room he’ll be performing with.

I haven’t built such a thing in Sonic yet, and others (Like Romanos) may have already built such a thing and might come along and share it. Until then, OP is offered a little tour into a few possible best practices when setting up Scores that will better yield something ‘closer’ to the expected/desired results when moved over to a ‘different instrument’ in a ‘different setting’. The ‘concepts’ of setting up a standard ‘general MIDI’ file can certianly be adapted and applied to remote control of organ consoles.

I’m not yet familiar with that specific make of organ/console, but I have seen and used enough to know that they quite often can store stop groups and such that can be called up via MIDI Program Change. They can often accept a pretty broad range of continuous controller events to operate shutters, rotors, valves, slides, dampers, and all sorts of ‘unique and one of a kind’ goodies that might be incorporated into the instrument.

What I had to offer at the time I saw OP’s question, are a load of concepts in how to establish a workflow that will yield ‘accurate/predictable’ outcomes when rendering a MIDI file; while also introducing the concept that once you build something like an ‘expression map’, it can be saved/exported, and reused in new projects later.

Tapping into even a fraction of the potential of many of the remote controllable organ consoles out there will be far more involved than my little 'Let’s render a ‘GM I’ format version of an old Symphony. Wander around the neighborhood…see where a few of Dorico’s tenants are living. Once a user has met those tenants, how to get them involved in the organ performance should soon begin to make sense.

1 Like

No, no, no, don’t change a thing @Brian_Roland.

Your posts are deeper and more thorough than anybody else on the forum.

3 Likes

Yes, agreed.! Please, keep posting exactly as you feel/wish @Brian_Roland

Always so many helpful details and often missed ‘concepts’ explained and illustrated in your efforts. I for one, don’t thank you enough… Both here, and over in Cubase/Nuendo land too… :wink:

This morning I found a moment to read a bit about this “Hauptwerk” console.

Less than 3 minutes starting on page 323 of the posted Operator Manual for the most current version, and I can already see that My 15 minute ‘audio engineering’ tutorials above don’t even begin to scratch the surface on using MIDI to control Hauptwerk.

Continuous controls (expression/crescendo pedals, sliders/knobs)
Hauptwerk's virtual continuous controls can respond to any of the following MIDI event types:
• MIDI control changes (most common).
• Ahlborn 9-stage crescendo (program changes 64h-6Dh).
• Ahlborn 11-stage crescendo (program changes 64h-6Fh).
• Ahlborn 24-stage crescendo (program changes 64h-7Ch).
• Generic MIDI varying program changes.
• MIDI RPNs (including support for ‘high-resolution values sent as MSB/LSB pairs).
• MIDI NRPNs (including support for ‘high-resolution values sent as MSB/LSB pairs).
• MIDI key after-touch (some Hoffrichters).
• MIDI channel after-touch.

Seems to me someone could put together a 9 week/4hour post graduate level course on this instrument and still not have enough time to cover what this instrument console can do, and how to get the most out of it.

The same can be said for Dorico…very powerful software with tons of ‘open ended’ flexibility.

It can theoretically use everything covered so far in this thread, plus a ‘whole lot more’.

I’m even seeing things that Dorico can’t do yet (at least not without a LOT of extremely time consuming manual interventions that cannot be easily duplicated/scripted/automated with ‘automatic logic’) without some ‘third party helper’ applications/plugins, and access to a lot of information on how the target performance system has been designed and setup to work in that building. Much of it may well be ‘unnecessary’ to know much about and consider when exporting performance sequences, or have duplicate or alternative options that Dorico CAN easily start applying right this minute.

Personally, if I were going to be scoring and attempting to export actual ‘performance sequences’ for this instrument, I’d be requesting access to a Hauptwerk setup of my own to explore (both on and off site). I’d attempt to set up something modeling pretty close to a 1:1 duplicate of the target system where possible (no better ‘reference’ than a duplicate model of where the pieces will ultimately be performed).

The possibilities involve some pretty advanced knowledge and practice with lower levels of how MIDI functions, and how Dorico can shape those lower level ‘techy’ aspects of its sequencer output.

Forgetting about this specific instrument for a few exercises, and doing a few exercises in ‘basic general MIDI concepts’ with a much simpler general MIDI player seem, in my mind, to be something of a prerequisite to eventual ‘Mastery’ of a console/instrument-host like Hauptwerk.

It may well be that whomever designed and set up the target console has provided OP some sort of ‘tech writer’ on rendering good sequences for the instrument. He might have even been provided instrument profiles and such specifically for Finale that just ‘takes care of things’ for a composer automatically, and well enough to get a nice translation.

If OP (Joel?) has that kind of information and is willing to share it (particularly any best practice instructions, and/or instrument profiles and such he might have been using in Finale), I think we could help him set up a nice Dorico project template that’d eliminate a lot of the low level techy involvement being covered here.

If Romanos doesn’t come along and save the day, I’m willing to help build such a template.

My apologies Brian but I wasn’t referring or even thinking of your post at all. The OP had tagged me directly and I was slow in responding relatively to the pace of things here lately.

The context (in my head at least) was his post to me. I was saying that James was a better person to ask than me, which is firmly true because he’s quite the Hauptwork enthusiast and it seems to be quite the system - so if there is something unique to Hauptwork he would know.

And like a lyric line can play around in your head I thought - or you know, maybe he’s just a better person than me period. :slight_smile: I do actually admire what I know of him from his interactions here.

1 Like

I must need more coffee, nicotine, or ‘something’ this week.

It’s about time for a little midlife crisis. Should I get a Corvette, or a new musical toy? laughing

2 Likes

Coffee - the nectar of life. I’d add “or an airplane” to your list, but my wife isn’t exactly convinced …. Yet. :smiling_imp:

1 Like

Sorry I’m late to the party. I am indeed a HW user, but, truth be told, 99% of the time, I use the “silent” template in Dorico, and then I go to my organ console and play in my parts the real way whenever I make recordings.

I have been able to point Dorico to HW for a few simple things, although this is typically for something very simple that doesn’t involve much by way of registration changes and whatnot. Any time I’ve wanted to do any triggering, I’ve just hit record in HW, had dorico start playing the notes, and then triggered piston changes and whatnot manually myself.

One thing you have to have is the Advanced version of Hauptwerk to do this at all, since the HW/VST link is only accessible from the advanced version.

As @gdball mentioned above, you can assign channels for playback if you know what HW requires. And as Joel mentioned, one does not run HW from directly within Dorico; one runs it in parallel and lets HW be HW. The “VST link” is essentially a HW in-built equivalent to virtual midi patch cables.

I only have the basic version of HW at work, and my advanced setup was totally torn apart a few weeks ago since we just moved from another state, so it will be a while before I can circle back to this to remember what I did last time.

In the meantime, here’s another thread on this topic which has some helpful information:

1 Like

Thanks everyone, especially Brian, for his thoughtful, thorough reply.

As it happens I do have a 3-manual + pedal Hauptwerk installation. I can play it live, or I can play the MIDI files I bring over from Finale. I do not use or need the complicated program changes and other things HW can do, because when I play back a MIDI file, I register the organ in real time as a professional organist would do. All Finale’s MIDI files are doing for me is giving HW notes at the right pitches at the right times, and I get the sound I want by drawing stops that are appropriate to the piece. This playback is what I record for church services. I do it this way because while I am an amateur organist and am very familiar with the instrument, many of the pieces I include in services are far more complex than I can play. If I could play everything live, I would, but being able to let HW do the playing is the next best thing.

I have followed the screen shots, but still my Dorico MIDI files have channel 1 for the manual, and channel 2 for the pedal - or channels 1 and 2 for 2 manuals, and channel 3 for the pedal. The channel numbers do not match what I set.

Romanos,

I’ve been using Advanced Edition since HW IV. I’m at VIII now. You seem to be able to get Dorico to send notes to Hauptwerk on the channels that it requires - 1 for pedal, 2 for Great, and so on. No matter what I try, the channels in my Dorico MIDI files are incorrect. I’m not looking to do registration changes or the like; I register my HW organs in real time as it plays my MIDI files. At least that’s how it has worked with Finale. So far, with Dorico I have to manually edit the MIDI files and change the channel numbers to the ones HW requires, save the files, and then play them.

To be clear, I don’t use the VST link because on my PC I can’t have notation software and HW running at the same time. I run Windows 11, and HW takes sole control of my audio output device. If I have Finale open, HW can’t start. I presume the same this will apply to Dorico, because on startup I see Dorico grab my ASIO output, which I set up HW to use. I’ve been exporting MIDI files from Finale, opening them in HW, and playing them that way since 2022, and it’s not a big deal to me.

I am on mobile now so can’t type much.

I might be able to help get multiple audio clients working for you.

I can revisit that when I have a real keyboard to type on.

On your channel issues, would you mind posting a partial score so we can see how you are setup?

And you do truly remarkable work, Brian! I am always in awe of the depth and richness of detail you offer.

I wonder if a nice compromise that would allow forum members to continue benefitting from your insights while at the same time keeping things more “scrolling friendly” would be Discourse’s Hide Details feature?

2 Likes

Would be nice. Maybe have posts more than a few lines default as ‘collapsed’ with a ‘see more’ botton?

(Do you realize that’s already available in the cog at the R end of the post editor frame?)

1. (With incorrect spaces separating the (square) brackets from the “code” so it shows the markdown format):

[ details=“Summary” ]
Amazingly explained step #1.
[ /details ]


2. (Properly formatted looks like this):

Summary

Amazingly explained step #1.


3. Wait, why does Discourse put “Summary” there when it really means the exact opposite??


4. Let’s try again, replacing “summary” with my own text:

Step 1

Amazingly explained step #1.

Never knew. I’ll try to practice with that in the future.

1 Like

It’s a cool feature. I like it for when I want to go off on tangents like analyzing a Mozart song well along in a 6-year, multi-hundred-post thread originally started simply to ask whether there’s a parallel checker in Dorico. :smirk:

Use of it in your more disciplined, on-topic posts with step-by-step instructions in actual response to the OP would both help the reader digest multiple detailed steps and be morally superior to mine.

P.S. — I truly cannot believe there’s anything I know that you don’t!

1 Like

To be honest, I build these things as I go, walking though it myself and testing to check tht it’ll work.

I try to answer OP quetions directly and briefly FIRST, then go off on the’extras’.

Going deeper into formatting posts will take practice. Untill I learn how, it could take me longer to ‘chunk’ this stuff than it does to snap the shots and paste them in.

I’ll work on it. Sometimes I have more time to spend on forums. Others, I migt go ‘dormant’ for months.

1 Like

…to our temporary detriment. But then, we know you’ll be back! “Keep on keepin’ on!”

I think I might have an idea of OP’s problem. Suspect it has to do with multiple voices on a single stave. Voice colors might help.

If we get a score sample we’ll know more.

Actually, it’s best if you type it all and load in the pics/files first, then add the chunking [details] code at the very end. Otherwise the preview frame keeps closing the chevroned section(s) as you type. Quite an annoying experience. (Any uploaded pics and files will also be hidden when sections are collapsed.)

1 Like