EnzoF04

Forum Replies Created

Viewing 20 posts - 41 through 60 (of 102 total)
  • Author
    Posts
  • in reply to: position of data in sysex received #117220
    EnzoF04
    Participant
      • Topics: 17
      • Replies: 102
      • Total: 119
      • ★★

      Wow, you are such.a good helper! This is really cool! As I will dive into your panel, I’m getting it! Have time later on to work on it! I’ll let you know! This is great, Dnaldoog!

      in reply to: position of data in sysex received #117207
      EnzoF04
      Participant
        • Topics: 17
        • Replies: 102
        • Total: 119
        • ★★

        Magical for me too – can’t believe it is working, but will do some more testing and post here soon. Fingers crossed!

        the shifting does not work at the moment. See attachment. But in theory this is the way to work it out.

        Attachments:
        You must be logged in to view attached files.
        in reply to: position of data in sysex received #117205
        EnzoF04
        Participant
          • Topics: 17
          • Replies: 102
          • Total: 119
          • ★★

          as you explain, I’m getting grip on this but the code is magical to me for now. This helps!

          right shift ENVELOPE AMOUNT by 7
          left shift ENVELOPE AMOUNT by 1
          n 15
          right shift COARSE FREQUENCY by 0
          n 48
          right shift GLIDE RATE by 3
          n 15
          right shift FINE FREQUENCY by 6
          left shift FINE FREQUENCY by 2
          n 31

          This helps!

          in reply to: position of data in sysex received #117203
          EnzoF04
          Participant
            • Topics: 17
            • Replies: 102
            • Total: 119
            • ★★

            I would like to see the message similar to that first message you posted but with all values set to max or maybe set the first 5 values to anything, but tell me what you set them to.

            [f0 01 05 2c 00 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0a f7]
            

            this is it.

            in reply to: position of data in sysex received #117201
            EnzoF04
            Participant
              • Topics: 17
              • Replies: 102
              • Total: 119
              • ★★

              I’ve created a patch with these values
              24 - 16 - 14 - 03 - 07 - 11 - 15 - 07 - 31 - 07 - 15 - 07 - 63 - 31 - 03 - 07 - 11 - 15 - 07 - 31 - 07 - 31 - 07 - 03 - 07 - 11 - 15 - 00 - 01 - 00 - 01 - 00 - 01 - 00 - 01 - 00 - 01 - 00 - 00
              and the received sysex hex is
              18 f4 b9 fd fb ee 9d 1f 38 b7 7f df cd ed ab 0a
              which is in binary
              00011000 11110100 10111001 11111101 11111011 11101110 10011101 00011111 00111000 10110111 01111111 11011111 11001101 11101101 10101011 00001010

              So for the first parameter I have to take 00 011000 as data from byte 00 that makes 16 in dec over the last 6 bits.

              For the second parameter I have to take 0 0 011000 as part of data from byte 00 and 11111 100. I have to switch positions of the data parts as parameter 2 has 16 dec and that is 10000 in binary.

              • This reply was modified 4 years, 2 months ago by EnzoF04.
              in reply to: position of data in sysex received #117193
              EnzoF04
              Participant
                • Topics: 17
                • Replies: 102
                • Total: 119
                • ★★

                Hi dnaldoog, thanks for adding info! Much appreciated!

                I guess that you are right about the shifting. That does not work for now but….

                ---------------
                Modulator Value: 44
                Byte 03: (program number) 44
                adjusted message by Dnaldoog
                f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff af
                n 0
                n 227
                n 0
                n 0
                n 124
                n 0
                n 0
                n 207
                n 0
                n 0
                n 48
                n 15
                n 240
                n 120
                n 0
                n 120
                n 0
                n 135
                n 240
                n 352
                n 249
                n 120
                n 0
                n 0
                n 0
                n 0
                n 0
                n 135
                n 30
                n 0
                n 0
                n 0
                n 191
                n 0
                n 0
                n 0
                n 199
                ---------------

                console output for now. The patch I request is the all parameters set to max. Nice 37 parameters but incorrect values. Now I’m going to try to shift as you suggest!

                But when i convert the Hex data to Bin it is:
                11110000 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 10101111
                that makes sense; first byte 11 110000 is a six bit parameter with a max of 47 (110000 bin = 048 dec). First byte 11 110000 and second byte 11111111 is a 5 bit parameter with a max value of 31 (11111 bin = 031 dec).

                So; wouldn’t it be easier to work just in a binary version of the midimessage?

                in reply to: position of data in sysex received #117187
                EnzoF04
                Participant
                  • Topics: 17
                  • Replies: 102
                  • Total: 119
                  • ★★

                  Trying to get my head around:
                  n=n+bit.rshift(bit.band(mBlock16:getByte(v),modulators[k].position[j]),modulators[k].rshift[j])

                  Perhaps we need to put the bit.rshift data into a variable because i get the error ‘Attempt to index field ‘rshift’ (a nil value)? Or do I miss an operand/incomplete syntax?

                  Attachments:
                  You must be logged in to view attached files.
                  in reply to: position of data in sysex received #117185
                  EnzoF04
                  Participant
                    • Topics: 17
                    • Replies: 102
                    • Total: 119
                    • ★★

                    Thanks for your explanation! I can really appreciate your input, you get me closer. Your shortening of code is helping me develop procedural thinking! I’ll try to achieve progress tonight! I’ll keep you updated!

                    in reply to: position of data in sysex received #117173
                    EnzoF04
                    Participant
                      • Topics: 17
                      • Replies: 102
                      • Total: 119
                      • ★★

                      Ok, I’m getting closer! Am I right that this:

                      modulators={
                      ["COARSE FREQUENCY"]={byte={0},position={0x3f}},
                      ["FINE FREQUENCY"]={byte={0,1},position={0xC0,0x07}},
                      ["GLIDE RATE"]={byte={1},position={0x78}},
                      ["ENVELOPE AMOUNT"]={byte={1,2},position={0x80,0x07}},
                      --... to all 37 ?? of them
                      }

                      is generating a variable / table / array of pairs and putting all bits corresponding to the parameter into the array / variable? so ‘coarse frequency’ is paired to position which has the 6 digit binary representing the coarse frequency in the program?

                      Then: this:

                      for k in pairs (modulators) do
                      local n=0
                      for i,v in ipairs (modulators[k].byte) do
                      n=n+bit.band(m16:getByte(v),modulators[k].position)
                      end
                      console(String("n "..n))
                      panel:getModulatorByName(k)getComponent():setValue(n,true)
                      end

                      We are executing a ‘for… do’ for ‘k’ times (the amount of pairs in ‘modulators’.
                      Create a variable ‘n’ with value ‘0’.
                      The next code starting ‘for i,v in ipairs…. till [k].position) end’ is not clear to me.
                      console(string(‘n…..) is putting the data in variable ‘n’ to console for check?
                      pane.:getModulator… is putting the extracted values to the panel components?

                      The last part gives me the attached error.

                      • This reply was modified 4 years, 2 months ago by EnzoF04.
                      Attachments:
                      You must be logged in to view attached files.
                      in reply to: position of data in sysex received #117162
                      EnzoF04
                      Participant
                        • Topics: 17
                        • Replies: 102
                        • Total: 119
                        • ★★

                        forget my question, got it! ‘m’ is the received midi message!

                        in reply to: position of data in sysex received #117158
                        EnzoF04
                        Participant
                          • Topics: 17
                          • Replies: 102
                          • Total: 119
                          • ★★

                          We’re calling variable ‘m’ in the third line but never declared ‘m’. Do I have to tell what ‘m’ holds or what type it is?

                          local t={}
                          mbTemp32Byte=MemoryBlock()
                          mbTemp32Byte:append(m:getData():getRange(4, 32))
                          m16=MemoryBlock()
                          assert(mbTemp32Byte:getSize()==32) -- development code can be deleted
                          for n=0,mbTemp32Byte:getSize()-1,2 do
                          local msb=bit.lshift(mbTemp32Byte:getByte(n+1),4)
                          local lsb=mbTemp32Byte:getByte(n)
                          table.insert(t,msb+lsb)
                          end

                          I changed m to mBlock16.

                          • This reply was modified 4 years, 2 months ago by EnzoF04.
                          • This reply was modified 4 years, 2 months ago by EnzoF04.
                          • This reply was modified 4 years, 2 months ago by EnzoF04.
                          Attachments:
                          You must be logged in to view attached files.
                          in reply to: position of data in sysex received #117156
                          EnzoF04
                          Participant
                            • Topics: 17
                            • Replies: 102
                            • Total: 119
                            • ★★

                            Getting very excited about your post. I can read what you do and try to understand. I’m hyper motivated to continue with your suggestion. I’m trying to proceed but my time is limited for now. Have to be patient but I’ll keep you updated and work in between commitments.

                            in reply to: position of data in sysex received #117151
                            EnzoF04
                            Participant
                              • Topics: 17
                              • Replies: 102
                              • Total: 119
                              • ★★

                              Hello Dnaldoog, here is program 44, which I saved with all parameters set to full. I’ve added in my Excel sheet all front panel parameter numbers and the minimum and maximum values. It’s obvious what resolution a 1 bit, a 4 bit, a 5 bit, a 6 bit and a 7 bit parameter have.

                              The sysex data is 37 bytes; 4 as header (syxex, sci id, sixtrak id, program number). Then 32 bytes of program data and an EOX byte.

                              The manual says:

                              Data is 16 bytes of program data, sent as 32 four-bit nibbles, right justified, LS nibble sent first.

                              RAW:[f0 01 05 2c 00 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0a f7]

                              The last byte before the f7 is 10 because the last two bits are left empty.

                              • This reply was modified 4 years, 2 months ago by EnzoF04.
                              • This reply was modified 4 years, 2 months ago by EnzoF04.
                              in reply to: position of data in sysex received #117142
                              EnzoF04
                              Participant
                                • Topics: 17
                                • Replies: 102
                                • Total: 119
                                • ★★

                                This helps me to get the data less abstract and I can pin point where a parameter is sent.

                                Thanks for your input!

                                Attachments:
                                You must be logged in to view attached files.
                                in reply to: position of data in sysex received #117140
                                EnzoF04
                                Participant
                                  • Topics: 17
                                  • Replies: 102
                                  • Total: 119
                                  • ★★

                                  Hi Lecleto!

                                  Thanks for your reply. I’m creating an Excel sheet where I can ‘cluster’ the bits used for a parameter so I get a good reference ‘where’ data is stored. I do this by pushing and pulling between bits (binary) and hexadecimal and decimal. I show you in the attached image. When I have an idea what bits are representing which parameter, I try to put them in corresponding variables in decimal format.

                                  in reply to: position of data in sysex received #117118
                                  EnzoF04
                                  Participant
                                    • Topics: 17
                                    • Replies: 102
                                    • Total: 119
                                    • ★★

                                    Thanks for your reply!

                                    How do you know this?

                                    In this example the parameters comes after 00 08 20 00.

                                    I’m trying to refer the received data in the synth but I cannot get a grip on it. When i start with byte 09 and try to relate the received data in that byte to what is in the synth for that program (patch) then I’m confused.

                                    How do I read the received data? Some parameters are spanned over more than one byte, but how?
                                    Do I need to read the received data backwards, starting at the end?

                                    EDIT: I convert the received bytes to string for output in console, see attachment 3.
                                    EDIT: I’m messing with bits and bytes. That’s where I’m wrong, as far as I know. But how….?

                                    Thanks for helping out!

                                    • This reply was modified 4 years, 2 months ago by EnzoF04.
                                    Attachments:
                                    You must be logged in to view attached files.
                                    in reply to: SOLVED: What’s wrong in my function #117101
                                    EnzoF04
                                    Participant
                                      • Topics: 17
                                      • Replies: 102
                                      • Total: 119
                                      • ★★

                                      – it is a good habit to declare all your modulators at once in some method that you call at panel load then that you refer to the modulators through the variables instead of redoing panel:getModulatorByName() all the time; To identify my modulators, I’m usually using modXXX

                                      Well my first challenge is to ‘get’ a modulator value into a midi message so I can use it to ‘retrieve a patch (program) from the synth.

                                      Step 2 is the changing of the modulators on the panel so they meet the actual parameters in the patch on the synth.

                                      in reply to: SOLVED: What’s wrong in my function #117099
                                      EnzoF04
                                      Participant
                                        • Topics: 17
                                        • Replies: 102
                                        • Total: 119
                                        • ★★

                                        Thanks for your replies! I’m going in to it!

                                        in reply to: Splitting Sysex for older synths #115599
                                        EnzoF04
                                        Participant
                                          • Topics: 17
                                          • Replies: 102
                                          • Total: 119
                                          • ★★

                                          This is very nice progress! For me a bit abstract but it makes sense. What I don’t understand is the stages of development; how does JUCE level or not level to LUA? Perhaps a question for an other time.

                                          Concerning the checksums, this is all pretty predictable. My device (the S700) responds to sysex messages. I can request sample properties before I request a dump of a sample. The sample properties tell the data count. Adding header, length, play mode, ending byte (F7) to it and we have a total number of strings to be expected by CTRLR.

                                          Thanks so far, @Vernonr
                                          Am looking forward to get this working!

                                          in reply to: Splitting Sysex for older synths #115301
                                          EnzoF04
                                          Participant
                                            • Topics: 17
                                            • Replies: 102
                                            • Total: 119
                                            • ★★

                                            Very nice work, sounds promising! Hope it will enable bi-directional communication with responding messages to and from both sides.
                                            I’m a very novice developer. Keep it up, good work!

                                            In response to Vernonr’s post:
                                            It is all predictable ‘cause the first midi message that the S700 replies, tells the amount of data to be send by the S700. I’m aware of the fact that getting Ctrlr and the S700 ‘in sync’ for good and reliable two way communication is a hard thing to achieve.

                                            I’m getting very enthusiastic and i’m Motivated to set up a testing. This will be in 4 weeks time. But no hurry. If I have to install a Linux machine, I will.

                                            • This reply was modified 4 years, 10 months ago by EnzoF04.
                                          Viewing 20 posts - 41 through 60 (of 102 total)
                                          Ctrlr