SysEx newb help DEQ2496

Home Forums General Using Ctrlr SysEx newb help DEQ2496

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #119166
    EA1DDO
    Participant
      • Topics: 1
      • Replies: 6
      • Total: 7

      Hi all,
      This is my first thread since I discovered Ctrlr few days ago.
      I am trying to make my first panel, but I am struggling to understand and get things working propperly.
      Although I got many questions, I´ll go step by step.
      Behringer DEQ2496 EQ uses SysEx messages.
      I am trying to make a simple slide for the parametric gain, values are -15 to +15. But the EQ jumps 0.5, ej. 0 – 0.5 – 1 – 1.5 – 2 – 2.5…
      There are 60 steps from top to bottom.
      SysEx formula is f0 00 20 32 00 12 22 01 01 42 01 xx f7
      Where xx is moving from 00 to 3C, 0 to 60, where 0 is +15 and 60 is -15.

      1.- First question. I am not able to make the slide jump in 0.5 steps. Despite to set “Interval” to 0.5, it is jumping one by one. How can I get 0.5 steps?

      2.- If I set slider 0 to 60, it works, I meant, I can move the EQ gain -15 up to +15, but it is upside down. When slider shows -15, EQ is +15, and when slide shows +15, EQ is -15.

      Just two questions for now.
      Thank you very much

      Martin

      Behringer DEQ2496

      #119167
      dnaldoog
      Participant
        • Topics: 4
        • Replies: 480
        • Total: 484
        • ★★

        Hi Martin,

        You need uiFixedSlider.

        In the field slider contents add text of 60 steps in 0.5 increments.

        There are two ways to invert the sysex value.

        [1] In slider contents the first entry is -15 (this would normally send 0x00 in the sysex). Change it to -15=60 // -14.5 = 59 — +15=0 etc

        [2] in slider contents the first entry is -15 (second -14.5 … +15 etc). In the field Expression to evaluate when calculating the midi message value from the modulator value type 60-modulatorValue.

        see attached panel

        Regards,

        Attachments:
        You must be logged in to view attached files.
        #119169
        goodweather
        Participant
          • Topics: 45
          • Replies: 550
          • Total: 595
          • ★★★

          And don’t forget to also adjust Expression to evaluate when calculating the modulator value from the midi message value to the opposite 😉
          So, midivalue-60

          #119170
          EA1DDO
          Participant
            • Topics: 1
            • Replies: 6
            • Total: 7

            Hi Martin,

            You need uiFixedSlider.

            Regards,

            Hi Donald,
            (not sure if that is your name).

            Fantastic help !

            I got crazy trying to use uiSlider. Now I see it should be uiFixedSlider instead, with a list of values in that text window. Got it.

            The attached example is just great. I can see both methods, both working perfect.

            Then… Next question.

            What I have to do to make this slide to “listen” the same sysex message coming from the EQ, and update the slider itself?

            Thank you

            Behringer DEQ2496

            #119171
            EA1DDO
            Participant
              • Topics: 1
              • Replies: 6
              • Total: 7

              And don’t forget to also adjust Expression to evaluate when calculating the modulator value from the midi message value to the opposite ?
              So, midivalue-60

              I´ve tried that but I see no difference ??

              Thank you anyway.

              Martin

              Behringer DEQ2496

              #119174
              dnaldoog
              Participant
                • Topics: 4
                • Replies: 480
                • Total: 484
                • ★★

                Hi Martin,

                Glad you found that example useful.

                Anyway, I wrote about this recently for someone using a Roland device, so here is a slightly altered version/strategy for incoming sysex:


                I would find out from the manual which byte is to be assigned to which EQ parameter in the dump message and make a table of your Ctrlr modulators uiSliders variable names etc in that exact order:

                myList={
                “my20HzSlider”,
                “my125KhzSlider”,
                “my20KhzSlider”, …
                }

                You would then in the Ctrlr program create a function that reacts to incoming MIDI LuaPanelMidiReceived eg myMidiReceived=function()

                When you perform a patch dump from the machine it will be a certain size. You monitor for incoming messages of that size triggering the function only when the packet size is that size; I would pass the MIDI memory block as a parameter to a function myUpdateInterface=function(). This function will update all the uiSliders.

                
                myMidiReceived = function(--[[ CtrlrMidiMessage --]] midi)
                
                local s = midi:getSize() 
                ---------------------------------------------------------
                if s ==  129 then -- change to the size of your dump
                    updateInterface(midi) -- pass the whole MIDI message to the function
                end
                
                end
                

                in the updateInterface(midi) function you would loop through the table assigning MIDI message bytes values to each control.

                Usually there will be a sysex header offset of about 9 bytes before you get to the data.

                Loop though each byte with the table.

                For example

                
                updateInterface=function(midi)
                local offset =9
                for i,v in ipairs (myList) do
                panel:getModulatorByname(v):setValue(midi:getData():getByte(i+offset,true)
                end
                end
                

                i+offset might be 10, so you’ll have to play around with that to get the correct byte position.

                Good luck!


                NOTE:

                Not too sure about this, but if you find yourself in a loop where the updated modulator is firing off a sysex message again after being updated, try;

                
                updateInterface=function(midi)
                panel:setPropertyInt("panelMidiPauseOut",1) -- PAUSE SENDING MIDI
                local offset =9
                for i,v in ipairs (myList) do
                panel:getModulatorByname(v):setValue(midi:getData():getByte(i+offset,true)
                end
                panel:setPropertyInt("panelMidiPauseOut",0)
                end
                end
                

                or

                
                updateInterface=function(midi)
                local offset =9
                for i,v in ipairs (myList) do
                panel:getModulatorByname(v):setValue(midi:getData():getByte(i+offset,false) --SET TO FALSE
                end
                end
                

                JG.

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

                  @ea1ddo: you probably want that the slider reacts when turning knobs on the deq2496 panel. Are you sure that the device sends individual sysex messages? Maybe it just sends complete dumps (such as almost all devices), then you have to follow dnaldoogs advice.

                  And then, if I look at the sysex implementation:
                  http://keycorner.org/pub/midi/ultracurve/DEQ2496_MIDI_Implementation_V1_4.pdf
                  I don’t get your sysex message. According to the manual you edit “PEQ gain left”:

                  1 0,1 63…72 1 0…105 +15…-60 dB (-0.5/-1 dB) gain left
                  1 0,1 73…82 1 0…105 +15…-60 dB (-0.5/-1 dB) gain right

                  But these gains go from +15 to -60…?!

                  #119176
                  EA1DDO
                  Participant
                    • Topics: 1
                    • Replies: 6
                    • Total: 7

                    Are you sure that the device sends individual sysex messages?

                    Well, when I open the midi monitor, I can see one sysex message coming every time I move the knob in the EQ.
                    So I understand works like that.

                    I don’t get your sysex message. According to the manual you edit “PEQ gain left”

                    I’ve seen that yesterday, but trust me, on the screen shows +15 down to -15.
                    Not sure if it’s a bug, or there is a setting to change the margins, or what.

                    Thank you

                    Behringer DEQ2496

                    #119177
                    EA1DDO
                    Participant
                      • Topics: 1
                      • Replies: 6
                      • Total: 7

                      here is a slightly altered version/strategy for incoming sysex:

                      I can see there is no easy way here.
                      Will try that later today.

                      BTW, Is that good for complete dumps, individual messages, or both?

                      Thank you very much

                      • This reply was modified 3 years, 8 months ago by EA1DDO.

                      Behringer DEQ2496

                      #119179
                      dnaldoog
                      Participant
                        • Topics: 4
                        • Replies: 480
                        • Total: 484
                        • ★★

                        BTW, Is that good for complete dumps, individual messages, or both?

                        If you turn a knob on the unit and it sends out a sysex message, then you should be able to capture that message again by checking for that incoming sysex message size as in the bulk dump example above, so you can have a series of if/else statements to filter out incoming messages of different packet sizes and then change the single modulator in Ctrlr. Unfortunately none of the older synths I have worked on with Ctrlr do that, as Possemo says is usually the case.

                        • This reply was modified 3 years, 8 months ago by dnaldoog.
                        #119183
                        EA1DDO
                        Participant
                          • Topics: 1
                          • Replies: 6
                          • Total: 7

                          I am sitting here trying to do what you said before… but I struggle.

                          make a table of your Ctrlr modulators uiSliders variable names etc

                          (I guess you meant uiFixedSliders)

                          Table… Where?
                          Not sure where to create this table. It might be under “Slider Contents”, or “Multi Message List” ??

                          “my20HzSlider”,
                          “my125KhzSlider”,
                          “my20KhzSlider”

                          That sounds good for a graphic EQ, or any other “fixed” slides, but in this case, it´s parametric EQ. I am not sure if I can assign a name to every frequency, basically because there are thousands.

                          in the Ctrlr program create a function that reacts to incoming MIDI LuaPanelMidiReceived eg myMidiReceived=function()

                          Never created one. Is any tutorial or doc to see where and how create a simple function?
                          Perhaps it is in Panel>Lua Editor.

                          Sorry for those questions.

                          Thank you very much.
                          Maximo

                          Behringer DEQ2496

                          #119184
                          EA1DDO
                          Participant
                            • Topics: 1
                            • Replies: 6
                            • Total: 7

                            Thinking on this thread…
                            Controls like slides, buttons, knobs, etc. are good for most needs, but just the parametric EQ use to be different, as I guess you already know.

                            Parametric EQ control´s use to be more “graphical”, something like next simple example:

                            Parametric EQ

                            Is there anything similar to that under Ctrlr ?

                            Cheers.
                            Maximo

                            • This reply was modified 3 years, 8 months ago by EA1DDO.

                            Behringer DEQ2496

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

                              So the device sends individual sysex when turning knobs, that’s nice. Ctrlr should check automatically when an incoming sysex matches a slider’s sysex, but this feature is not very “stable” I mean it sometimes does not work. In your case it could be because you are using uiFixedSlider. Maybe try uiSlider with adjusting the fields “Expression to evaluate…”

                              dnaldoog talks about using Ctrlr’s built-in Lua script language. With Lua, possibilities are nearly unlimited but it requires you to build code – very easy code though. Lua in Ctrlr is a great script language to start coding.

                              Such things like your screenshot of a graphical display of the equalizer is not prebuilt in Ctrlr. You would have to do that with Lua scripts using the graphics features of the Juce library.

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