samoht

Forum Replies Created

Viewing 14 posts - 41 through 54 (of 54 total)
  • Author
    Posts
  • in reply to: How I can create a sysex file from table on panel #119087
    samoht
    Participant
      • Topics: 1
      • Replies: 54
      • Total: 55

      Hi, Donaldoog,

      Certainly not vast knowledge, but just much of what you ask I have done myself before and sweated over!

      Studying Lua and Ctrlr, your comments are of great help for me too!
      Thanks!

      • This reply was modified 3 years, 9 months ago by samoht.
      in reply to: Storing received sysex dump as memoryblock then process #118929
      samoht
      Participant
        • Topics: 1
        • Replies: 54
        • Total: 55

        Damien wrote:

        I messed with the script and removed the “local” tag and it worked.

        Dnaldoog wrote:

        I recommend keeping everything local if possible.

        Sometimes variables need to be global. But this should always be used with caution since they easily cause subtle bugs!

        • This reply was modified 3 years, 10 months ago by samoht.
        • This reply was modified 3 years, 10 months ago by samoht.
        in reply to: Storing received sysex dump as memoryblock then process #118912
        samoht
        Participant
          • Topics: 1
          • Replies: 54
          • Total: 55

          I am new to Lua as well as Ctrlr and Juce. One thing has become clear to me though: you have to find a way, starting in Lua, through Ctrlr and Juce, always in full respect for midi bytes and nibbles and for the quirks of each platform (f.i. a lua “string” apparently is not identical to a Juce “string” and so on) and always paying attention that the roads do not to often end up in “memory full” loops, or worst crashes 🙂

          • This reply was modified 3 years, 10 months ago by samoht.
          in reply to: Storing received sysex dump as memoryblock then process #118910
          samoht
          Participant
            • Topics: 1
            • Replies: 54
            • Total: 55

            Hi Damien, Dnaldoog, Possemo: this is working for me;

            midiMessageReceived = function(midi)�
            
            local s = midi:getSize()
            local Id1 = midi:getLuaData():getByte(5)
            local Id2 = midi:getLuaData():getByte(6)
            �
            if s == 60 then
             	   if Id1 == 0x10 then
                		if Id2 == 0x10
            			then
            				t1Nibbles = midi:getData():getRange(8, 24)
            				--clear()
            			elseif Id2 == 0x11 then
            				t21Nibbles = midi:getData():getRange(8, 24)
            				--clear()
            			elseif Id2 == 0x12 then
            				t3Nibbles = midi:getData():getRange(8, 24)
            				--clear()
            			elseif Id2 == 0x13 then
            				t41Nibbles = midi:getData():getRange(8, 24)
            				--clear()
            			elseif Id2 == 0x14 then
            				t51Nibbles = midi:getData():getRange(8, 24)
            				--clear()
            			elseif Id2 == 0x15 then
            				t61Nibbles = midi:getData():getRange(8, 24)
            				--clear()
            			end
            		end
            	end�
            end --f
            • This reply was modified 3 years, 10 months ago by samoht.
            in reply to: LUA Scripts in Positive Feedback Loop #118883
            samoht
            Participant
              • Topics: 1
              • Replies: 54
              • Total: 55

              Hi Dnaldoog,
              I’ve found there is much to learn in your ‘Roland JD-990 Bulk Dump utility’ panel.
              In this panel you are using ‘source’ as argument in the call of several functions (prepareFileSave, myResetProgram, uploadSysex). Would you like to explain how precisely it works in this panel?

              in reply to: LUA Scripts in Positive Feedback Loop #118874
              samoht
              Participant
                • Topics: 1
                • Replies: 54
                • Total: 55

                So, you have a script that intentionally changes the value of a modulator but that you don’t want to unintentionally trigger a lua script, activated by that modulator when the value of that modulator changes.
                For this purpose you have written another Lua script that sorts out the source of the value change.

                In my eyes the problem is this: if the modulatorValue change is not allowed to trigger a Lua script, how is it possible then, when the modulator becomes the command to change value, to trigger a lua script that sorts out the source of his value change to block another Lua script, triggered by that same value change?
                So the Lua script to block another lua script when the modulator changes value must be triggered by the modulator BEFORE the command to change value arrives! If not so, the script is blocked by itself.
                But how can this be done?

                • This reply was modified 3 years, 10 months ago by samoht.
                • This reply was modified 3 years, 10 months ago by samoht.
                in reply to: sysex patches transer #118853
                samoht
                Participant
                  • Topics: 1
                  • Replies: 54
                  • Total: 55

                  Hello Plectron,

                  If needed you can learn how to expand Atoms TX81Z panel code. It’s maybe a steep but for sure a very rewarding learning curve.
                  In the meantime, when you are under Linux, you can use the command-line utility amidi which allows you to receive and send SysEx from/to any midi device.

                  • This reply was modified 3 years, 10 months ago by samoht.
                  in reply to: LUA Scripts in Positive Feedback Loop #118843
                  samoht
                  Participant
                    • Topics: 1
                    • Replies: 54
                    • Total: 55

                    So, you have a script that intentionally changes the value of a modulator but that unintentionally triggers a lua script, activated by that modulator when the value of that modulator changes?

                    I think it’s a matter of avoiding this design unless Atom can imagine and build a method in ctrlr that makes that in some cases the luaModulatorValueChange can be turned off. A new lua/juce command?

                    in reply to: sysex patches transer #118838
                    samoht
                    Participant
                      • Topics: 1
                      • Replies: 54
                      • Total: 55

                      Atom wrote a panel for this synth in 2013. Have you tried it yet? You can download it in the download/panel section.

                      in reply to: Sysex formular in list box modulator #118834
                      samoht
                      Participant
                        • Topics: 1
                        • Replies: 54
                        • Total: 55

                        Hi Moroccomoose,

                        I’m complete ignorant about the type and brand of the synth.
                        IF the value of the modulator is only one byte and IF there is a checksum needed, then every sysex command could look like this.

                        Option 1 Sysex F0 18 0F 00 55 01 02 05 01 xx z5 F7

                        Here the z stands for a Roland type checksum (there are other options ) and the number 5 stands for the number of bytes (placed before the checksum byte) the checksum will take in account to produce itself.

                        Hi, Dnaldoog,

                        Nice constructor!

                        in reply to: MIDI Out LED #118765
                        samoht
                        Participant
                          • Topics: 1
                          • Replies: 54
                          • Total: 55

                          Have you got any worked Ctrlr examples to look at?

                          No 🙁

                          My suspicion is that atom probably needs to do some C++ binding magic.

                          Yes, it seems so.

                          in reply to: MIDI Out LED #118756
                          samoht
                          Participant
                            • Topics: 1
                            • Replies: 54
                            • Total: 55

                            Maybe the Juce MidiBuffer Class can be helpful:

                            MidiBuffer::isEmpty() const
                            Returns true if the buffer is empty.

                            in reply to: MIDI TX Speed on Ctrlr #118669
                            samoht
                            Participant
                              • Topics: 1
                              • Replies: 54
                              • Total: 55

                              These two Juce classes may also be helpful:

                              MidiBuffer()
                              https://docs.juce.com/master/classMidiBuffer.html

                              MidiMessageSequence()
                              https://docs.juce.com/master/classMidiMessageSequence.html

                              Thomas

                              in reply to: MIDI TX Speed on Ctrlr #118668
                              samoht
                              Participant
                                • Topics: 1
                                • Replies: 54
                                • Total: 55

                                Hi,

                                Timer:startTimer(“integer interval in milliseconds”)
                                Timer:getTimerInterval(“const”)
                                Timer:stopTimer()

                                (See: https://docs.juce.com/master/classTimer.html#a3515b6e7a1e3777965e35686eaeb2da7)

                                Armed with Lua and the Juce Timer class functions, it should be possible to generate a delay.
                                I just started studying lua, ctrlr and Juce, so for now I leave it to others to work out the script :-).

                                Thomas

                              Viewing 14 posts - 41 through 54 (of 54 total)
                              Ctrlr