jbeuckm

Forum Replies Created

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • in reply to: LEXICON MPX100 #71892
    jbeuckm
    Participant
      • Topics: 2
      • Replies: 6
      • Total: 8

      I have the nybblize code and half the controls working here:

      https://github.com/jbeuckm/Ctrlr-Lexicon-MPX100

      Video explanation:

      • This reply was modified 7 years ago by jbeuckm.
      in reply to: Modulator List VisualColumns edit #71883
      jbeuckm
      Participant
        • Topics: 2
        • Replies: 6
        • Total: 8

        Import modulators from spreadsheet or csv would be cool too.

        in reply to: Sysex Encoding for Alesis Quadraverb #68832
        jbeuckm
        Participant
          • Topics: 2
          • Replies: 6
          • Total: 8

          @goodweather I think packDsiData does something different than what I need for the Quadraverb…

          
          	console("i   quadraveb   packDsiData")
          
          	for i=0,300,31 do
          
          		mb = MemoryBlock(string.format('%.2x', i))
          		packed = utils.packDsiData(mb)
          		dsi = packed:toHexString(2)
          
          		qv = encodeQuadraverbData(i,2)
          
          		console(string.format("%.2x   %s   %s", i, qv, dsi))
          	end
          

          gives…

          
          LUA>> i   quadraveb   packDsiData
          LUA>> 00   00 00 00   0000
          LUA>> 1f   0f 40 00   001f
          LUA>> 3e   1f 00 00   003e
          LUA>> 5d   2e 40 00   005d
          LUA>> 7c   3e 00 00   007c
          LUA>> 9b   4d 40 00   011b
          LUA>> ba   5d 00 00   013a
          LUA>> d9   6c 40 00   0159
          LUA>> f8   7c 00 00   0178
          LUA>> 117   0b 40 20   0011
          
          • This reply was modified 8 years ago by jbeuckm. Reason: added results of test code
          in reply to: Sysex Encoding for Alesis Quadraverb #68805
          jbeuckm
          Participant
            • Topics: 2
            • Replies: 6
            • Total: 8

            That step-by-step guide is mandatory for Ctrlr learners.

            Here’s where I ended up for encoding the Quadraverb params. I have not tried to encode an entire patch yet.

            encodeQuadraverbData = function(data, numBytes)
            
            	orig = BigInteger(data)
            	reversed = BigInteger(0)
            
            	-- reverse bytes so lsB first / msB last
            	for i=0,numBytes-1 do
            		byte = orig:getBitRangeAsInt(i*8, 8)
            		reversed:setBitRangeAsInt((numBytes - 1 - i)*8, 8, byte)
            	end
            
            	requiredBits = numBytes * 8
            	encodedParts = math.ceil(requiredBits / 7)
            	encodedBits = encodedParts * 7
            	zeroPadding = encodedBits - requiredBits
            
            	reversed:shiftBits(zeroPadding, 0)
            
            	bytes = {}
            
            	for i=1,encodedParts do
            		byte = reversed:getBitRangeAsInt(encodedBits-(i*7),7)
            		table.insert(bytes, string.format('%.2x', byte))
            	end	
            
            	return table.concat(bytes, ' ')
            
            end
            in reply to: Sysex Encoding for Alesis Quadraverb #68768
            jbeuckm
            Participant
              • Topics: 2
              • Replies: 6
              • Total: 8

              Thanks again for the help. There is a lot of good stuff in the Power08 example. I am getting things to work now. A newbie has to realize two things:

              1. Connect Lua methods to the panel by properties like “Called when…”.

              2. When you save your Lua, use “Save and compile all” to test your changes.

              in reply to: Sysex Encoding for Alesis Quadraverb #68750
              jbeuckm
              Participant
                • Topics: 2
                • Replies: 6
                • Total: 8

                Thanks goodweather and possemo! packDsiData looks close to what I need (Alesis data bytes are reversed) and I can see how to build the transform from passemo’s code.

                How do I actually get this code to where it’s needed? I see how to implement a new method for “Called to calculate MIDI value to send” but I haven’t seen documentation for what args it receives and should return. Shouldn’t I be able to setup sysex output to always use f0, my vendor & device code, then f7 after?
                panel:sendMidiMessageNow(CtrlrMidiMessage(“f0″..”00″..”00″..”2F”..”01″ does not look D.R.Y. 🙁

                • This reply was modified 8 years ago by jbeuckm.
              Viewing 6 posts - 1 through 6 (of 6 total)
              Ctrlr