Help script a microKorg panel…

Home Forums General Programming Help script a microKorg panel…

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #68893
    Synthetech
    Participant
      • Topics: 13
      • Replies: 70
      • Total: 83

      Hey all, I’m back after being gone doing other things for about two years..

      in the past dasfaker, msepsis and atom have been immensely helpful in steering me in the right direction to get Ctrlr to do tricks that are pretty cool.. So I’m back again to try and get your guy’s help with a new project..
      I want to try and make a GOOD MicroKorg (uKorg) panel to make programming the uKorg easier than the difficult matrix knobs on the keyboard or the suck@ass “Korg” uKORG editor (it sends an entire dump back to change values! each time!!! for ANY parameter.. even ones that can be CC’d!!).

      Short of it is, I need to be able to load a patch dump into some “memory” of the panel.. use the data to set the knobs/params in the panel.. but I also need to use the dump to ALTER a specific byte.. even down to the bits inside the byte.. then SEND IT BACK to the uKorg so a new value can be changed in a parameter that is not accessable any other way.

      anyway.. I’ve done alot of research and found

      1.. Korg made it a real PITA to access about 1/3 of the params on the uKorg. Even though the uKorg is esentially a MS2000 synth engine… Korg decided to remove the MS2000’s sysex commands to change values to individual params. DOH!
      2. The way the official uKorg editor (written by KORG) changes each parameter value is by sending an entire patch dump of that patch back to it. So you cannot say, tweak the filter cutoff live.. you have to choose a value, then let the editor send then entire patch dump back to the uKorg again before you can hear the change!! GAAHHH!!! that really sucks!
      3. There are MANY params that can be accessed via CC’s, but of course theres many we uKorg users also want to access on the fly that are mostly just “switches” vs. “knobs/sliders”.
      Here’s a direct link to Korg’s OM and MIDI implimentation PDF’s
      http://www.korg.com/us/support/download/manual/0/104/1616/

      anyone know what it is I’m trying to accomplish?
      I’ve done some scripting before, so maybe if I get steered in the right direction… I just don’t know Ctrlr in and out like I use to and the scripting is very vague to me, although I have messed with some C++ and Arduino sketches in the past.

      Thanks in advance for any help/advice!

      • This topic was modified 8 years ago by Synthetech.
      • This topic was modified 8 years ago by Synthetech.
      #68899
      goodweather
      Participant
        • Topics: 45
        • Replies: 550
        • Total: 595
        • ★★★

        Hi,
        I looked at your MK pdf doc and saw that indeed most front panel knowbs are handled via CC then you have a few via NRPN.
        You should be able to build rather easily a panel that will handle that (please look at my Step by step guide post: http://ctrlr.org/forums/topic/ctrlr-step-by-step-guide/
        Then as for others, the best way to learn is to look at others panels (Power08, Virus, Demo panels from Atom…).
        Once you have a basic direct editing panel, you can implement a Load progam method and a Save program function that will read/write each parameter.
        To be able to do that you need to know byte by byte the structure of your sysex dump for a single program. Do you have that?
        If not (I had to do this for the Moog Sub37 and for the DSI Pro2, the Pro2 being much easier), you need to create a basic program where all settings are at zero or some neutral position then move one param to max, dump and save, check with MidiOX or Sysex Librarian which byte changed, document it and redo the same for all params and all possibilities, one by one.
        When you know the structure, you can load and save anything…

        #68917
        Synthetech
        Participant
          • Topics: 13
          • Replies: 70
          • Total: 83

          Thanks for the reply goodweather.

          I have managed to hook up Korg’s editor so that it sends MIDI OUT via a UNO MIDI interface.. that OUT is plugged into the IN on my Ozonic Keyboard’s MIDI IN.. then I have the Ozonic’s OUT (acting as a THRU) patched to the uKorg’s MIDI IN.. then the uKorg’s MIDI OUT goes back to the UNO interface.

          The Ozonic interface is used in Bome’s “SendSX” so I can see live what the uKorg editor is sending out each time I change a parameter, which of course is an entire patch dump.
          I also found it useful to have my dual screen setup with the SendSX stretched across both screens so I can see the entire dump in one line.

          The uKorg MIDI Implimentation PDF manual does show the structure of a dump, but I think they have some errors.. the bytes don’t seem to align properly, but at least they spell out bitwise what is going on when they cram more than one parameter into a single byte.
          So when I go and use a byte that has more than one parameter in it, I will have to do a bitwise operation to extract the value for each parameter.. should be simple enough in LUA to shift the bits…

          I have not had a chance yet to find an example panel to find what I need to do, but it seems I need this to happen..
          Panel can tell uKorg to select a patch..
          loads patch up in the uKorg AND fetches that patches DUMP.
          The DUMP info is used to set all the modulator values… now you can see what each value is before you tweak a control.

          Now here is the tricky part (to me it seems tricky..). The panel can be used to send CC’s/NRPM’s to change values on the fly. BUT, when I want to change a value that requires an entire dump sent back to the uKorg.. I guess I need a method that will: fetch the current patch information, alter the byte in the dump I’m after to change, then resend the dump back to the uKorg.
          Know of any panels that do that??

          #68942
          goodweather
          Participant
            • Topics: 45
            • Replies: 550
            • Total: 595
            • ★★★

            Search for memoryblock in the forum. There are several threads where you will see examples of what people are doing.
            Here are 3 of them:

            #68999
            Synthetech
            Participant
              • Topics: 13
              • Replies: 70
              • Total: 83

              Thank you goodweather for the links and advice on where to search for answers.
              Lots of good stuff there… It will take a bit of study to get my head around how it works and how to make it work for my Korg.

              #69001
              goodweather
              Participant
                • Topics: 45
                • Replies: 550
                • Total: 595
                • ★★★

                Yep, Rome has not been built in one day… So is my Pro2 panel…
                The most important is that things are progressing 😉

                #70208
                Hawkishleader
                Participant
                  • Topics: 1
                  • Replies: 4
                  • Total: 5

                  Hi synthetech, folks.

                  I’m in need of a MicroKorg XL panel – as you say the Korg effort smells and I need one that runs in Ableton….

                  Once Halloween is over (hic) I’ll have a look at making one – I’m working on a panel for my SY85 so I have a tiny bit of experience with panel architecture – which is excellent of course !!

                  I’ll let you know how it much I struggle as I go,

                  Cheers

                Viewing 7 posts - 1 through 7 (of 7 total)
                • The forum ‘Programming’ is closed to new topics and replies.
                There is currently 0 users and 83 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