OK got as far as I can, Have some questions about current patch.

Home Forums General Programming OK got as far as I can, Have some questions about current patch.

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #5478
    Bomma72
    Participant
      • Topics: 20
      • Replies: 68
      • Total: 88

      So I am trying to get the current patch from my MKS-50 and then assign the value.

      From my experience with programming I am assuming I need to send a sysex command to the MKS-50 (which I figured out how to do, still need to find the right command though).  Ether load the full reply into a variable and then enumerate through this variable and pick out the fields I need (assuming there will be identifiers in the sysex)  OR — There will be numerous replies which I will catch and then use Case statements to pull out what I need from each reply.

      OK so the first question is am I on the right track?  And if so is there an example I can work from, possibly in one of the completed panels?

      Next question is this, the manual for the MKS-50 is confusing to say the least.  There is a sysex section that talks about individual Patch Parameter (at least I think) yet it has a byte for tone name so I am really confused, do I really need the name to request the parameters?  I think there has got to be a command to request the current patch, or a patch by the number (if this is the case there should be a way to get the current number first maybe).  Anyway am I missing something?

      Thanks again in advance.

      #5479
      atom
      Keymaster
        • Topics: 159
        • Replies: 2945
        • Total: 3104
        • ★★★★★

        No you are correct. You’ll need a minimum of one method attached to the Panel event that is triggered when a MIDI message is received.

        This method should recognize that what it’s receiving is a patch dump, parse it, and set correct values to all the modulators on the panel.

        Some old synths dump the whole memory not just one patch (it depends), i assume MKS means some form of Roland synth, that should be simple. Just figure out the correct location of your relevant data in the dump.

        For examples, have a look at the Panels link up top. Some panels already do that. If you find it too confusing or still can’t get the hang of it. Let us know, i’ll try to provide a dumbass dryrun example for that.

        #5481
        Bomma72
        Participant
          • Topics: 20
          • Replies: 68
          • Total: 88

          Are you calling me a dumbass?? 🙂

          Nah, OK this is what I thought but I can’t figure out what the command is from the manual.  It is like reading Braille!!

          #5490
          atom
          Keymaster
            • Topics: 159
            • Replies: 2945
            • Total: 3104
            • ★★★★★

            I’d never call anyone a dumbass (maybe just my bosses, theyre pretty dumb).

            Anyway what manual and what do you mean by command, like i said if you can’t get the basics i’ll help once you get the idea it gets much simpler.

            #5491
            atom
            Keymaster
              • Topics: 159
              • Replies: 2945
              • Total: 3104
              • ★★★★★

              Also looking at the manual you need SysEx not CC messages (see attachment). I decoded the manual for you.

              I think the only thing you can do in realtime i simulate the potentiometers/buttons as desribed below, to change any of the sound parameters you need to send a complete program dump.

              In the screenshot to change value of potentiometer 12, you’d set a SysEx formula for a slider to:

              f0 2f 1b 00 xx f7
              

              F0 – all sysex starts with that it never changes
              2F – MIDI Code for ELKA manufacturer
              1B – this is a trick you need take your potentiometer number and add 16 (in bits for number 12 that’s 0001 1101 the first 4 bits are always 0001 (16 in dec since theese are the last 4 bits) and the second 4 bits you set. That’s why it’s 16+number
              00 – ignored i assumed 00
              xx – Ctrlr will put the value of the slider in this byte
              F7 – all sysex ends with that it never changes

              Unless i missed something in the manual to get the full control of this synth (and many others like it). You need to be clever. I can write you a pretty long post on how to do that (it involves some clever coding, timers and a bit of patience). Depending on how the synth is built you might get crackling sounds when transmitting data in this clever way, it’s not perfect but i bet it’s better then going through the menus and buttons that were built in the 80s.

              • This reply was modified 11 years, 3 months ago by atom.
              Attachments:
              You must be logged in to view attached files.
              #5497
              Bomma72
              Participant
                • Topics: 20
                • Replies: 68
                • Total: 88

                Ok the synth in question is the Roland MKS-50 Alpha Juno.

                Sorry guess I should have put that at the beginning.  Using the PG-300 that was already developed I was able to add a few sliders and I understand how that works.  I get how to send the Hex data and all that.  I think I have gotten the hang of most of it.  The next thing I am trying to do is to add some buttons to the panel that will do things like change to the next or previous program and retrieve the current slider values from the current patch and set them, I think I know the commands I have to use.

                However I can’t seem to find a command that tells the MSK-50 to dump the current patch in the manual.  I am aware that each sound has two section tone and a patch which make up all the patches (which in an of itself is confusing) since a patch makes up a patch.  The manual is just too damn confusing.

                I see that I will have to use the (panel:sendMidiMessageNow) but what command do I send?

                I figure if I can’t get just one particular patch(tone/patch) I can get a full dump and maybe put that into an array or something if I have to.  I was thinking of trying  to do this anyway as I could then create a dropdown with a list of all the patch names.

                Anyway I am a programmer so I should be able to do all this  if I could figure out this damn module, this is where I am stuck.

                 

                • This reply was modified 11 years, 3 months ago by Bomma72.
                #5502
                atom
                Keymaster
                  • Topics: 159
                  • Replies: 2945
                  • Total: 3104
                  • ★★★★★

                  Fuck me, i repled to the wrong post with the right answer 🙂 sorry for that.

                  BUT i thouht this might be the case of the Roland JUNO106. That is the program is transmitted whenever a program change occurs (http://www.retrosynth.com/docs/mks50/mks50_user.pdf page 62 point 3.1.1 “WHEN then PATCH or TONE Group, Bank or Number is changed”. Just send the MKS-50 program/bank changes and it will always dump the data. What part of the memory is determined by some switches (it’s written in the manual).

                  #5505
                  Bomma72
                  Participant
                    • Topics: 20
                    • Replies: 68
                    • Total: 88

                    Ok, good, I thought I might be going crazy. 🙂

                    I made a little more progress last night after I wrote this.  So I guess there is no command to force the MSK-50 to pass the data.  I am thinking I could do a program change but pick the same program.  If I could figure out the command for that.  It seems to except standard CC messages for that as I can change the program via logic.

                    I will work some more on this tonight.  I feel I am starting to get a handle on it.

                     

                    • This reply was modified 11 years, 3 months ago by Bomma72.
                    #5509
                    atom
                    Keymaster
                      • Topics: 159
                      • Replies: 2945
                      • Total: 3104
                      • ★★★★★

                      There is a special MIDI type “Program Change” you can assign a slider, and you don’t need to send program change 2 and then program change 1 to get program number 1, even if you already are in program 1 if you send program change=1 the device will reset the internal data buffers to the data from program 1 and send it (that’s what Juno does anyway)

                      #5512
                      Bomma72
                      Participant
                        • Topics: 20
                        • Replies: 68
                        • Total: 88

                        Ok gonna give this a shot tonight.  Thanks I will let you know how it goes.

                         

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