Andromeda A6 sysex mapping

Home Forums General General MIDI discussion Andromeda A6 sysex mapping

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #68594
    hlzdnb666
    Participant
      • Topics: 2
      • Replies: 2
      • Total: 4

      Hi, i’m a new with ctrlr but i’ve been able to do already some nrpn mapping on my prophet 6 and some sysex mapping on my matrix 1000. I’m literally learning and while the mapping for the prophet and the matrix has been relatively simple to understand. The andromeda is a totally different beast . This is from the andromeda sysex specs

      0E – MIDI Editing
      F0 00 00 0E 1D 0E (parent page)(child ID)(data2)(data1)(data0)F7
      (parent page) = The parent page of the parameter to be edited
      (child ID) = child ID of parameter to be edited
      (data2) = Mix channel number and most significant bits (bits 14-16) of parameter’s data
      (data1) = Bits 7-13 of parameter’s data
      (data0) = Least significant bits (bits 0-6) of parameter’s data
      All parameters to be edited must be sent in this format (12 MIDI bytes), regardless of the number
      of bits required to transmit the value of the parameter. When the A6 receives this message, it will
      change the specified parameter in the specified mix channel to the new data value. The mix
      channel number is specified in (data2) with the format 0xxx xyyy, where xxxx is the mix channel
      number (0-15) and yyy are the uppermost bits (bits 14-16) of the parameter data. In program
      mode, the mix channel number is ignored and the edit will be applied to the program edit buffer
      and A6’s screen will show the result of the edit. In mix mode, the result of the edit will be shown
      only if the edit occurred in the currently selected mix channel on the A6. If the edit happened to a
      mix channel not currently selected on the A6, the edit will still occur, but it won’t be displayed.
      The parameter data is a 17-bit number 2’s complement signed number.
      If the parent page and child ID selected does not exist in the current configuration, the command
      will be ignored. The function and page numbers for each parameter are shown in the next section.
      Example:
      Turn on Osc 2 Mod 3:
      F0 00 00 0E 1D 0E 10 1C 00 00 01 F7

      Example , let’s say i want to control the filter 1 cutoff.
      Parent is 18 child is 0, the values are in decimal , the range is 0 to 65535
      so my string should be like
      F0 00 00 0E 1D 0E 12 00 ?? ?? ?? F7 .
      What values should i put to , well, map the filter properly?
      Thx in advance for your help!

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

        Hi,
        thx for the good lunch exercise. In fact it is well explained and it is “just” some bitwise operations.
        I build you an Excel file that you can use to input any data and get your sysex string.
        I put some explanations inside it.
        Hope it will help you!

        Attachments:
        You must be logged in to view attached files.
        #68612
        Possemo
        Participant
          • Topics: 14
          • Replies: 638
          • Total: 652
          • ★★★

          I guess you want to know how you have to configure a slider to be able to change the 16bit value. I still learning too and cannot give you a ready solution. According to goodweathers excel-file, as a first step I would set the minimum value of the uiSlider to -65535 and the max to 65535. Maybe you can just put a message in the “SysEx Forumula” field but I don’t know the correct formula for this. I know that there are prebuilt variables for lsb and msb but this won’t cut it for your high resolution parameter (here from the evolver panel:
          f0 01 20 01 01 11 ls ms f7).

          If there is no other way I would try to make a Lua script using bit extraction.

          I just did this for single bits, but maybe it gets you on track:

          Set the modulator value:

          byte40=CtrlrLuaBigInteger(PatchBlock:getByte(40))
          bit1=byte40:getBitRangeAsInt(0,1)
          panel:getModulatorByName("HoldSwitch"):setModulatorValue(bit1,false,false,false)

          Read the modulator value:

          byte40=CtrlrLuaBigInteger(0)
          Hold=panel:getModulatorByName("HoldSwitch"):getModulatorValue()
          if Hold==0 then byte40:setBit(0,false)
          elseif Hold==1 then byte40:setBit(0,true)
          end
          byte40Int=byte40:getBitRangeAsInt(0,8)

          getBitRangeAsInt(0,1) starts from bit 0 (the least significant bit) and has a range of 1 bit.
          setBit(0,true) sets bit 0 to the value 1. setBit(0,false) sets the value to 0.

          • This reply was modified 8 years ago by Possemo.
          • This reply was modified 8 years ago by Possemo.
          • This reply was modified 8 years ago by Possemo.
          • This reply was modified 8 years ago by Possemo.
          #68678
          Possemo
          Participant
            • Topics: 14
            • Replies: 638
            • Total: 652
            • ★★★

            For my Moog Source panel I just did a similar thing for a parameter with 12Bit resolution (4096 values). uiSlider set to min value 0, max value 4095:

            value=CtrlrLuaBigInteger(panel:getModulatorByName(“VCF_Cutoff”):getModulatorValue())
            low=string.format(“%.2x”, value:getBitRangeAsInt(0,4))
            mid=string.format(“%.2x”, value:getBitRangeAsInt(4,4))
            hig=string.format(“%.2x”, value:getBitRangeAsInt(8,4))

            you could then compose an IPR-Sysex message similar to this:
            panel:sendMidiMessageNow(CtrlrMidiMessage(“f0″..”41″..”39”..hig..mid..low..”f7″))

            • This reply was modified 8 years ago by Possemo.
            • This reply was modified 8 years ago by Possemo.
            • This reply was modified 8 years ago by Possemo.
          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 62 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