NoteWorthy Composer Forum

Forums => General Discussion => Topic started by: jonnotes on 2023-11-09 05:06 PM

Title: Elementary question - complicated answer?
Post by: jonnotes on 2023-11-09 05:06 PM
Hello all,

Given I have been a moderately frequent user of Noteworthy over the last 20 years at least, you may find this request for information a little surprising...!

I'm embarking on a new transcription (Elgar's Introduction and Allegro for string quartet and string orchestra, since you ask), and setting up the 13 necessary staves for the various instruments.  Yesterday I set one stave to produce the instrument I wanted, using the Predefined Instruments button, and experimented with playing some random notes - not the right sound.  I then ticked the Send Patch button - no change.  When I then changed the instrument (and maybe back again), a patch number appeared and the sound was then correct.  This (puzzlingly) stayed correct even if I subsequently unticked the button...

In the past I don't remember ever finding this a problem: I've always used a 'standard' Play Back Device - for years the Microsoft thing, now, much more satisfactorily, VirtualMIDISynth from Coolsoft. [Is 'Play Back Device' saying exactly the same thing as 'Soundfont', by the way?] What I have never had to do was investigate the correct patch numbers from a 'Play Back Device' and manually choose them - I've always used Predefined Instruments.

What baffles me is that I can find no reference in any Noteworthy documentation to the correct use of the Send Patch button, nor any definitive guidance anywhere in the Forum.  As with other issues, in 'the community' (which I have always found to be very helpful) there seems to be an assumption that everyone (of course) understands everything up to a certain level, beneath which one will never need to sink to pick up the slow learners or those who need to know the very basics.

I downloaded from the Scriptorium the document called cool_instruction.pdf which admirably constitutes a tutorial in setting up a soundfont and gives enough suggestions of playing around to instill a reasonable working knowledge - whilst still stopping short of explaining what happens if you a) do, and b) do not, use the Send Patch button.  When it moves on to the Select Bank stuff, it loses me - but maybe I don't need to know for my purposes...

Apart from my main request above, I could do with understanding the 'line of command' from Instrument Selection all the way to what the MIDI in my laptop actually acts upon - and the various options for settings along the way that should make it happen.

Hoping no-one will spend hours creating a Lesson Plan for this enthusiastic but somewhat foggy Noteworthy user - but may post some quick pointers to help me on my way.

Many thanks in advance!

Jonathan Norris
Title: Re: Elementary question - complicated answer?
Post by: hmmueller on 2023-11-09 07:07 PM
A very very very reasonable request - however ... ... (a) it is, again and again, hard work to set up an audio rendering pipeline - then, suddenly, everything works - and one instantly loses every inclination to write down what went wrong and why it works now; and (b), everyone has his or her own pet tool landscape, and many try to describe or, on the other side, want to only understand it for their environment: So, a times b times c ... descriptions (a: number of MIDI connectos; b: number of rendering engines; c: number of sound fonts/instruments etc.etc.) want to be written and read. That, of course, never happens.

Ok, after that general whining, I think I want to try a little what's happening with that patch thingy ... exactly because I do not understand it also (but ... it works ... hm).

H.M.
Title: Re: Elementary question - complicated answer?
Post by: hmmueller on 2023-11-09 10:33 PM
Here is high level attempt to start(!) to answer your question(s) - and maybe reveal that I myself do not yet understand many aspects  ::) .

In the attachment, there is a diagram that shows some important objects.

On the left, there are a few NWC staves, with assigned MIDI channels. Multiple staves can send to the same MIDI channel - typically if they "are" the same instrument (e.g. left and right hand of piano). Often, one does that if the channels just sound the same (e.g. soprano and alto of a choir), but this limits more advanced possibilities (like having differing volumes of the sopranos and altos).

On the right, there is a "Playback Device" or "Synthesizer" or "DAW" or "Instrument Container" or ... many other names for this. Such a thing has typically 16 MIDI input channels (but it might be a software that, on the outside "looks like multiple playback devices", each which its own 16 channels ... so if you need more than 16 sounds to be controlled ... ok, later).

Inside, there are multiple "Instruments" or "Players". There are, in a vast generalization, two sorts of them:

Ok - I stop here, for the moment ... might be too confusing, and even wrong, already. Any help?

(Of course, what's missing is the "sound pipeline" that is coming out of the playback device - don't think that that's easy! And, on the left side, one may use "virtual MIDI cables" to make it easier, or more versatile and more difficult, to assign MIDI outputs (like from NWC) to playback devices. So, there's much more where one can fail ...).

H.M.
Title: Re: Elementary question - complicated answer?
Post by: Lawrie Pardy on 2023-11-10 07:00 AM
Hi Jonno,
HM's explanation is pretty good, but I suspect it is too general for your particular use case, so lets address NWC - *Coolsoft VirtualMIDISynth specifically.  I apologise in advance as I'm sure I'll touch on things you already know.

*Actually any MIDI synth that responds to General MIDI data.  Think GM synths and/or softsynths with a GM soundfont loaded.  N.B. someone will probably correct me as that statement is deliberately shortened to avoid confusion.

First a couple of assumptions - you have VirtualMIDISynth installed and working and you also have NWC configured to use VirtualMIDISynth - reasonable as you get sounds...

So let's consider the Instrument patch dialogue:

Right, what happens?
The really important parts are:
Title: Re: Elementary question - complicated answer?
Post by: Flurmy on 2023-11-10 10:23 AM
I try to avoid such "omni-channel" settings as much as possible.
Omni mode? Vade retro, Satana!   :P

A little bit of data adding to the good explications of Harald and Lawrie.

The MIDI standard does not specify which instrument corresponds to every specific patch number; it was left to the single instrument and you had to check every instrument's MIDI patch table.
NWC can help with this if you create an itree list file (*..nwcitree) for each instrument, so you can use mnemonic names instead of pure numbers.
As you can guess, it was a big mess with almost zero portability.

Some years later there was an agreement and the GM (General MIDI) was born.
This standard specifies the basic correspondence between the patch number and the instrument sound for the bank 0 - 0 (the default) so a violin sounds a violin every time a patch #40 is selected (at least for bank 0 - 0). Good.
It also stated that the channel 10 must correspond to the drum kit. (Some old instruments used channel 16.)
In the early instruments you had to set them in "GM mode"; now, since a long time, this is the default.
So NWC defaults to "General Midi.nwcitree" and this is what you see when you click "predefined instruments", unless, of course you select a different .nwcitree. That possibility is still present.

But, as Harald wrote, sometimes you need a sound not present in the General MIDI, so Roland created the GS "standard" and Yamaha created the XG "standard" exploiting the banks different from 0 - 0.
Usually there is a logic behind that. For example: patch number #49 bank 0: "String Ensemble 1"; bank 3: 'Stereo Slow Strings"; bank 8: "Legato Strings"; bank 40: "Warm Strings"; bank 64: "70's Strings"; bank 65: "String Ensemble 3" etc. I think you got the idea.
"Standards"? Ehm...

Many years later arrived the GM2 that "borrowed" the bank 1 from GS and tried to include also something from XG.
It also clearly states that, if your instrument hasn't any specific patch for that bank, then the bank 0 must be used, instead of being silent as often happened before...  >:(
And this is where we are now.

A last note: the patches of the channel 10 (drum kit) don't change the single "intrument" but change the whole drum kit.
  0:Standard Kit
  1:Standard Kit 2
  4:Hit Kit
  7:Room Kit { SC-88 }
  8:Room Kit { SC-55 }
16:Rock (Power) Kit
24:Electronic Kit
25:Analog Kit { TR-909 }
26:Dance Kit
32:Jazz Kit
40:Brush Kit
48:Symphony (Orchestra) Kit
49:Ethnic Kit
50:Kick & Snare Kit
56:Sound Effects (SFX) Kit
57:Rhythm FX Kit
80:Live! Standard Kit
81:Live! Funk Kit
99:Chaos Standard Drum Kit
127:MT-32 Drum Kit
Title: Re: Elementary question - complicated answer?
Post by: jonnotes on 2023-11-10 03:17 PM
Gentlemen!

I have to say that I did have quite high expectations of some useful reponse(s) from the Forum - but this, of course, does not diminish my gratitude to you all for taking time out to address my puzzlement!

I am very happy with Harald's amazingly detailed account of all that goes on inside the MIDI, from the point of view of instructions it receives from Noteworthy.  What is immediately clear from your combined offerings is: the technology is not at all simple; there are terminology issues; there's a history of changes to the MIDI 'standard' over time; and in general a great complexity on offer that might appeal to the sound technician or recording engineer (for example) - but which (thankfully) I don't really need to know about.  I think it extremely unlikely that I shall ever need to know how to address banks of alternatives within a patch.

Incidentally, when recreating Britten's 'Young Person's Guide to the Orchestra' a while ago, I found relatively straightforward the concept of using the VirtualMIDISynth twice as if it were two separate 'instruments' in order to be able to address up to 32 channels and so cover the large number of instruments all playing at once.

Moving on to Lawrie's contribution - there was no need to apologise for the possibility of telling me stuff I already know.  I have said elsewhere that I would never object to what the writer would feel was a condescending approach: (s)he couldn't know me well enough to assess my level of knowledge/ignorance, and having it pitched it low would always be my preference.  I feel Lawrie's instructions will stand me in good stead hereafter - and I'm already happy with Transposition... ;D

My take from all of this is that, on a Need To Know basis, I will probably always have the Send Patch and Send Bank Select buttons checked, keep zeroes in the MSB and LSB fields, and continue to select Predefined Instruments as before.  Although I do compose occasional pieces, I'm never tempted to stray into experimentation with 'unreal' sounds - and my other use of Noteworthy is to recreate live orchestral sounds from conductors' scores.

Finally, thank you, Flurmy, for your additional notes on the history of the MIDI specification - probably happily sailing a little over my head, but still there should I need to refer to it in some unimagined future exercise!

In conclusion, the way is now clear(er) for actual musical (re)creation to proceed.

Thanks, all, once again! :)

Jonathan