lecleto

Forum Replies Created

Viewing 14 posts - 21 through 34 (of 34 total)
  • Author
    Posts
  • lecleto
    Participant
      • Topics: 10
      • Replies: 34
      • Total: 44

      Hello dnaldoog! I´m back! You are right! All my checksums are wrong!!
      I just really understand how this work today!!

      My problem now is with checksums of sysex message that contais all data of patch and I´m working to create a “store patch” function on my editor for Roland JV-880 and the store function are working but comes a message o checksums error.

      Roland JV-880 patch message is composed of one message with 45 bytes and 4 messages with 127 bbytes and I storing each of this messages on respective tables.

      This is one example message with a correct checksum.

      F0 41 10 46 12 01 43 20 00 54 65 6B 6E 6F 20 64 72 6F 6E 65 31 01 06 42 22 00 01 7F 28 50 28 00 00 5A 40 3B 05 01 00 01 01 00 1A 30 F7

      The problem is when I edit a patch this cheksum change and I need recalculate this but I don´t Know how in this long message.

      This is a sysex message from table that I created:

      --Send Common Patch Data to be stored
              		
      		commonSysex = CtrlrMidiMessage({0xF0, tableCommon[0], tableCommon[1], tableCommon[2], tableCommon[3], storePlace, storePatch, tableCommon[6], tableCommon[7], tableCommon[8], tableCommon[9], tableCommon[10], tableCommon[11], tableCommon[12], tableCommon[13], tableCommon[14], tableCommon[15], tableCommon[16], tableCommon[17], tableCommon[18], tableCommon[19], tableCommon[20], tableCommon[21], tableCommon[22], tableCommon[23], tableCommon[24], tableCommon[25], tableCommon[26], tableCommon[27], tableCommon[28], tableCommon[29], tableCommon[30], tableCommon[31], tableCommon[32], tableCommon[33], tableCommon[34], tableCommon[35], tableCommon[36], tableCommon[37], tableCommon[38], tableCommon[39], tableCommon[40], tableCommon[41], tableCommon[42], 0xF7})
      	    
          	panel:sendMidiMessageNow(commonSysex)

      After many research I found your lesson:

      myCheckSum=function(...)
          --1. Convert the hex values to decimal. (function parameters are automatically converted)
          --2. Add the values together, but if the answer to any sum exceeds 127 then subtract 128.
          --3. Subtract the final answer from 128.
          --4. Convert the resulting value back to hex and use as the checksum.
          local total=0
          local result=0
          for i,v in ipairs(arg) do
              total=total+v --add up all the numbers
              if(total > 127) then
                  total=total - 128
              end
          end
      
          result=128-total
      	if result== 128 then result = 0 end -- If the result is 128 then substitute a value of 0
          return tonumber(result,10)
      
      end --function

      How I can use your funtion on my tables tables since I have to “scan” the 38 bytes before checksum?

      Thank you in advance!!

      • This reply was modified 4 years ago by lecleto.
      in reply to: Problems with Panel Data Request as Restricted Instance #117436
      lecleto
      Participant
        • Topics: 10
        • Replies: 34
        • Total: 44

        Yeah dnaldoog!

        Thanks for tip about backticks! ‘I realy desired know how to do this…’

        About code your panel example was perfect to what I needing!

        After that I tryed in my panel a function that don´t send any sysex and still not working I said: this can be a temporization problem. I need d delay to execute the function… And what I need is a timer! Here your panel and example enter in the history!! As you said is not the same case of your example in a post but was what I needing to know about timers in Ctrlr!
        The Ctrlr is fantastic interface but the documentation about is very limitaded. All that I learn to built a JV PatchEd. was in posts and examples of community.
        Thank you for reply and will wait for new example!

        in reply to: Problems with Panel Data Request as Restricted Instance #117428
        lecleto
        Participant
          • Topics: 10
          • Replies: 34
          • Total: 44

          Thank you GoodWeather!

          Very clear your code! I will try here!

          One doubt: Why you set timer:startTimer(2, 200)? What is 2? 200 is a miliseconds?

          and

          bPanelLoaded = false
          bLoadingProgram = false

          Just to understand better.

          Thanks!

          in reply to: Problems with Panel Data Request as Restricted Instance #117417
          lecleto
          Participant
            • Topics: 10
            • Replies: 34
            • Total: 44

            Hello Ctrlrs!

            Firstly I woluld like to thank you for all inputs!

            Hello dnaldoog you solved my problem and you don´t know!!!

            I found in one past post of dnaldoog the solution to my problem. It seemns that panel needs a delay on init to process a function after load. Lets go to solution:

            The fisrt thing was create a function that will be called when panel finished to load. In this case “init”

            In this fucntion, after panel load, the variable allowtoRun will seted to 0 and will start a timer:

            init = function(–[[ CtrlrInstance –]] type)

            allowToRun=falseong>
            timer:setCallback (1,timerCallback)
            — allowToRun = 1
            timer:startTimer(1,400)

            end

            After this counting time the funtion “timer” will be called and here you will put what you what to do when the panel is load. In my panel I want set initial modulators value and send a sysex messages to requesting a data from synth.

            function timerCallback(timerId)

            — Load program timer
            if timerId == 1 then
            allowToRun=true

            — Init Panel Options

            panel:getModulatorByName(“SR-JV-SELECT”):setModulatorValue(0,false,true,false)
            panel:getModulatorByName(“COPY-SELECT”):setModulatorValue(0,false,true,false)
            panel:getModulatorByName(“CHORUS-SW”):setModulatorValue(1,false,true,false)
            panel:getModulatorByName(“REVERB-SW”):setModulatorValue(1,false,true,false)

            –Request Common Data

            mySysex = CtrlrMidiMessage({0xF0, 0x41, 0x10, 0x46, 0x11, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x22, 0x5E, 0xF7})

            panel:sendMidiMessageNow(mySysex)

            –Request Tone 1 Data

            mySysex = CtrlrMidiMessage({0xF0, 0x41, 0x10, 0x46, 0x11, 0x00, 0x08, 0x28, 0x00, 0x00, 0x00, 0x00, 0x74, 0x0C, 0xF7})

            panel:sendMidiMessageNow(mySysex)

            –Request Tone 2 Data

            mySysex = CtrlrMidiMessage({0xF0, 0x41, 0x10, 0x46, 0x11, 0x00, 0x08, 0x29, 0x00, 0x00, 0x00, 0x00, 0x74, 0x0C, 0xF7})

            panel:sendMidiMessageNow(mySysex)

            –Request Tone 3 Data

            mySysex = CtrlrMidiMessage({0xF0, 0x41, 0x10, 0x46, 0x11, 0x00, 0x08, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x74, 0x0C, 0xF7})

            panel:sendMidiMessageNow(mySysex)

            –Request Tone 4 Data

            mySysex = CtrlrMidiMessage({0xF0, 0x41, 0x10, 0x46, 0x11, 0x00, 0x08, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x74, 0x0C, 0xF7})

            panel:sendMidiMessageNow(mySysex)

            timer:stopTimer(timerId)

            end

            end

            Now everything are working as I want!

            The original post from dnaldoog:

            Reply To: Standalone Lua Not Loading

            in reply to: Problems with Panel Data Request as Restricted Instance #117407
            lecleto
            Participant
              • Topics: 10
              • Replies: 34
              • Total: 44

              Hello dnaldoog! Thank you for reply!

              The problem is the fucntion in Lua are working when I open in Ctrlr.

              The problem comes just when I render as restricted instance. The sysex messages on the function are the same of button panel and work at panel and I don´t get any message about checksum error. I tryed other function that only set the values of modulators and don´t send any sysex. The problem is the same. Just not work. It seems that any lua script not run after loading panel.

              in reply to: Problems with Panel Data Request as Restricted Instance #117400
              lecleto
              Participant
                • Topics: 10
                • Replies: 34
                • Total: 44

                Hello Goodwhether! Thank for reply!

                I´m now on version 5.3.201. The problem about “black menus” was in my panel configuration.
                About my main problem in a version 5.3.201 the comportament is the same of 6.026.
                WIth Ctrlr editor the fucntion callBackInit work and the synth gives back data for refresh a panel.
                With a restricted instance the panel is not refreshed.
                I wrote the function “callBackInit” as you teache me but still not working when I render as restricted instance. I also tryed other function to set modulator values at initialization but it seems that noone function is called after panel is load.

                Here is the code. There are something wrong?

                callBackInit = function(luaPanelLoaded)

                –Request Common Data

                mySysex = CtrlrMidiMessage({0xF0, 0x41, 0x10, 0x46, 0x11, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x22, 0x5E, 0xF7})

                panel:sendMidiMessageNow(mySysex)

                –Request Tone 1 Data

                mySysex = CtrlrMidiMessage({0xF0, 0x41, 0x10, 0x46, 0x11, 0x00, 0x08, 0x28, 0x00, 0x00, 0x00, 0x00, 0x74, 0x0C, 0xF7})

                panel:sendMidiMessageNow(mySysex)

                –Request Tone 2 Data

                mySysex = CtrlrMidiMessage({0xF0, 0x41, 0x10, 0x46, 0x11, 0x00, 0x08, 0x29, 0x00, 0x00, 0x00, 0x00, 0x74, 0x0C, 0xF7})

                panel:sendMidiMessageNow(mySysex)

                –Request Tone 3 Data

                mySysex = CtrlrMidiMessage({0xF0, 0x41, 0x10, 0x46, 0x11, 0x00, 0x08, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x74, 0x0C, 0xF7})

                panel:sendMidiMessageNow(mySysex)

                –Request Tone 4 Data

                mySysex = CtrlrMidiMessage({0xF0, 0x41, 0x10, 0x46, 0x11, 0x00, 0x08, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x74, 0x0C, 0xF7})

                panel:sendMidiMessageNow(mySysex)

                end

                Thanks a lot!

                in reply to: Problems with Panel Data Request as Restricted Instance #117348
                lecleto
                Participant
                  • Topics: 10
                  • Replies: 34
                  • Total: 44

                  Hello GoodWeather!

                  Thank you for replly!

                  I´m tryed all the things that you told me but stils not working. I´m on version 6.026 of Ctrlr. The 5.3.201 don´t work well on my PC. The menus are “black” but I tryed export with the version 5.3.201 and not worked as well.

                  After your explains and more research on Google, I found this old thread and now I thinking that it´s a old problem with no solution for while… maybe a trick!

                  2 problems not solved

                  2 problems not solved

                  Atom, what about the first zeoka’s question?

                  zeoka wrote:
                  – “luaPanelLoaded” and “luaPanelBeforeLoad” are not working in
                  restricted exported versions ? they work only in the full version for me

                  I have similar problems with all exported instances.

                  Dasfaker:

                  Found the issue. If I save the panel with “Override panel MIDI channel” off for all mods and reopen the panel I get this behaviour, no matter if I now active “Override..” for all mods. Only if this option is active on startup it works fine.

                  So I will try change all modulators…

                  in reply to: position of data in sysex received #117141
                  lecleto
                  Participant
                    • Topics: 10
                    • Replies: 34
                    • Total: 44

                    My first step to create my panel was the same!
                    An excel sheet with each parameter of synth and your respective sysex message. This certanly will help you to take a global view of synth!
                    Have a good work!!

                    in reply to: position of data in sysex received #117132
                    lecleto
                    Participant
                      • Topics: 10
                      • Replies: 34
                      • Total: 44

                      Hello Enzo!!

                      This information 00 08 20 00 comes from map of memory. In this case my Roland Synth JV-880.
                      You can see by this graph below that you are working on temporary patch wich adress is 00 08 20 00.
                      This adress define where you are working.
                      To understand your message first of all try to change only one parameter (On-Off Switch) and analyze the incoming message. In many cases will be used more than one byte to set a value of modulador. This will be described on manual.
                      For Roland Syhths this information of the sequence of bytes and values comes at the end of owner manual.
                      See the attached files.
                      Once a time that you understand one byte the others will be consequence.
                      I´m just trying to explain what I do to “read and understand” my sysex messages to create a panel for JV-880.
                      I hope that can be usefull!

                      • This reply was modified 4 years, 2 months ago by lecleto.
                      Attachments:
                      You must be logged in to view attached files.
                      in reply to: position of data in sysex received #117129
                      lecleto
                      Participant
                        • Topics: 10
                        • Replies: 34
                        • Total: 44

                        Hello Enzo!!

                        This information 00 08 20 00 comes from map of memory. In this case my Roland Synth JV-880.

                        • This reply was modified 4 years, 2 months ago by lecleto.
                        Attachments:
                        You must be logged in to view attached files.
                        in reply to: position of data in sysex received #117117
                        lecleto
                        Participant
                          • Topics: 10
                          • Replies: 34
                          • Total: 44

                          Hello! First thing in my opnion to understand better is configure your midi monitor to see the size of message received in Hexa form.

                          The message always will star with F0 and will end with F7. The 19 before F7 is a checksum.

                          The point is understand what byte is the start of your parameters.

                          You will see as a machine!

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

                          [22:18:25:000730]: Size:[ 45] RAW:[f0 41 10 46 12 00 08 20 00 4e 65 77 20 41 67 65 20 56 6f 78 20 01 05 7f 0c 36 00 7f 52 00 00 00 00 76 40 3e 02 00 00 00 00 00 5d 19 f7]

                          in reply to: Roland JV-880 panel / editor? #117116
                          lecleto
                          Participant
                            • Topics: 10
                            • Replies: 34
                            • Total: 44

                            Hello JV-880 users!!

                            My last version of JV PactcEd. New version 1,77 available!
                            Now with a Tone Copy function!!!

                            JV PatchEd. – Roland JV-880 Patch Editor

                            in reply to: Roland JV-880 panel / editor? #116828
                            lecleto
                            Participant
                              • Topics: 10
                              • Replies: 34
                              • Total: 44

                              Hello Ctrlr guys and JV-880 users! The first complete beta version of my editor “JV PatchEd.” is ready to test!
                              Now you can send and receive data from JV-880.
                              Let me know if it works!

                              The link to download:
                              https://drive.google.com/open?id=1cW41V8Lv6sCBKJwblTQAenIAj2tPjuZj

                              I hope you enjoy!

                              in reply to: Roland JV-880 panel / editor? #116768
                              lecleto
                              Participant
                                • Topics: 10
                                • Replies: 34
                                • Total: 44

                                Hello! I´m working at! In a few days I will upload the first part of project here! In a first part of editor you will can send controls to JV-880. The second part will be get patch data from synth and assign to editor modulators.

                              Viewing 14 posts - 21 through 34 (of 34 total)
                              Ctrlr