lecleto

Forum Replies Created

Viewing 20 posts - 1 through 20 (of 34 total)
  • Author
    Posts
  • in reply to: JV-XP Editor for Roland JV-XP series #119380
    lecleto
    Participant
      • Topics: 10
      • Replies: 34
      • Total: 44

      Hello GonzoB!

      I also wrote in Ctrlr a Patch Editor for JV-1010 and family however is just a Patch Editor. I created this patch editor using JV-1010 and JV-1080.

      You can try and chek if it will work for you and your necessities.

      Here is the link:

      JV PatchEd. – Roland JV-XP Patch Editor

      in reply to: New Patch Editor for Roland JV and XP Synths! #119212
      lecleto
      Participant
        • Topics: 10
        • Replies: 34
        • Total: 44

        Hello m.tarenskee!

        I´m working at same time for 3 versions of JV PatchEd then I changing the versions all time with new ideas, that in many times comes from users, or fixes.

        Version 1: For Roland JV-80, JV-880
        Version 2: For Roland JV-1010, JV-1080, JV-2080, XP-30, XP-50, XP-60, XP-80
        Version 3: For Roland JV-90, JV-1000 – In test now

        This why only the version .exe is on line. Only the final product.

        in reply to: New Patch Editor for Roland JV and XP Synths! #119181
        lecleto
        Participant
          • Topics: 10
          • Replies: 34
          • Total: 44

          Hello Dreamer!

          Firstlly I would like to thank you for your interest in try JV-PatchEd!

          I also have a JV-1010 and JV-1080. The JV-1010 was the reason to create this version of software since is very powerfull synth however, as you know, very limited to editions. This software are working very well with these units since was developed and tested with th JV-1010 and JV-1080.

          I created for you a .dll version but is a 32bit version. I´m on Windows 7-32. I hope that work for you!

          Here is this link to download:
          https://drive.google.com/file/d/16IonvW3gMI7o72QEFbEt1LYWFyfKCy0y/view?usp=sharing

          Let me know if working and your opinion!

          • This reply was modified 3 years, 9 months ago by lecleto.
          in reply to: How I can create a sysex file from table on panel #119081
          lecleto
          Participant
            • Topics: 10
            • Replies: 34
            • Total: 44

            Yeah, Dnaldoog! Now working perfectly!!!

            Saving patches on PC! Your example panel was perfect!!
            So, the first upgrade to JV-Patched JV-XP is ready!
            I will extend to my other panel to Roland JV-880.

            Many thanks!!

            in reply to: How I can create a sysex file from table on panel #119079
            lecleto
            Participant
              • Topics: 10
              • Replies: 34
              • Total: 44

              Hello Dnaldoog!

              Yes will work on JV-1010!

              I also have a JV-1010 and I really like of this unit! In reality JV-1010 was my first motivation to do this job that you really helped me a lot then your comments are really welcome! Part of your vast knowledge is inside of this panel. Remember when we talk about Roland checksums, message box, timers and many other topics. Yes, all these things are working inside of this panel.

              So, if possible, try this ang give me your feedback!

              in reply to: How I can create a sysex file from table on panel #119077
              lecleto
              Participant
                • Topics: 10
                • Replies: 34
                • Total: 44

                Hello Dnaldoog! One more thanks!

                I published now a new panel for Roland JV and XP series. In my post I give my special thanks to you that always help me!

                I will try here. Will be perfect this feature in my panels.

                Thank you sooo much!!

                in reply to: 2 questions from a newb #118698
                lecleto
                Participant
                  • Topics: 10
                  • Replies: 34
                  • Total: 44

                  Hello Slurp96!
                  Sorry, I understood that you are trying make VST version of panel.

                  “Only the software controls the HW, the hardware doesn’t control the software. I think there’s a setting I must do in the modulator so the software listen to the HW, but I don’t know what that is.”

                  Your software control the hardaware becasue you setted each sysex message in each correspondent modulator. From hardware to software you will have to use a Lua Method or Function that will “Called when a panel receive a MIDI message”. Your hardaware will send a “Dump” that is train of bytes that will contain all the informations that you need. The Lua function, or Lua Method will take each byte of this “train” of bytes an will associate to each modulator and this Lua Code will be called when you receive a MIDI message.

                  Here is the example of Dump from Roland JV-880

                  F0 41 10 46 12 00 08 20 00 41 2E 50 69 61 6E 6F 20 31 20 20 20 00 04 5B 59 00 01 5A 10 00 00 00 08 7F 40 3E 02 00 00 00 00 00 5D 3A F7

                  Here is an example of Lua Code Called when panel receives a MIDI message:

                  assignValues = function(midiMessage)
                    
                      commonData = midiMessage:getData():getRange(1,44) --get string that contains common patch data
                     
                  -- #### Common Patch Data Section ####
                  
                      
                      Common = commonData:getByte(6)
                  
                      if Common==Ox20 then   
                  	
                      panel:getModulatorByName("NAME-01"):setValueMapped(commonData:getByte(8), false)
                      panel:getModulatorByName("NAME-02"):setValueMapped(commonData:getByte(9), false)
                      panel:getModulatorByName("NAME-03"):setValueMapped(commonData:getByte(10), false)
                      panel:getModulatorByName("REVERB-TYPE"):setValueMapped(commonData:getByte(21), false)
                      panel:getModulatorByName("REVERB-LEVEL"):setModulatorValue(commonData:getByte(22), false, false, false)
                  
                      end
                  
                  end

                  Then, the first thing that you have to do is find what is the sysex message that you have to send to your synth that will gives back to panel a Dump that contain the information that you have to associate to your modulators.

                  • This reply was modified 3 years, 10 months ago by lecleto.
                  in reply to: 2 questions from a newb #118684
                  lecleto
                  Participant
                    • Topics: 10
                    • Replies: 34
                    • Total: 44

                    Hello Slurp96! Welcome to Ctrlr!!!
                    How do you said that is your first panel, as a developer, I wolud like to suggest that you first try made a standalone version. Yoy just have to Export as Restricted Instance. This will create a .exe file. After this works in two ways Software to Hardware and Hardware to software, go to the next step. The VST have some particularities that you can´t see in a first steps.

                    in reply to: MIDI TX Speed on Ctrlr #118675
                    lecleto
                    Participant
                      • Topics: 10
                      • Replies: 34
                      • Total: 44

                      Thank you Thomas and Dnaldoog!
                      The problem is solved!
                      Now I´m just trying adjust the time for best compromise solution.

                      This worked!

                      function copyTone()
                      	
                          comboValue = panel:getModulatorByName("COPY-SELECT"):getModulatorValue()
                      
                          
                          if comboValue==01 then -- Copy T1 to T2
                      
                             
                              a = panel:getModulatorByName("T1-WAVEGROUP"):getValue() -- get the present value of modulator
                              panel:getModulatorByName("T2-WAVEGROUP"):setModulatorValue(a,false,true,false) -- set the same value for this modulator, sending it to the synth
                              os.execute(sleep(125))    
                              a = panel:getModulatorByName("T1-WAVE-INT"):getValue()
                              panel:getModulatorByName("T2-WAVE-INT"):setModulatorValue(a,false,true,false) -- set the same value for this modulator, sending it to the synth
                              os.execute(sleep(125))
                              a = panel:getModulatorByName("T1-SWITCH"):getValue()
                              panel:getModulatorByName("T2-SWITCH"):setModulatorValue(a,false,true,false) -- set the same value for this modulator, sending it to the synth
                              os.execute(sleep(125))

                      One more time, Thanks!

                      in reply to: Message Box in Ctrlr #118627
                      lecleto
                      Participant
                        • Topics: 10
                        • Replies: 34
                        • Total: 44

                        Mr. Dnaldoog, my partner developer, thank you one more time!

                        The second option is excatly what I need! I´m in the end of my second panel, now for Roland JV-1010, JV-1080, Xp-50, Xp-60, XP-80, and I have in this panel a Button to store a patch, then when the user click on this button the Lua Code is started to request a dump from JV and also start timer to guarante a time to refresh the tables that will be used to calculate a a checksum that you also gived me away how to do, and when the timer goes to 1, after 1,5 second, calls the second function where the Roland checksum is calculated, the data patch is sended to JV and, at the end, I stop timer and show the message.

                        Thank, thank thank you!!

                        in reply to: setModulatorValue() and friends #118486
                        lecleto
                        Participant
                          • Topics: 10
                          • Replies: 34
                          • Total: 44

                          Hello Dnaldoog and Ctrlrs!

                          What does it means:

                          (value,false,true,false)
                          The first “value” is the value that you will get or set on modulator but false,true,false. What is false and true?
                          I´m using this all time but I don´t know why!
                          Thank you!

                          in reply to: Image – Invalid Resource when export #118401
                          lecleto
                          Participant
                            • Topics: 10
                            • Replies: 34
                            • Total: 44

                            Hello Dnaldoog and GoodWeather, many thanks for explanation.

                            I´m in the end of my second panel but this basic questions are still fragile in my mind. No more after this rich explanations. Goodweather I downloaded your 4 versions of Ctrlr tutorial that I saw in other post but I still have to read with carefuly. Excelent action for begin in Ctrlr world!

                            Thank you guys!

                            in reply to: Image – Invalid Resource when export #118345
                            lecleto
                            Participant
                              • Topics: 10
                              • Replies: 34
                              • Total: 44

                              Yeah Dnaldog!
                              I perceived this problem in my first exports. Tricks and tricks! We are heros making this panels!!
                              I have more questions…
                              Is necessary always clean this cache folder and files or just when we have a resource problem?
                              What is the real diference between .panel and .bpanelz
                              Thank you in advance!

                              in reply to: Image – Invalid Resource when export #118331
                              lecleto
                              Participant
                                • Topics: 10
                                • Replies: 34
                                • Total: 44

                                Hello Dnaldoog!

                                Always you with your genorosity!
                                Yeah! More than one day trying do this and now my panel finaly with a logo!!
                                As I said I lost all my Lua Codes but the panel now are working. As you described in other post I´m now saving a bpanelz before any more hard action. I also copy all scripts on notepad. This helped me today!! I lost the panel one more time trying to put this image but now you solved my problem!
                                Sometimes I feel Ctrlr as labyrint!!
                                I´m glad that we have people as you in this forum!

                                Thank you one more time!!!

                                in reply to: Help! Lost all my Lua Scripts of Panel #118251
                                lecleto
                                Participant
                                  • Topics: 10
                                  • Replies: 34
                                  • Total: 44

                                  Hello Dnaldoog! Thank you for answer!
                                  Yesterday I restored from backup tha last save of work that was 2 day before since not was possible restore the file.
                                  I worked for today but, to my surprise, one more time all Lua Scripts desapear and I lost one day more of work!
                                  What is the best practice to backup files? Save the .panel or .bpanelz

                                  Thank you!

                                  • This reply was modified 3 years, 11 months ago by lecleto.
                                  in reply to: Roland Checksum Calculator #117993
                                  lecleto
                                  Participant
                                    • Topics: 10
                                    • Replies: 34
                                    • Total: 44

                                    Thank you Dnaldoog!

                                    Very useful for all of us Roland users and developers!

                                    in reply to: How I can change the Visible Name of uiSlider? #117990
                                    lecleto
                                    Participant
                                      • Topics: 10
                                      • Replies: 34
                                      • Total: 44

                                      Hello Ctrlrs!!

                                      First of all: Thank you for all inputs!!!
                                      The problem is solved!!! As dnaldoog sugest me I just replaced uiSliderVisibleName by componentVisibleName
                                      Here is the code that are working perfectly now:

                                      efxConfig = function(mod, event)
                                      
                                              slide01 = panel:getComponent("EFX-PRM-01")        
                                          
                                              comboValue = panel:getModulatorByName("EFX-TYPE"):getModulatorValue()
                                      
                                      	if comboValue==00 then -- EFX - STEREO-EQ
                                                
                                      	
                                      		slide01:setProperty ("componentVisibleName", "LO-FREQ", false)
                                      		slide01:setProperty ("uiSliderMin", 0, false)
                                      		slide01:setProperty ("uiSliderMax", 1, false)
                                          	
                                      		slide02:setProperty ("componentVisibleName", "LO-GAIN", false)
                                      		slide02:setProperty ("uiSliderMin", 0, false)
                                      		slide02:setProperty ("uiSliderMax", 30, false)

                                      Just a detail!!!

                                      Many thanks for all!

                                      in reply to: Icon personalized for stand-alone instance #117762
                                      lecleto
                                      Participant
                                        • Topics: 10
                                        • Replies: 34
                                        • Total: 44

                                        Hello João!
                                        As you described, everything worked fine!
                                        Icon associated to exe standalone file.
                                        Thank you for your inputs!
                                        Best regards from Brazil!

                                        in reply to: Icon personalized for stand-alone instance #117748
                                        lecleto
                                        Participant
                                          • Topics: 10
                                          • Replies: 34
                                          • Total: 44

                                          Thank you João Marco!
                                          This program will create a .ico file from my image right?
                                          Where in Ctrlr I will associate with this .ico file to my .exe file?

                                          lecleto
                                          Participant
                                            • Topics: 10
                                            • Replies: 34
                                            • Total: 44

                                            Hello Dnaldoog!

                                            Now everything are working and my “Store Patch” function on my panel is ready! Thank you so much!!

                                            I run the “for” loop inside the store function and one “for” for each tone! I had to change “(” by “{” on checksumCmn vector.

                                            This is the final Lua script for Roland checksum:

                                            --### Checksum of Common Data ###
                                            		
                                            		checkSumCmn = {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]} -- returns the checksum of all data values
                                            
                                            		
                                            		local total=0
                                                	        local result=0
                                                	
                                            								
                                            				for i,v in ipairs(checkSumCmn) 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
                                                
                                            		tableCommon[42] = tonumber(result,10)
                                            --### Send Sysex Messages ###
                                            		
                                            
                                            		--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)
                                          Viewing 20 posts - 1 through 20 (of 34 total)
                                          Ctrlr