Jump to content

Instrument definitions! Oh boy!


Recommended Posts

No, I'm not supplying any, I'm going to be once again attempting to understand the process in order to create one. Specifically one for my newly-acquired MDrummer. MDrummer is one of those drum machines where MIDI notes trigger pads and also patterns, and I want to map it out so I can program beats in the good ol' PRV. I am amused by the official documentation's encouraging yet authoritarian tone and would like to share in my amusement. Quoth the Reference Guide:

"Creating instrument definitions
Cakewalk lets you create and edit instrument definitions. To create an instrument definition, you must answer these types of
questions
:"

Emphasis mine. Sounds pretty serious, the docs obviously want you to have your doo-doo together before you even TRY to create an instrument definition. I will attempt to answer them one by one.

1. What are the names of the patches in each bank?

"Patches?" I just want to make the kick drum be labeled "kick drum" when I'm using the PRV.

2. Which note names should be used for each patch?

Note names for each patch?? I just want to give names to the notes. I don't want to give different note names for each patch. The instrument uses a bunch of different patches, but they all have C1 as the kick drum. A synth can have a piano patch or a string patch but they both use the same note names, right? Same thing but I want it to be "Kick" instead of "C1"

3. What are the names of the MIDI Controllers for this instrument?

Um, names of MIDI controllers? Still nothing about assigning a name to a MIDI note, which is kind of what I thought this was about. I'm using my trusty ol' Yamaha CS6X as my main MIDI controller, but I sense that that is not what is being asked. It has knobs, keys, and a mod and pitch wheel though. I've had it for over 20 years and never named it. Some of my guitars have names, but they're not MIDI....okay, I'll shut up now.

4. Which RPN and NRPNs are available on the instrument?

Which what?? I could not be more confused right now.

5. Which Bank Select method does the instrument use?

Oh SNAP. Make a liar out of me instantly, eh? I'm not even going to try with this one. "Same one we all use: the one with the most heartwarming TV commercials."

6. To collect this information, you need the MIDI documentation for your instrument.

MIDI documentation? As in the manual? It's all supposed to be somewhere in the instrument's manual? Are you familiar with MeldaProduction's documentation? He's like this superintelligent Star Trek giant brain person. "I find your human language too....limited...to convey the...complexity of my...ideas." Just hang on while I crawl off and die.

 

Now, having failed to gather a single answer to these "must answer" questions, let's see how many of the actual steps I can fail to follow.

Here’s a general outline of the steps you must follow to create an instrument definition:

1. Create a new instrument in the Instrument tree.

Okay, there's a diagram with "Instruments tree" indicated. Plural. I'll assume typo. So....right click, I guess? "New Instrument." Super! There we go. "MDrummer." <enter> Hey! It's even got all that NPR stuff filled in already. Starting to feel like this might work.

2. Create any new name lists in the Names tree that are required for the instrument.

I do want to give names to notes. I guess that's done in a "name list." Okay, right click on Note Names....okay, Add Note Names List, ooh, call it MDrummer, yeah. Now how do I actually assign the note names? Right click MDrummer....Add note name! Okay, 0=0. I can see that it understands a bit of algebra. So I guess that one by one I'm going to populate this list with name assignments in the form of <MIDI#>=<note name>. It's kinda like if Drum Maps got in a transporter accident with RegEdit. That's a lot of right clicking and typing! But at least I have the steps down.

3. Drag name lists and possibly a bank select method to the new instrument from the Names tree.

Okay, maybe this is a way to not have to right click and type quite as much? What do I drag from where to where? I see a whole lotta Patch-y/Bank-y stuff on the left side but nothing that looks like just note names, and the right hand box doesn't seem to like me trying to drag and drop vertically....

4. Close the Define Instruments and Names dialog box.

Done.

  • Like 1
  • Haha 3
Link to comment
Share on other sites

7 hours ago, Starship Krupa said:

I am amused by the official documentation's encouraging yet authoritarian tone

Hit the proverbial nail on the head there with that one! -Maybe it was written by another one of those "superintelligent Star Trek giant brain person" types you mention. ?

It has taken me years to learn some of the "basic" original MIDI programming terms & uses, beyond making keyboard "a" set to channel "x" plug in and connect with synth "b" on channel "x or is it y"...   And we haven't even begun to see how MIDI 2.0 is going to add to it!  -I was just getting the hang of NRPNs - a few years ago now,   -jeez!!

I am still stuck in the middle of editing some of my Abbey Road Drummer and SD3 definitions - the ones that don't really follow the basic "pattern" that you would think, or have been published (at least when I try them)... It takes so much copy & paste, looking at the darn routings in the synth... But well, I still use the heck out of the ones I got working!

Edited by JnTuneTech
  • Like 1
  • Haha 1
Link to comment
Share on other sites

I've been spending more time with the documentation. Unfortunately, none of it is helping. I feel even more puzzled.

What I'm trying to do is make custom names show up in place of the piano keys, to be used with MDrummer. I would like to start with the stock GM Drums because most of the assignments are the same, I'd just need to change some of them.

Should this be done with a text editor? Should it be done in the Define Instruments and Names dialog? If "text editor" is the answer, what file do I edit?

Another question. While poring over the documentation, it finally came to me that all this instrument definitions stuff seemed to be really oriented toward using external hardware synths, not VSTi's. How much of it is applicable to VSTi's?

Bonus question: I tried making a MIDI track with no synth associated, with its output set to be the input of my MIDI interface, and I set it to Ch. 10, which I had set in "Add Instrument Definitions" to General MIDI Drums. Some interesting things happened, like the notes in PRV turned diamond-shaped instead of rectangular. I kinda liked it. Is there some way to make that happen for a soft synth?

Link to comment
Share on other sites

5 hours ago, Starship Krupa said:

Another question. While poring over the documentation, it finally came to me that all this instrument definitions stuff seemed to be really oriented toward using external hardware synths, not VSTi's. How much of it is applicable to VSTi's?

As I was reading your post yesterday I was pondering all this, Now I read this statement and I see what is true. I do believe that they are only for external hardware. This is because it saves you pushing buttons on the hardware to find a sound. You just dial in the sound from Cakewalk using the track inspector.

VST instruments for the most part are not GM midi and don't use the track inspectors bank and patch system.  Only the TTS=1 will respond to patch changes, at least that's my experience.   You have to change the patches in the VST interface. 

 Example If I have a downloaded midi file and it is GM it will have patches and the TTS-1 will play those GM sounds.  Say a Clean Guitar and TTS-1 will play a Clean Guitar. I insert Strum Session and re assign that midi track to it and forget to change the patch number in the track headed but Strum Session will ignore it and the default Acoustic guitar will play. I'm pretty sure that Xpand2, Dim Pro behave the same way. For sure Addictive drums seems to ignore all the sys exclusive and other midi messages it will be bombarded with. Thank goodness for that. I still delete all the extra events in the Event list and track header anyways. 

So instrument definitions you are looking for are in the menus of the VST and the track inspector is not involved as I would believe for the majority of VST instruments. 
 

Edited by John Vere
Link to comment
Share on other sites

I noticed that one of the things mentioned in the original post, you wanted to see the name of the drum sound in PRV.  For that, using a drum map is useful. I set up the drum map using the area of the keyboard I want to use & assign the names of the sounds I want to use. The nice thing about the drum map is that you can reorganize which keys triggers a certain drums sound. It works though it's not super user friendly. Once it's set up up you can save it & not have to deal with it again. I usually play my drum part live on the keyboard so this is very useful.

Not sure if that helps with your entire question though.

  • Like 1
Link to comment
Share on other sites

9 hours ago, Starship Krupa said:

I've been spending more time with the documentation. Unfortunately, none of it is helping. I feel even more puzzled.

I can sympathize, truly. One of the least user-friendly features, unfortunately, at least in creating & modifying.

It's been some time since I got my reference links together - I will see if I can find some time today and look for what I managed to source on editing format & rules for .ins files. -And I definitely use Notepad myself, but any programmer will have their favorite text editing app. Some can really streamline things, but you would have to ask around. -But .ins files are really just a rather simple text file, you don't want to accidentally introduce anything other than text, so don't use Word, for instance.

9 hours ago, Starship Krupa said:

How much of it is applicable to VSTi's?

.ins files, -for me-, have 2 major uses:

#1 - if you want to change the PRV to display the keyboard notes as names you define. -That works for any MIDI track, regardless of output. -VSTi, no output, -whatever.

#2 - they are definitely originally designed for - mapping to an assigned MIDI output, so that when you select that output choice in a track, the PRV will automatically use that note naming, and external instruments with patches & banks will match.  -But you don't have to use that at all. It's also not necessary to have multiple banks, or name very possible note, bank, etc.

Also, as to the mapping that causes "diamond shaped" notes in PRV - it is a one-line choice in the .ins file, as to whether the patch is designated as a rhythm instrument (diamond shaped notes), or notes (normal full note view).  -Again, I need to find my documentation links, I'm just going off of memory here at the moment. -And maybe someone else will chip in before I do - this place is full of experienced folks!

-As to using the bank/patch features - it is mostly a legacy thing, and will only work probably with GM-compatible VST2 synths (and external gear, of course), as VST3 seems to have done away with GM MIDI bank/patch features entirely. That has really taken a lot of use out of these types of things, so they will probably be going away, or at the least, being buried like the documentation is now!

 

Edited by JnTuneTech
clarifications... that meant what?
  • Thanks 1
Link to comment
Share on other sites

So, - I (temporarily) gave up trying to find "legitimate" (or smarter than me) source links for what I had used to edit & create instrument definitions, years ago, but here's a simple starter you can try first, and hopefully also start learning more ourselves! -And, I noticed I had a few errors in some of my past complicated ones, that didn't show up in the ways I normally use them, so I'm planning on using this topic as a reminder to clean those up anyway!

I am going to use a trimmed version of the basic RME TotalMix .ins file I posted the other day for this. -As I recall, these were the minimum lines that it needed to be, at the time, for Cakewalk to recognize the file and allow me to import it. It only helps change the view in the PRV when desired, mainly. -Other available options may be discussed later. Perhaps this can help you create a basic map for your own drum or other instrument using this option.

 

First - if you want to try it, backup your current Master.ins file. Just in case. -I've never had anything major happen to anything else doing these, and they are easily removed, but still, just back up before you experiment, just in case. And, never change that file manually with CbB running.

 

Here is the plain text for the example - I would advise copying & pasting it into a text editor, to make sure no Web or browser formatting gets added.

Start copy after this line (there is one blank line):


; ----------------------------------------------------------------------

.Patch Names


[RME TMix MCP]

; ----------------------------------------------------------------------

.Note Names


[RME TotalMix Ctrl]
16=Mute f1
17=Mute f2
18=Mute f3


; ----------------------------------------------------------------------

.Controller Names


[RME TMix Control]
16=Pan1 (L65, R1)
17=Pan2 (L65, R1)
18=Pan3 (L65, R1)

; ----------------------------------------------------------------------

.Instrument Definitions


[RME TotalMix Ctrl]
Control=RME TMix Control
Patch[*]=RME TMix MCP
Key[*,*]=RME TotalMix Ctrl

End copy before this line.

 

-Hopefully this text isn't against any forum rules.  -In any case, you can use the text above as a template. Just change the names & numbers to suit your test. Then, you can remove the test instrument definitions afterwards if you want.   -OK. So, going down the filled -in file sections, from the top:

 

In  the example, for ".Patch Names",  -I basically botched this section, to make CbB accept it, but it works anyway. -Again - this is a minimum-condensed set of commands, lots of stuff is missing, by design-. I didn't really need a patch or bank for my purposes.  -Anway -change that naming (inside the brackets) to whatever suits your needs. It will still be needed to match the final section below it.

In the example, for ".Note Names",  -I only put 3 note names, by design. you can add or subtract. -The bracketed section needs to be the same text that you will be calling - basically the instrument,  in the bottom section. For this exercise, it is about the most important part!  Then, immediately below that, note numbers and the names you want to give them - follow in numerical order. -Maximum of 128 numbers, use only numbers you want named, and keep them numerically contiguous.

In the example, for ".Controller Names"  -I added that for testing. It does allow me to add the controller to the PRV, and then is identified thereafter in the controller display, and for automation. -Without any extra info lines, it works for RPN level port numbers, and the usage is the same as the previous note names section.

In the example, for ".Instrument Definitions"  - I used ONLY the basic parts. It wouldn't import if I left anything more out. -I know that's a terrible explanation, but well, there you are. It works for me!  -The basic bracketed sections must exist, and match the corresponding names in the sections above. -"Key.." actually refers to Note Names, but most of the rest you can match fairly easily.

 

Also, since @Starship Krupa mentioned the "diamond" note display: To change to that (instead of notes that show length & such as normal), add the following, below the "key..." line:

Drum[*,*]=1

(That basically indicates all PRV notes in the track  -to which that output-patch-keyboard layout is assigned-  are to display as drum or rhythm format (diamond), instead of the default. -In practice, this only works for me if it is assigned to any Cakewalk MIDI output(s) and channel(s), and then you select one of those in your MIDI track properties. It won't work by just changing the default assignment view in the PRV, for instance. -But you can easily fake it - if you use an output you really don't have anything connected to, temporarily, when you are editing MIDI for instance.)

 

So, basically, the simple version here, allows me to import and optionally assign these choices. You can also remove them, and I think replace them with updated versions easily from the Cakewalk Preference interface. -But being bold, I also sometimes just edit the Master.ins file (with CbB closed), and also look at all the other pre-populated material for learning.  -Also, it won't hurt to start the editing in a basic text file, and then copy or change the file extension as needed, when you are ready to apply it.  -Copy any .ins file, rename the extension to .txt, -observe & experiment! -Carefully,  of course!

  • Thanks 1
Link to comment
Share on other sites

Thanks for posting the topic @Starship Krupa - in fact, I just got fired up more by it now - and found some note number-to-names data that I can extract easily, from a different DAW mapping someone created, and copy right into my missing note number sections for some Abbey Road kit patches I use a lot...   Oh, it's still a lot of copy-paste, but afterwards I can program drums so much easier in the Cakewalk PRV!   All I can say is -Keep at it!

  • Thanks 1
Link to comment
Share on other sites

On 4/20/2023 at 8:27 AM, Starship Krupa said:

No, I'm not supplying any, I'm going to be once again attempting to understand the process in order to create one. Specifically one for my newly-acquired MDrummer. MDrummer is one of those drum machines where MIDI notes trigger pads and also patterns, and I want to map it out so I can program beats in the good ol' PRV. I am amused by the official documentation's encouraging yet authoritarian tone and would like to share in my amusement. Quoth the Reference Guide:

"Creating instrument definitions
Cakewalk lets you create and edit instrument definitions. To create an instrument definition, you must answer these types of
questions
:"

Emphasis mine. Sounds pretty serious, the docs obviously want you to have your doo-doo together before you even TRY to create an instrument definition. I will attempt to answer them one by one.

1. What are the names of the patches in each bank?

"Patches?" I just want to make the kick drum be labeled "kick drum" when I'm using the PRV.

2. Which note names should be used for each patch?

Note names for each patch?? I just want to give names to the notes. I don't want to give different note names for each patch. The instrument uses a bunch of different patches, but they all have C1 as the kick drum. A synth can have a piano patch or a string patch but they both use the same note names, right? Same thing but I want it to be "Kick" instead of "C1"

3. What are the names of the MIDI Controllers for this instrument?

Um, names of MIDI controllers? Still nothing about assigning a name to a MIDI note, which is kind of what I thought this was about. I'm using my trusty ol' Yamaha CS6X as my main MIDI controller, but I sense that that is not what is being asked. It has knobs, keys, and a mod and pitch wheel though. I've had it for over 20 years and never named it. Some of my guitars have names, but they're not MIDI....okay, I'll shut up now.

4. Which RPN and NRPNs are available on the instrument?

Which what?? I could not be more confused right now.

5. Which Bank Select method does the instrument use?

Oh SNAP. Make a liar out of me instantly, eh? I'm not even going to try with this one. "Same one we all use: the one with the most heartwarming TV commercials."

6. To collect this information, you need the MIDI documentation for your instrument.

MIDI documentation? As in the manual? It's all supposed to be somewhere in the instrument's manual? Are you familiar with MeldaProduction's documentation? He's like this superintelligent Star Trek giant brain person. "I find your human language too....limited...to convey the...complexity of my...ideas." Just hang on while I crawl off and die.

 

Now, having failed to gather a single answer to these "must answer" questions, let's see how many of the actual steps I can fail to follow.

Here’s a general outline of the steps you must follow to create an instrument definition:

1. Create a new instrument in the Instrument tree.

Okay, there's a diagram with "Instruments tree" indicated. Plural. I'll assume typo. So....right click, I guess? "New Instrument." Super! There we go. "MDrummer." <enter> Hey! It's even got all that NPR stuff filled in already. Starting to feel like this might work.

2. Create any new name lists in the Names tree that are required for the instrument.

I do want to give names to notes. I guess that's done in a "name list." Okay, right click on Note Names....okay, Add Note Names List, ooh, call it MDrummer, yeah. Now how do I actually assign the note names? Right click MDrummer....Add note name! Okay, 0=0. I can see that it understands a bit of algebra. So I guess that one by one I'm going to populate this list with name assignments in the form of <MIDI#>=<note name>. It's kinda like if Drum Maps got in a transporter accident with RegEdit. That's a lot of right clicking and typing! But at least I have the steps down.

3. Drag name lists and possibly a bank select method to the new instrument from the Names tree.

Okay, maybe this is a way to not have to right click and type quite as much? What do I drag from where to where? I see a whole lotta Patch-y/Bank-y stuff on the left side but nothing that looks like just note names, and the right hand box doesn't seem to like me trying to drag and drop vertically....

4. Close the Define Instruments and Names dialog box.

Done.

Maybe the manual should have this pre-requisite for that part:
- Must have worked on the implementation of MIDI.

  • Like 1
  • Great Idea 1
Link to comment
Share on other sites

OK - getting a little bit better on the examples, all while I am adding some new drum synth default mappings and re-learning the .ins formatting that works for me.

So - in my initial simple example (above, and posted more completely in the Instrument Definitions sub-category here, I left things out on purpose. But I want to show a more clearly structured piece, so anyone reading can get it working a bit more completely.

In the example (above), for ".Patch Names",  -I have updated it a bit.

----------------

.Patch Names


[RME TMix MCP]
0=RME TMix Ctrl In

-----------------

-This helps CbB use the file a bit better, -as long as you match the bottom section of the .ins file, like in this screen cap:

CbB_example-MIDI-Track-wRME-basicV2-rtng-FIXED_annot_2023-04-22.png.5831d3f1f3c82de665b3abb720502bb5.png

Now, I don't particularly use all of what this does, but if you are experimenting, it helps illustrate the structure better.

When you select a MIDI output - which you have already mapped in Preferences, The Instrument Definition [Name] is used in the MIDI Channel dialog. The bank  [Name] listed in .Patch Names & referenced in the bottom section, is what is available then in the Bank= dialog. Then, you can also select the patch name(s) you entered under the bank name... and it all then points the PRV note view to the note names you defined & reference.

-This again only helps if you are using the output section of a MIDI track set to one that is a pre-defined mapped output.   -In order to use just the note map (as I mostly do), it's really just easiest to change the PRV note view preference, on any track (but usually one pointed to the VST it applies to!) manually - and it nicely sticks with the project when it is saved. -I think that change happened in early CbB updates. -Works very nicely for me!

CbB_example-MIDI-Track-wRME-basicV2-rtng_annot_2023-04-22.png.5766907684c6196e03755e351977f9d3.png

-I missed a "0" first time around - only stopped automatic mapping to the PRV notes, but hey!

Edited by JnTuneTech
Was 1 "0" off! Better pic, and of course - Sppp-elling
Link to comment
Share on other sites

On 4/21/2023 at 1:43 AM, Starship Krupa said:

What I'm trying to do is make custom names show up in place of the piano keys, to be used with MDrummer. I would like to start with the stock GM Drums because most of the assignments are the same, I'd just need to change some of them.

Wouldn't a drum map work just as well (or better) for this?

I do have a "legacy" hardware synth, and I do have a .ins file for it which lets me change banks and patches, etc.  I made this .ins file, believe it or not, over 20 years ago, when I first got the synth, and I think this was before Cakewalk even became Sonar.  I remember this being a headache and a half, even though those instructions made a lot more sense back then, and my hardware synth manual made it very clear what the RPNs and NRPNs and whatnot were.  

So I'm super grateful that this legacy tech is still a working part of Cakewalk.  And I'm even more grateful that I'll never have to make another .ins file as long as I live.

  • Like 2
Link to comment
Share on other sites

Yes - @A Tolerable Quietude if it was just about creating drum note mapping, I would totally agree - and am also glad to not really need learning all the fiddling it takes to make a full .ins file for an external MIDI device. You aren't wrong about any of that!

Instrument Definitions, and Drum Maps are similar, but with different primary goals. And in fact, they both will work together great with external hardware. And both choices are fine. They both can take a lot of time to set up too!  -But when done, they sure can be a helpful tool.

On 4/21/2023 at 12:43 AM, Starship Krupa said:

What I'm trying to do is make custom names show up in place of the piano keys, to be used with MDrummer. I would like to start with the stock GM Drums because most of the assignments are the same, I'd just need to change some of them.

I guess I got carried away, and should have said this 1st  @Starship Krupa - my bad.    -So, bypassing all the heavy (and for your case - useless) .ins file formatting, you can simply add custom note maps to the Master.ins file on your system at any time (again safest while the DAW is not running!) And then, use them to help speed putting notes in on the PRV - assigned to any synth, virtual or otherwise.   -As an example, I made up a silly one this morning, and here is a screen cap of the result:

CbB_example-MIDI-Track-PRV-NoteName-choices_annot_2023-04-23.png.e11632cca5881168bffc2184fd4de901.png

-BTW - @Starship Krupa the General MIDI Drums (GM) note names are already in the default Cakewalk .ins choices. (-I prefer to use the Roland GS Standard Set for GM drums though, it has a wider range of common percussion and still matches the basic GM set) -We all can assign those at any time, right-click the notes-keyboard in the PRV on the MIDI track you want to change.

Anyway, it's all about workflow, and your choices are whatever is right for you.

9 hours ago, A Tolerable Quietude said:

Wouldn't a drum map work just as well (or better) for this?

-For me-, a Cakewalk MIDI Drum Map is for when I want to route each MIDI note to a destination, or actually multiple destinations, from one track.  -When I want to just name a MIDI track note assignment, I use a section in the Master.ins file, or multiple sections if I want. That's as deep as I guess I should have gone with to start my comments in this post - sorry about that!

I guess I was also assuming the average reader would not be so likely to edit a basically hidden configuration file, and so was attempting to advise how to make a basic .ins file that could be imported through the documented methods in the approved Cakewalk information flow. Again - I digress!  Sorry to clutter the excellent original post so much!!

Edited by JnTuneTech
clarification...
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...