goodweather

Forum Replies Created

Viewing 20 posts - 461 through 480 (of 550 total)
  • Author
    Posts
  • in reply to: Invisible name of selected tab #69047
    goodweather
    Participant
      • Topics: 45
      • Replies: 550
      • Total: 595
      • β˜…β˜…β˜…

      I encountered the same. See my topic http://ctrlr.org/forums/topic/disappearing-current-tab-name/
      Still don’t know why this is happening but it didn’t occur since some time.
      One way to get around the issue is to perform frequent Save so when it occurs you can go back a previous Save or version.
      When it occurred, I saw that it was sometimes connected to Undo. When I did several undos after each other the name was disappearing then re-appearing.

      I suppose it is a tricky bug for Atom to reproduce and reproducing it is probably the only way to correct it πŸ™‚

      Good luck!

      in reply to: Order of events when loading a panel #69044
      goodweather
      Participant
        • Topics: 45
        • Replies: 550
        • Total: 595
        • β˜…β˜…β˜…

        Hi again,
        well… I didn’t find In Preferences the ability to prevent a restore on panel open…

        What I also noticed is a difference of behaviour:

        • I save the panel, leave it open then close Ctrlr completely. When I restart Ctrlr, the panel opens fine and the last executed instructions are the ones from the timer I’m starting after my “PanelLoaded” method. Good (and I tend to put more and more in that timer to be sure to have exactly the displays I want, probably not the best idea but OK for now)
        • I save the panel, close the panel BUT leave Ctrlr open. When I re-open the panel, the display is messy (I have overlapping labels that are set visible/invisible acc. to situations. Here they are all visible) and the last executed instructions are from some OnChange methods, the current tab is absolutely not the one defined in PanelLoaded

        So, really confused about the order of events in those different situations but supposed to act in the same way…

        in reply to: Order of events when loading a panel #69043
        goodweather
        Participant
          • Topics: 45
          • Replies: 550
          • Total: 595
          • β˜…β˜…β˜…

          Thx Possemo.
          I also searched further in the forum and found different topics about “statedata” allowing to save (on panel close) and restore data (on panel open) together with the panel. It is in ctrlr.settings file. Apparently the save/restore of all modulators changes can be disabled using the Preferences.
          I will explore this further.

          Ctrlr is a great tool but the lack of documentation is really a pain and I’m loosing a lot of time due to that. Having a forum is very good but not enough.
          We can see that people (me included) are asking things that have been somewhat replied/asked before. The problem is that the answers are not all the time complete and thus this pushes for re-asking the same…
          It’s the reason I’m completing my Step by Step guide bit by bit based on all basic things I need/read.

          in reply to: Help script a microKorg panel… #69001
          goodweather
          Participant
            • Topics: 45
            • Replies: 550
            • Total: 595
            • β˜…β˜…β˜…

            Yep, Rome has not been built in one day… So is my Pro2 panel…
            The most important is that things are progressing πŸ˜‰

            in reply to: NRPN #68986
            goodweather
            Participant
              • Topics: 45
              • Replies: 550
              • Total: 595
              • β˜…β˜…β˜…

              If you assume that you want for example to enter 3:127 and if this means 511 (127+128+256) then the easiest is simply to follow the procedure I explained above:

              • MIDI message type= Multi
              • MIDI controller number= 511
              • Multi message list: take the NRPN template from the second button β€œInsert predefined” and keep all 4 lines as is

              You will only have to translate your x:y notation into a decimal and enter that decimal value as controller number for each parameter.

              in reply to: NRPN #68947
              goodweather
              Participant
                • Topics: 45
                • Replies: 550
                • Total: 595
                • β˜…β˜…β˜…

                Hi, I looked at the circuit midi implementation at https://us.novationmusic.com/sites/default/files/novation/downloads/12118/circuit-midi-parameters-v4.pdf and indeed saw this strange notation 0:3 for example.
                Don’t know what it means.
                Do you have MidiOX or Sysex Librarian?
                Use it to check which NRPN messages are sent for example when you change Env2 Sustain (0:3).

                If we know the meaning, it should be easy to configure Ctrlr:

                • MIDI message type= Multi
                • MIDI controller number
                • Multi message list: take the NRPN template from the second button “Insert predefined”
                in reply to: There is a 'ctrlr for dummies'? i'm lost! #68943
                goodweather
                Participant
                  • Topics: 45
                  • Replies: 550
                  • Total: 595
                  • β˜…β˜…β˜…

                  You must use panel:getModulatorByName(β€œmodName”):getComponent():setProperty….

                  Totaly correct. I have also adapted the Step by Step Guide.
                  This was a beginner’s mistake I did several months ago. Sorry for this.

                  Since then, I’m following Atom’s advice to declare all modulators at panel load in order to avoid calling the panel:getModulatorByName(β€œmodName”) method each time (can take time when you have a lot of modulators because Ctrlr has to scan a table for each name).
                  So, at panel load I use for example:

                  modOsc1WaveLeft = panel:getModulatorByName("Osc1WaveLeft")
                  modOsc1Pitch = panel:getModulatorByName("Osc1Pitch")
                  ...

                  And in the different methods I just use:

                  modOsc1Pitch:getModulatorValue()
                  modOsc1WaveLeft:getComponent():setEnabled(false)
                  modOsc1WaveLeft:getComponent():setProperty...

                  Will explain that in the Step by Step guide 2.0

                  in reply to: Help script a microKorg panel… #68942
                  goodweather
                  Participant
                    • Topics: 45
                    • Replies: 550
                    • Total: 595
                    • β˜…β˜…β˜…

                    Search for memoryblock in the forum. There are several threads where you will see examples of what people are doing.
                    Here are 3 of them:

                    in reply to: Capturing mouse event in uiListboxItemClicked method #68922
                    goodweather
                    Participant
                      • Topics: 45
                      • Replies: 550
                      • Total: 595
                      • β˜…β˜…β˜…

                      Coooool Atom! Thx!

                      in reply to: Moog Sub37 panel #68920
                      goodweather
                      Participant
                        • Topics: 45
                        • Replies: 550
                        • Total: 595
                        • β˜…β˜…β˜…

                        Thx Carl.
                        For the Sub37 it is NRPN direct.
                        Some question though, do you have a checksum at the end of the SP dumps?
                        If yes, did you succeeded to know how it is calculated?
                        This is one of my blocking point for the Sub37 panel.

                        in reply to: Help script a microKorg panel… #68899
                        goodweather
                        Participant
                          • Topics: 45
                          • Replies: 550
                          • Total: 595
                          • β˜…β˜…β˜…

                          Hi,
                          I looked at your MK pdf doc and saw that indeed most front panel knowbs are handled via CC then you have a few via NRPN.
                          You should be able to build rather easily a panel that will handle that (please look at my Step by step guide post: http://ctrlr.org/forums/topic/ctrlr-step-by-step-guide/
                          Then as for others, the best way to learn is to look at others panels (Power08, Virus, Demo panels from Atom…).
                          Once you have a basic direct editing panel, you can implement a Load progam method and a Save program function that will read/write each parameter.
                          To be able to do that you need to know byte by byte the structure of your sysex dump for a single program. Do you have that?
                          If not (I had to do this for the Moog Sub37 and for the DSI Pro2, the Pro2 being much easier), you need to create a basic program where all settings are at zero or some neutral position then move one param to max, dump and save, check with MidiOX or Sysex Librarian which byte changed, document it and redo the same for all params and all possibilities, one by one.
                          When you know the structure, you can load and save anything…

                          in reply to: Capturing mouse event in uiListboxItemClicked method #68890
                          goodweather
                          Participant
                            • Topics: 45
                            • Replies: 550
                            • Total: 595
                            • β˜…β˜…β˜…

                            Found a work around to this issue…
                            In the OnItemClicked method which is run first, I simply store the value, the modulator name and I set a variable bItemClicked to true.
                            In the OnMouseDown method of the uiListbox component, I check whether the right or left mouse button has been pressed and if bItemClicked is true (if false then it means that the user clicked on the uiListbox for scrolling for example).
                            If bItemClicked is true I execute some actions and I reset bItemClicked to false at the end.
                            Works nice.

                            Anyway, it would be nice (if possible) to have the mouse event directly accessible in the OnItemClicked method…

                            in reply to: Pack – Unpack sysex data 8 bit to 7 bit #68888
                            goodweather
                            Participant
                              • Topics: 45
                              • Replies: 550
                              • Total: 595
                              • β˜…β˜…β˜…

                              utils.unpackDsiData and utils.packDsiData are working perfectly!
                              Thx Atom!

                              goodweather
                              Participant
                                • Topics: 45
                                • Replies: 550
                                • Total: 595
                                • β˜…β˜…β˜…

                                One problem solved, next problem araising… πŸ™‚

                                In fact the solution above works for the “When the Mouse is down on the component” method.
                                For uiListbox, there are two other methods related to the clicked item: “When the item is clicked” and “When the item is double-clicked”.
                                Those 2 methods do not provide the event as argument and thus I don’t know how to test.
                                Moreover, when you double click, both methods are run (obviously, a double click is made of a single click first).

                                Shouldn’t those 2 event trackings be separate? Double click method executed ONLY on double click and single click method executed ONLY on single click?

                                Thx to look at this or to provide some workaround…

                                in reply to: Moog Sub37 panel #68840
                                goodweather
                                Participant
                                  • Topics: 45
                                  • Replies: 550
                                  • Total: 595
                                  • β˜…β˜…β˜…

                                  At this stage, no but I’m only manipulating the panel param by param.
                                  I’ll use sysex for program/bank send/receive.
                                  Btw, I took your panel, change Osc1 Fine Tune to NRPN, removed MidiMessageReceived.
                                  It works but not bidirectional.
                                  I’ll investigate further when I’ll have some time.

                                  in reply to: Moog Sub37 panel #68836
                                  goodweather
                                  Participant
                                    • Topics: 45
                                    • Replies: 550
                                    • Total: 595
                                    • β˜…β˜…β˜…

                                    Hi Carl, FYI, I have full bidirectional communication and handling with the Pro2 and NRPN without doing any coding (except to show OnChange values on a Ctrlr “LCD” or to move EG or wave graphs of course).
                                    So, I’m a bit curious to know why you don’t get this with the Prophet08…
                                    FOr the Sub37, I suspect a bad or non standard Midi implementation.
                                    On the Pro2 (and probably Prophet12 – checked the manual for that one) it is very clean.

                                    What I have done:

                                    • I’m not using MidiMessageReceived
                                    • I’m using the MIDI part of the component with the standard messages you get from the second icon

                                    Just giving a screenshot as example.
                                    Did you try that simple method?

                                    Attachments:
                                    You must be logged in to view attached files.
                                    goodweather
                                    Participant
                                      • Topics: 45
                                      • Replies: 550
                                      • Total: 595
                                      • β˜…β˜…β˜…

                                      Hi Possemo! That one I solved since some time…
                                      I’m not using MidiMessage Received at the moment.
                                      What I’m doing:

                                      • at the beginning of the LoadProgram method, I’m setting a flag bLoadingProgram to true
                                      • in each OnMOdValueChange methods, I’m testing for that flag as I’m also testing for the classical isPanelReady
                                        -- No action while loading a program or if the panel is in bootstrap or program states
                                        if bLoadingProgram or not isPanelReady() then
                                        	return
                                        end
                                      • at the end of the LoadProgram method, I’m starting a timer like:
                                        -- Starting a timer to reset bLoadingProgram to false after that all modulators have processed their OnChange function
                                        	timer:setCallback (1, timerCallback)
                                        	timer:startTimer(1, 200)
                                        
                                      • And I have a timer method like
                                        function timerCallback(timerId)
                                        
                                        --Osc1Shape_OnChange(modOsc1ShapeNoise, LoadedProgramData:getByte(12))
                                        bLoadingProgram = false
                                        timer:stopTimer(timerId)
                                        
                                        txtCurrentValue:getComponent():setPropertyString ("uiLabelText", "LOADED")
                                        
                                        end
                                      • Here, I solved it with just another boolean (as dasfaker proposed and what was also my option without any Ctrlr alternative).
                                        I’m now also using the source argument of the OnChange method (if =2 then it is coming from the synth).

                                      in reply to: Disappearing current tab name #68807
                                      goodweather
                                      Participant
                                        • Topics: 45
                                        • Replies: 550
                                        • Total: 595
                                        • β˜…β˜…β˜…

                                        Interesting to know… I’ll watch that.
                                        Well, I got it several times after but not since long.
                                        I started to be more cautious and as in my CAD design time I’m now saving every 5min and saving versions every few days so I can revert easily.

                                        What I noticed is that modulators labels are disappearing then re-appearing when doing several Undo’s after each other. Looks like one “do” action corresponds to several “undo”.
                                        I’m now also cautious with that as well. Better deleting and re-doing than using Undo.

                                        in reply to: Sysex Encoding for Alesis Quadraverb #68806
                                        goodweather
                                        Participant
                                          • Topics: 45
                                          • Replies: 550
                                          • Total: 595
                                          • β˜…β˜…β˜…

                                          I would have used the provided utils.unpackDsiData and utils.packDsiData as they are doing all the job and you don’t need to code anything (except isolating the bit range to pack/unpack) but this is the beauty of programming, everybody can choose his own way πŸ™‚

                                          Thx about your feedback on the Step by step guide.
                                          The version 2.x I will make will be even better with more examples, Lua code, etc…

                                          in reply to: Build 159 #68796
                                          goodweather
                                          Participant
                                            • Topics: 45
                                            • Replies: 550
                                            • Total: 595
                                            • β˜…β˜…β˜…

                                            Thx Atom for the modulator value change callback source parameter.
                                            Very useful!!

                                            For the users: values are starting at 0…

                                          Viewing 20 posts - 461 through 480 (of 550 total)
                                          Ctrlr