uiLCDLabel or uiLabel question…

Home Forums General Programming uiLCDLabel or uiLabel question…

Viewing 20 posts - 1 through 20 (of 23 total)
  • Author
    Posts
  • #70369
    JDXA
    Participant
      • Topics: 10
      • Replies: 45
      • Total: 55

      Hello The World !

      Well…

      About uiLCDLabel or uiLabel…

      I would like to use LCDLabel or Label to simulate somes LCD screens to show what modulator I’m using (with value)…

      Is it possible to have many LCDLabel or Label i.e : 1 LCDLabel for Analogic parts, 1 for Digital parts… one for Patches etc…

      I have tried to put LCDLabel into a group thinking it will set up only group infos but… no !

      I have tried to link the 2 objetcs but it seems not to work or I make a mistake somewhere

      I’m lacking of LUA syntaxes… and Icannot find how to do even if I’ve an idea.
      (is there such a dictionnary with syntaxes for CTRLR ?)

      A thing like this : this modulator is linked only with this uiLCDLabel and set up only infos from it…

      Have a nice day,

      Xavier-Joseph from Reunion Island…

      • This topic was modified 7 years, 4 months ago by JDXA.
      • This topic was modified 7 years, 4 months ago by JDXA.
      #70370
      Possemo
      Participant
        • Topics: 14
        • Replies: 638
        • Total: 652
        • ★★★

        I think for this you have to make a Lua script. Unfortunately there is no dictionnary for syntaxes. Ctrlr is based on the Juce libraries but this probably won’t help you much in this case: https://www.juce.com/doc/classes.

        I will put something together this evening when I am not too tired.

        #70371
        JDXA
        Participant
          • Topics: 10
          • Replies: 45
          • Total: 55

          Wow, problem with my Internet here…

          I write another message !

          Thanks a lot Possemo ! You’re great !!!

          I’m going to see your link because I love learning…

          • This reply was modified 7 years, 4 months ago by JDXA.
          #70373
          Possemo
          Participant
            • Topics: 14
            • Replies: 638
            • Total: 652
            • ★★★

            That’s how I would do it (see attached panel). It selects the display according to the “custom index group” of the slider/button. Is this what you wanted?

            I added a timer that will clear the display after a while. You can delete this part if you don’t think it is useful.

            • This reply was modified 7 years, 4 months ago by Possemo.
            Attachments:
            You must be logged in to view attached files.
            #70376
            JDXA
            Participant
              • Topics: 10
              • Replies: 45
              • Total: 55

              Hi Possemo,

              You’re great !

              I’ve tested and it’s very good.. just what I thought !

              The timer it’s very interesting…

              I’ve learn many things with your job.

              – you can put a custom group without necessity to include into a group object !
              – how to link and distinguish some modulators.

              Well , I’m very happy because on each sample of you, you teach me plenty of things…

              Thanks so much !

              Have a nice day,

              Xavier-Joseph from Reunion Island,

              #70377
              Possemo
              Participant
                • Topics: 14
                • Replies: 638
                • Total: 652
                • ★★★

                all I know about Ctrlr I learned from other people, from the demo panels and from panels from other people. I’m happy to give something back. The Ctrlr implementation of Lua is really great, there are virtually no limits. There are many ways how to accomplish a task, e.g. you could have done it much simpler, without if-statements making 3 scripts instead.

                • This reply was modified 7 years, 4 months ago by Possemo.
                #70709
                JDXA
                Participant
                  • Topics: 10
                  • Replies: 45
                  • Total: 55

                  Hello the World !

                  I havbe another question about this routine :

                  If I want to show the uiListBoxContent as a value.
                  I have tried but I have an error : attempt to concatenate local ‘uiListBoxContent’ (a nil value)

                  My goal is to show in my uiLabel names of the uiListBoxContent of my uiListBox instead of numbers !

                  I understand the problem CTRLR waits a number and I want to show alphabetical words.

                  I have tried this :

                  group = mod:getPropertyInt(“modulatorCustomIndexGroup”)

                  modulatorName = mod:getProperty(“name”)

                  displayThis = modulatorName.. ” : “.. uiListBoxContent

                  if group==63 then

                  panel:getComponent(“DOSC1ShapeScr-1”):setProperty(“uiLabelText”,displayThis,false)

                  I have tried other possibilities but the problem is the same.

                  If you have an idea ?

                  Thanks a lot,

                  Xavier-Joseph from the other part of the world !

                  #70714
                  Possemo
                  Participant
                    • Topics: 14
                    • Replies: 638
                    • Total: 652
                    • ★★★

                    If you want to get the uiListBoxContent you have to do it like this:

                    Listbox = mod:getProperty(“uiListBoxContent”)

                    But this will give you all of the uiListBoxContent. If you want the selected value only there is no other way than doing it by if statements:

                    if value == 0 then Listbox=”some Text”
                    etc…

                    #70715
                    JDXA
                    Participant
                      • Topics: 10
                      • Replies: 45
                      • Total: 55

                      Hello,

                      Well, I’ve found where was the problem…

                      I have declare a variable and the right syntax was : panel:getListBox(“my uiLabel”)

                      Learning, learning… I love learning !

                      See you later !

                      • This reply was modified 7 years, 4 months ago by JDXA.
                      • This reply was modified 7 years, 4 months ago by JDXA.
                      #70718
                      Possemo
                      Participant
                        • Topics: 14
                        • Replies: 638
                        • Total: 652
                        • ★★★

                        Hi,
                        I don’t understand how you did it. This is interesting, can you post the whole code here?

                        #70719
                        JDXA
                        Participant
                          • Topics: 10
                          • Replies: 45
                          • Total: 55

                          Ok Possemo…

                          Before I explain to you :

                          In the JD-XA we have, in the Digital parts, some Analogic waveforms and 450 digital waveforms.
                          I have a slider that show the 6 first analogic waveforms.
                          After, you must press a button (450 time if you want to go to the last).

                          In my editor I have put all the 463 (450 digital + 13 analogic) in a uiListBox like that you can choose more easily.

                          But, the 6 first are selected from the special slider and I have set up on a special uiLabel.

                          I have made the others digital waveforms and put into uiListBox but I would like they were shown also into the same uiLabel.

                          The problem is to do these digital waveforms I have typed 3 x 463 sysex adresses and the only routine I know, I have learn by you, it was to put enter all the 1389 adresses my new routine and it was very very boring and long !

                          So, I was looking for an unique routine that could show the uiListBoxContent.
                          It’s more easy to modify my 12 uiListBox with only 1 routine than intercale 463 times the new routine.

                          I prepare an example and post it soon…

                          See you later,

                          Xavier-Joseph from my lovely, pretty tropical island…

                          #70720
                          JDXA
                          Participant
                            • Topics: 10
                            • Replies: 45
                            • Total: 55

                            Possemo,

                            Do you know if it’s possible to have the same result with an uiImageButton than with a uiButton ?

                            In the uiButton, I can put in toggle position and send only 1 value, but I cannot do that with my uiImageButton (I have put the same value. It’s working but it’s not direct (it lights off before lights on, so I have to press 4 times sometimes !)

                            I have try also in Momentary position, but it’s not working !

                            #70721
                            Possemo
                            Participant
                              • Topics: 14
                              • Replies: 638
                              • Total: 652
                              • ★★★

                              Is the code from Goodweather not working? I haven’t looked into it but I guess this would be the way to go. As you will have to calc a checksum anyway there is no point in typing all addresses. I may be wrong, I don’t exactly know what you are doing.

                              As for the Button, I have never used ImageButtons, so I have no idea on this…

                              • This reply was modified 7 years, 4 months ago by Possemo.
                              #70723
                              JDXA
                              Participant
                                • Topics: 10
                                • Replies: 45
                                • Total: 55

                                Well,

                                To reach Digital Waveforms you have to send 3 different syssex adresses.

                                there are 4 digital parts with for each part, 3 partials.
                                So, you have 12 different choices.

                                I have made 12 uiListBox (with the 463 waveforms into each one) and as you have 3 adresses per waveforms you have 469*3 sysex adresses.

                                Only one adress it’s not working because to reach these waveforms you have to press the “Select” button for the Digital part you want to modify( there are 4 digital parts) + press the select button for the partial you want to modify (you have 3 partials per part) + pass the 5 first analogic waveforms (or press a button named “VARIATION” and after, you can select the waveform you want.

                                The JD-XA expects 3 sysex adresses for 1 digital waveform.

                                I’ve just found a less heavy solution and more easy to do… I send only 1 time the 2 same sysex( in the midi content with Sysex, Direct…. and I make a LUA routine for the others 463 different sysex adresses ! It’s more light to treat and CTRLR acts very quicly.

                                • This reply was modified 7 years, 4 months ago by JDXA.
                                #70725
                                Possemo
                                Participant
                                  • Topics: 14
                                  • Replies: 638
                                  • Total: 652
                                  • ★★★

                                  Hmm, if you really have to send 3 different sysex messages to change the digital waveforms, then the Roland midi implementation chart is wrong. It tells sending one sysex message, example by Roland:

                                  Setting Reverb Type of Program to Room 2 (DT1)
                                  According to the Parameter Address Map (p. 8), the start address
                                  of Temporary Program is 18 00 00 00H, the offset address of Reverb at
                                  Program is 02 00H, and the address of Reverb Type is 00 00H. Therefore
                                  the address of Reverb Type is;
                                  18 00 00 00H
                                  02 00H
                                  +) 00 00H

                                  18 00 02 00H

                                  Room 2 has the value of 02H.
                                  So the system exclusive message should be sent is;
                                  F0 41 10 00 00 00 0F 12 18 00 02 00 02 ?? F7
                                  (1) (2) (3) (4) (5) address data checksum (6)
                                  (1) Exclusive Status (2) ID (Roland) (3) Device ID (17)
                                  (4) Model ID (JD-XA) (5) Command ID (DT1)
                                  (6) End of Exclusive

                                  Yes there are 3 addresses, but they are put together in one message. 18 00 00 00H and 02 00H and 00 00H results in message-part 18 00 02 00H.

                                  Furthermore I don’t think that you have to push buttons on the synth to get sysex working. It may be that on a particular patch the sysex edit has no effect on the sound because e.g. the digital section is not enabled but it will change the value anyway. That is if you got a correct checksum – otherwise the synth won’t do anything.

                                  But this is all theory. I’ve seen Midi implementation charts with lots of wrong information. If this is true on the JD-XA I think it will be impossible to get it right as it is by far too complex for reverse engineering.

                                  #70726
                                  JDXA
                                  Participant
                                    • Topics: 10
                                    • Replies: 45
                                    • Total: 55

                                    I show you an example to reach the first analogic (digital) waveform for the partial 1 of the part 1 :

                                    it’s named : SAW-A

                                    f0 41 10 00 00 00 0f 12 1a 01 20 00 00 45 f7
                                    f0 41 10 00 00 00 0f 12 1a 01 20 01 00 44 f7
                                    f0 41 10 00 00 00 0f 12 1a 01 20 35 00 00 00 00 10 f7

                                    to reach the 11 analogic (digital) waveform named : SAW-C :

                                    f0 41 10 00 00 00 0f 12 1a 01 20 00 00 45 f7
                                    f0 41 10 00 00 00 0f 12 1a 01 20 01 02 42 f7
                                    f0 41 10 00 00 00 0f 12 1a 01 20 35 00 00 00 00 10 f7

                                    now the Digital waveform 001 (the first real Digital one) :

                                    f0 41 10 00 00 00 0f 12 1a 01 20 00 07 3e f7
                                    f0 41 10 00 00 00 0f 12 1a 01 20 01 00 44 f7
                                    f0 41 10 00 00 00 0f 12 1a 01 20 35 00 00 00 01 0f f7]

                                    #70727
                                    JDXA
                                    Participant
                                      • Topics: 10
                                      • Replies: 45
                                      • Total: 55

                                      Another example :

                                      To reach the part or partial button… you have to send the ON sysex adress of the button and the OFF button adress of the last used button.
                                      So you have 12 possibilities because you have 4 buttons :
                                      S1 to S2,
                                      S1 to S3,
                                      S1 to S4,
                                      S2 to S1,
                                      S2 to S3,
                                      S2 to S4,
                                      S3 to S1,
                                      S3 to S2,
                                      S3 to S4,
                                      S4 to S1,
                                      S4 to S2,
                                      S4 to S3

                                      I have tried to do differently but nothing is working !

                                      So I decided to send the ON and OFF for each button but the JD-XA don’t do really that ! Once you have pressed a Select button (a blue one) you cannot lights off by itself… this is the second button you press is lights off…

                                      Also, you cannot have all the Select buttons ON because JD-XA don’t know in wich part or partial you want to work !

                                      So my solution was with the famous routine where I have used the same VST Index, do you remember, to light off the other button when I press another but I can also ON and OFF by itself…

                                      • This reply was modified 7 years, 4 months ago by JDXA.
                                      #70729
                                      Possemo
                                      Participant
                                        • Topics: 14
                                        • Replies: 638
                                        • Total: 652
                                        • ★★★

                                        In my first example I forgot the “Temporary SuperNATURAL Synth Tone” part of the address. So maybe Goodweather forgot it too and maybe that’s why his code is not working. This is how it should look like when the documentation is correct. I’m not 100% sure on the modulo though:

                                        Temporary Tone (Digital Part 1): 1a 00 00 00

                                        Temporary SuperNATURAL Synth Tone: 01 00 00

                                        SuperNATURAL Synth Tone Partial (1): 00 20 00

                                        SuperNATURAL Synth Tone Partial Wave Number: 00 35

                                        Result: 1a 01 20 35

                                        sysex message for wave 1: f0 41 10 00 00 00 0f 12 1a 01 20 35 00 00 00 01 Checksum f7

                                        Checksum:

                                        sum: 26+1+32+54+0+0+0+1=114

                                        114 mod 128 = 114

                                        checksum = 128 – 114 = 14

                                        checksum in hex = 0e

                                        complete sysex message including checksum. This is the only message needed to change Digital Part 1, SN Synth Tone Partial 1 to wave number 1:

                                        f0 41 10 00 00 00 0f 12 1a 01 20 35 00 00 00 01 0e f7

                                        Note that for every waveform the checksum will be different. If this is not working the documentation is bollocks.

                                        #70730
                                        JDXA
                                        Participant
                                          • Topics: 10
                                          • Replies: 45
                                          • Total: 55

                                          Ok, thanks for your information…
                                          Tomorrow I’m going to test because it’s late now…

                                          Have a good night with plenty of sweet dreams…

                                          #70731
                                          JDXA
                                          Participant
                                            • Topics: 10
                                            • Replies: 45
                                            • Total: 55

                                            Well, I’m tried and nothing appears… I could not wait until tomorrow !!!!

                                            The adress I use to reach the Digital part 1, partial 1, digital waveform 1 is

                                            f0 41 10 00 00 00 0f 12 1a 01 20 35 00 00 00 01 0F f7

                                            Only the cheksum is different… cheksum 0E is for the second waveform.

                                          Viewing 20 posts - 1 through 20 (of 23 total)
                                          • The forum ‘Programming’ is closed to new topics and replies.
                                          There is currently 0 users and 55 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