spiffo

Forum Replies Created

Viewing 20 posts - 1 through 20 (of 38 total)
  • Author
    Posts
  • in reply to: Using Layers Tutorial 1.0 #120389
    spiffo
    Participant
      • Topics: 12
      • Replies: 38
      • Total: 50
      • β˜…

      OK, thanks dnaldoog, I think I have my head around it now.

      I’m off to give it a go on the PCM80 Panel I have on the go at the moment.

      • This reply was modified 3 years, 5 months ago by spiffo.
      in reply to: Using Layers Tutorial 1.0 #120374
      spiffo
      Participant
        • Topics: 12
        • Replies: 38
        • Total: 50
        • β˜…

        OK I’ll answer some of this myself, please find attached a Layers Experiment.

        The Order of the Layers is important even when not in Edit Mode, as it affects what is Visible and what is NOT Visible.

        As far as I can work out, Layers at the bottom of the Layer Editor window are in the Foreground and Layers at the top of the list are in the Background, so if you have Modulators in the same physical X, Y space then you need to make sure that any modulator which needs to be visible on top of another is lower down in the list, closer to the Foreground if you will, or it could get hidden behind!

        For instance with this panel attached if you move Layers 3 or 4 up higher in the list than Layers 1 and 2 then they end up getting hidden behind the tabs (which are on Layers 1 and 2).

        Attachments:
        You must be logged in to view attached files.
        in reply to: Using Layers Tutorial 1.0 #120372
        spiffo
        Participant
          • Topics: 12
          • Replies: 38
          • Total: 50
          • β˜…

          Strange, I just opened it there and it works fine for me!

          I’ve noticed that with the uiGroups you have to be careful not to accidently move one that’s on top of another because if you do it gets automatically assigned to the lower group again and the whole thing stops working again πŸ™

          Basically you’re right, probably better off with layers, with that in mind, some questions:

          1 When in Layer Editor the Layer listed at the bottom is the only one you can Edit, is that the only consequence of the list order?
          2 Does a Layer always cover the entire area of the Panel, with you’re example they seem to?
          3 If I used layers then personally I would want certain areas of the Panel to remain unaffected whilst other localised areas changed layers depending on something else, is that possible?

          • This reply was modified 3 years, 5 months ago by spiffo.
          in reply to: Using Layers Tutorial 1.0 #120368
          spiffo
          Participant
            • Topics: 12
            • Replies: 38
            • Total: 50
            • β˜…

            OK, after more testing, please find attached 2 Test Panels, one with uiGroups on top of one another and another with uiTabs

            It is definitely possible to layer (for want of a better word) Tabs and Groups on top of one another and then make selective ones Visible / Invisible.

            I was struggling with my PCM80 Panel but doing things in the following order seems to work:

            1 Delete any text from the ‘Component Generic – Group’ entry
            2 Un-Tick the ‘is component a member of a group’, the uiGroup will leap to the 0,0 position on the Panel
            3 Drag the uiGroup back down to it’s original position
            4 Check that in the Component Generic section that there is nothing in the ‘Group’ entry and ‘is component a member of a group’ is stil un-ticked

            At the moment that is working, I can put 4 uiGroups in the same physical place on the Panel and make only one visible at any one time.

            Attachments:
            You must be logged in to view attached files.
            in reply to: Using Layers Tutorial 1.0 #120362
            spiffo
            Participant
              • Topics: 12
              • Replies: 38
              • Total: 50
              • β˜…

              Mmmmm, I spoke too soon.

              Placing one uiGroup on top of another one automatically makes the one on top a member of the lower group. So that means that setting the lower uiGroup invisible automatically makes all the other uiGroups on top of it invisible as well. If you set both uiGroups visible then you end up with a jumble of modulators from both groups all visible at the same time, which is not what I was after at all!

              Removing the ‘Component Generic – Group’ setting or unticking the ‘Is component a member of a group’ doesn’t seem to make any difference. If you have one uiGroup on top of another one then it belongs to the lower group and that’s that!

              I’m going to take a break and see if any divine inspiration strikes me when I’m doing something else πŸ™‚

              in reply to: Using Layers Tutorial 1.0 #120269
              spiffo
              Participant
                • Topics: 12
                • Replies: 38
                • Total: 50
                • β˜…

                Mmmmmm, that’s interesting I was solving this particular problem by using uiGroup Modulators on top of each other and then just setting them to visible / invisible like this:

                panel:getModulatorByName(“plate_reverb_group”):getComponent():setVisible(false)
                panel:getModulatorByName(“chamber_reverb_group”):getComponent():setVisible(true)
                panel:getModulatorByName(“infinite_reverb_group”):getComponent():setVisible(false)

                So what is the killer advantage of using Layers then?
                I mean what am I missing out on?

                in reply to: VST2 Graphics Missing on Tab2 #120267
                spiffo
                Participant
                  • Topics: 12
                  • Replies: 38
                  • Total: 50
                  • β˜…

                  No I never found an answer to this one, basically I gave up, and just continued in stand alone mode.

                  Yes, deleting the cache file was definitely one of the things I tried.

                  And yes, I was using Cakewalk on PC.

                  A test panel would be a good idea, if I ever finish this Lexicon PCM80 Panel I’ll come back to it.

                  in reply to: SysEx Formula for 4 Bytes of Nibblized Parameter Data? #119415
                  spiffo
                  Participant
                    • Topics: 12
                    • Replies: 38
                    • Total: 50
                    • β˜…

                    Yep, the LFO Rate goes from 0 – 2500 (Decimal), 0 – 25 Hz in 0.01Hz increments!

                    That’s the largest range I can see looking through the MIDI Implementation, so actually you could do that in 3 Nibblized Bytes rather than 4.

                    I guess they knew 2 Bytes wasn’t going to cut it so just decided to go with 4, but as far as I can see so far, the highest MSB is always going to be 00.

                    in reply to: SysEx Formula for 4 Bytes of Nibblized Parameter Data? #119412
                    spiffo
                    Participant
                      • Topics: 12
                      • Replies: 38
                      • Total: 50
                      • β˜…

                      For the record, on a Lexicon PCM80, that needs it’s parameters sending in 4 Bytes of Nibblized Data:

                      local lfo_rate_value = BigInteger(mod_lfo_rate:getModulatorValue())

                      local lsb1 = lfo_rate_value:getBitRangeAsInt(0,4)
                      local lsb2 = lfo_rate_value:getBitRangeAsInt(4,4)
                      local msb1 = lfo_rate_value:getBitRangeAsInt(8,4)
                      local msb2 = lfo_rate_value:getBitRangeAsInt(12,4)

                      local lfo_rate_SysEx = string.format(“F0 06 07 00 0B 01 01 00 %.2x %.2x %.2x %.2x F7”,lsb1, lsb2, msb1, msb2)

                      panel:sendMidiMessageNow(CtrlrMidiMessage(lfo_rate_SysEx))

                      This works a treat!

                      in reply to: SysEx Formula for 4 Bytes of Nibblized Parameter Data? #119402
                      spiffo
                      Participant
                        • Topics: 12
                        • Replies: 38
                        • Total: 50
                        • β˜…

                        After searching for a bit longer I came across a post from Possemo saying he doesn’t know of a way to split the Parameter Value over 4 Nibblized Bytes using ls ms in the SysEx Formula.

                        I guess I’ll have to use a LUA script then, unless someone knows different?

                        • This reply was modified 3 years, 7 months ago by spiffo.
                        in reply to: LUA Scripts in Positive Feedback Loop #118877
                        spiffo
                        Participant
                          • Topics: 12
                          • Replies: 38
                          • Total: 50
                          • β˜…

                          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.

                          Well something like that but not exactly. My original post was just to see what methods people were using to block LUA Scripts from running when they don’t need to.

                          And everyone has been very helpful and I now have essentially 3 methods of attack:

                          1 Use setValue instead of setModulatorValue, you can stop LUA Scripts triggering if the Modulator doesn’t change value
                          2 Use Variables and Timers to stop any acivity for a certain amount of time
                          3 Pass the Mod, value & source into the function and use the source in an if statement to determine whether the script runs or not

                          in reply to: LUA Scripts in Positive Feedback Loop #118870
                          spiffo
                          Participant
                            • Topics: 12
                            • Replies: 38
                            • Total: 50
                            • β˜…

                            runsource = function(–[[ CtrlrModulator –]] mod, –[[ number –]] value, –[[ number –]] source)

                            Is that just an alternatively way of writing:

                            function runsource(mod,value,source) ?

                            I’ve just tried and both ways seem to work, so this could definitely be a way forward!

                            Also I thought maybe you could just pass the source into the function like:
                            function runsource(source) but you can’t it seems, you need to do the full (mod,value,source) as they all appear to be passed into the function it that particular order.

                            To prevent Lua functions to be fired you indeed need to set a boolean, add a test at the beginning of all your β€œOnChange” methods, launch a timer to reset the boolean after all methods have gone through the test.

                            I’m using this for loading data in all modulators from a file.
                            Before starting the load, I set bLoadingProgram=true. In each OnChange methods i’m testing if bLoadingProgram == true and doing a direct return in that case.
                            All methods will be triggered due to the load of each parameters.
                            I also start a timer at load. Set it to enough time to have all your methods processed but not too much.
                            When stopping the timer, reset the boolean to false so your methods are executed nicely on manual turn of a button.

                            Yep that could be another way, I already have a Test & Timer running at startup to stop any unnecessary activity but another Test and another Timer for stopping certain scripts from running when not needed would be another way forward.

                            “The more you learn, the more you realise how little you know”

                            • This reply was modified 3 years, 9 months ago by spiffo.
                            • This reply was modified 3 years, 9 months ago by spiffo.
                            in reply to: LUA Scripts in Positive Feedback Loop #118854
                            spiffo
                            Participant
                              • Topics: 12
                              • Replies: 38
                              • Total: 50
                              • β˜…

                              Use the source

                              I think this is where you can use that mysterious third parameter to a callback function β€˜source’ – I haven’t tested this and it may take some experimenting, but something like:

                              I’ve been staring at this stuff, but not being a coder by trade, actually an Electronics Engineer so much happier with hardware, I can’t make that much sense of it:

                              https://github.com/RomanKubiak/ctrlr/blob/master/Source/Lua/CtrlrLuaModulator.cpp

                              processor.setValueGeneric (CtrlrModulatorValue (newValue, CtrlrModulatorValue::changedByLua), force, false);

                              The line above, does that mean that when the Modulator Value gets set it also records that it was changedbyLUA?

                              value(“changedByLua”, 5),

                              That line above is at the bottom of the page, so does that mean that 5 is passed into the function?

                              If you aren’t a coder, this reference material is difficult to interpret for the newbie.

                              in reply to: LUA Scripts in Positive Feedback Loop #118845
                              spiffo
                              Participant
                                • Topics: 12
                                • Replies: 38
                                • Total: 50
                                • β˜…

                                And some quick testing of setModulatorValue(var, boolean, boolean, boolean)

                                setModulatorValue(var, vst, midi, ui)

                                vst & ui appear to do nothing, I think that is well known?

                                midi if set to true the panel sends a MIDI Message whether the Modulator changes value or not
                                midi if set to false the panel does NOT send a midi message whether the Modulator changes value or not

                                So my conclusion is that dnaldoog is correct, I am better off using setValue, it gives a much better range of control over what happens, but it still won’t stop those LUA scripts from running if the Mod changes value πŸ™

                                Thanks, guys!

                                • This reply was modified 3 years, 9 months ago by spiffo.
                                in reply to: LUA Scripts in Positive Feedback Loop #118844
                                spiffo
                                Participant
                                  • Topics: 12
                                  • Replies: 38
                                  • Total: 50
                                  • β˜…

                                  yep, I was kinda wondering if someone would say something like that, at the time I could not thnk of another way to do it.

                                  I’ve finished testing the setValue(variable, boolean, boolean) and here are my results:

                                  setValue(var, force, mute)

                                  mute = if true MIDI never sent, if false MIDI is sent only if the Modulator changes value
                                  force = if true LUA Script always runs, if false LUA script only runs if Modulator changes value

                                  So basically you can mute the MIDI going out but you can NOT stop the LUA, if the Mod changes value it’s going to get triggered!

                                  in reply to: LUA Scripts in Positive Feedback Loop #118839
                                  spiffo
                                  Participant
                                    • Topics: 12
                                    • Replies: 38
                                    • Total: 50
                                    • β˜…

                                    So just to clarify then, if I substitute:

                                    setModulatorValue(variable, false, false, false)

                                    for

                                    setValue(variable, false)

                                    No MIDI Message will be sent from the Modulator and no LUA Script will be triggered either?

                                    @param newValue the value to set
                                    @param force force value change
                                    */
                                    void setValue(const int newValue, const bool force=false, const bool mute=false);
                                    void setValue(const int newValue, const bool force=false);

                                    I lifted the above from github but it doesn’t seem to shed much light on the subject, force what, mute what exactly?
                                    I think I need to do some testing.

                                    • This reply was modified 3 years, 9 months ago by spiffo.
                                    in reply to: Http Error – trying to Upload new Panel #118803
                                    spiffo
                                    Participant
                                      • Topics: 12
                                      • Replies: 38
                                      • Total: 50
                                      • β˜…

                                      Ah ok, it just confused me because it quite clearly states the limit is 16mb in the Download Window!

                                      Cheers, as always.

                                      in reply to: Http Error – trying to Upload new Panel #118798
                                      spiffo
                                      Participant
                                        • Topics: 12
                                        • Replies: 38
                                        • Total: 50
                                        • β˜…

                                        OK, I’ve optimsed some of the larger graphics and got the file size down to 1.8mb

                                        I still get the HTTP Error !

                                        Thinking about it, I could optimise further as I use a lot of the same background image but just at different sizes, if I just use one large image then ‘stretch to fit’ in all cases I can get away with just the one background image only?

                                        But there still seems to be something wrong with the Worpress Settings, can you confirm that you cannot create a Download any bigger than 1mb?

                                        • This reply was modified 3 years, 9 months ago by spiffo.
                                        in reply to: Http Error – trying to Upload new Panel #118791
                                        spiffo
                                        Participant
                                          • Topics: 12
                                          • Replies: 38
                                          • Total: 50
                                          • β˜…

                                          Yep, it’s the ‘Compressed Binary + Resources’

                                          It’s as big as it is, what can I say?

                                          I could slim it down a bit by reusing more of the same graphics, switching to lower quality .jpg instead of .png, etc but that’s a lot more work for me and I’ll never get it under 1mb.

                                          So my point is that there seems to be something wrong with the WordPress settings?

                                          • This reply was modified 3 years, 9 months ago by spiffo.
                                          • This reply was modified 3 years, 9 months ago by spiffo.
                                          in reply to: Http Error – trying to Upload new Panel #118786
                                          spiffo
                                          Participant
                                            • Topics: 12
                                            • Replies: 38
                                            • Total: 50
                                            • β˜…

                                            OK, it could be a size limit thing.

                                            I just tried a small file and that worked fine.

                                            My new updated DX11 Panel is 3.7mb which is below the 16mb limit that is stated but still ???

                                            UPDATE: Yep anything over approx 1mb is giving me an HTTP Error

                                            • This reply was modified 3 years, 9 months ago by spiffo.
                                          Viewing 20 posts - 1 through 20 (of 38 total)
                                          Ctrlr