Demystify Cakewalk ins files

Home Forums General General MIDI discussion Demystify Cakewalk ins files

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #115312
    JT64
    Participant
      • Topics: 11
      • Replies: 23
      • Total: 34

      Some things pretty straighforward but when it comes to drum patches….

      .Patch Names

      [N364 GM Drums]
      0 = GM Kit
      16 = Power Kit
      24 = Dance Kit
      25 = Analog Kit
      32 = Jazz Kit
      40 = Brush Kit
      48 = Orch Kit
      64 = Perc Kit

      It is pretty clear to me although it does not say anything about the banks just programs “in the bank”
      A bit later when banks should be loaded it get confusing….

      .Instrument Definitions
      [KORG N364 Programs]
      Control = N364 Controllers
      RPN = N364 RPN
      //I removed some other banks standard 0,1,2,3….
      Patch[7169] = N364 Prog GM
      Patch[7937] = N364 GM Drums
      Patch[ * ] = 0. .127
      Key[7937, 0] = N364 GM Kit
      Key[7937, 16] = N364 Power Kit
      Key[7937, 25] = N364 Dance Kit
      Key[7937, 26] = N364 Analog Kit
      Key[7937, 33] = N364 Jazz Kit
      Key[7937, 41] = N364 Brush Kit
      Key[7937, 48] = N364 Orch Kit
      Key[7937, 65] = N364 Perc Kit
      Drum[7937, * ] = 1

      Now i do know howto load the “drum ang gm” bank but i do not see how it relates to cakewalk ins files, because somehow the above must be used to load banks.

      What i find utterly confusing is that DRUMS and GM bank is the same although DRUMS use number above 127. But how does it relate to this in the insfile, it seem like separate banks?
      Patch[7169] = N364 Prog GM
      Patch[7937] = N364 GM Drums

      The reason i ask is that i read in ins files with “javascript” to use for synth control, but to get any use beyond load just load programs, and standard banks (0,1,2,3) i must somehow decrypt the cakewalk instrument messages above.

      Below is a little snippet of my code to set GM and DRUM in javascript. How does this relate to 7169 and 7937 in ins file is the mystery i would like explained/solved, as you see i use the GM bank for setting the drums and it apparently work. It would be nice if i could generalise “understand” the conversion so i can use the ins file fully to load “patches and banks”

      So please anyone? I attached a bank instruction from Korg that i use.

      //This i use to set drum bank and GM bank “which in reality seem to be the same? above / below 127”
      if (bankNr==1){selectProgramMode();GM=56;bankNr=0;}
      if (bankNr==0){selectProgramMode();GM=62;bankNr=0;}

      //CTRL 0 message
      settingChange = [176,0,GM];
      outportarr[outportindex].send(settingChange);
      settingChange = [176,32,bankNr];
      //CTRL 32 message
      outportarr[outportindex].send(settingChange);
      //This sends the program message
      settingChange = [192,programnumber];
      outportarr[outportindex].send(settingChange);

      Attachments:
      You must be logged in to view attached files.
      #115314
      JT64
      Participant
        • Topics: 11
        • Replies: 23
        • Total: 34

        Another thing, to change program in GM or DRUM mode i have to send the full bank message, so i am probably doing something wrong in GM and DRUM mode. One would think that they should react to “a single program” change message, but they do not then need the CTRL 0 and 32 message coming with change.

        Probably i do it all wrong.

        #115317
        Possemo
        Participant
          • Topics: 14
          • Replies: 638
          • Total: 652
          • ★★★

          Just a guess about the Cakewalk mess:

          The “change-to-bank3” message looks like this [b0 00 3e]

          3e in binary is 111110

          7937 in binary is 1111100000001. The upper 6 bits are 111110 = 3e
          you could take some zeroes from the lower bits for the 2nd byte = 00

          The same with 7169 – in binary 1110000000001. Upper 6 bits = 111000 = 38 = the needed value.

          Well, pretty messy…

          About having to send bankchange in order to get GM patches: If the synth is NOT in GM-mode I guess this is how it was intended by Korg. You can put the synth into GM-mode by sending this message: f0 7e 7f 09 01 f7. If I get it right this is a standardized universal message for all GM capable synths. I haven’t tried this mode but in theory you should get all GM-patches by just sending program-change from 0 to 127.

          #115322
          JT64
          Participant
            • Topics: 11
            • Replies: 23
            • Total: 34

            Well i checked the midi chart so it is the first byte that change, well i do not like it whole thing is utterly confusing.
            1100nnnn 0ppppppp Program Change. This message sent when the patch number changes. (ppppppp) is the new program number.

            So
            11000001=193
            and then the program message well i guess i have to try.

            • This reply was modified 4 years, 9 months ago by JT64.
            • This reply was modified 4 years, 9 months ago by JT64.
            • This reply was modified 4 years, 9 months ago by JT64.
          Viewing 4 posts - 1 through 4 (of 4 total)
          • The forum ‘General MIDI discussion’ is closed to new topics and replies.
          There is currently 0 users and 64 guests online
          No users are currently active
          Forum Statistics
          Threads: 2,495, Posts: 17,374, Members: 77,605
          Most users ever online was 12 on January 22, 2019 3:47 pm
          Ctrlr