goodweather

Forum Replies Created

Viewing 20 posts - 381 through 400 (of 550 total)
  • Author
    Posts
  • in reply to: my own function call mystery #69812
    goodweather
    Participant
      • Topics: 45
      • Replies: 550
      • Total: 595
      • ★★★

      Tried your function and it works fine…
      Using console(tostring(myLookup(13))) to check the result

      >>> console(tostring(myLookup(13)))
      29

      Do you get this in the console?
      Type the above at the bottom of the console window then press Enter
      Your function can be anywhere (I mean in any compiled method).

      in reply to: crashed now won't open! all my effort lost!! #69811
      goodweather
      Participant
        • Topics: 45
        • Replies: 550
        • Total: 595
        • ★★★

        Hi, this is very strange… I don’t get any crash on PC and I’m using different versions on different PC’s…

        Save as versioned: at panel level you have 2 properties, Major version and Minor version.
        You set Major version for example to 0.
        Each time you will select Save versioned, a file will be saved with a name indicating the version (major.minor) with a time stamp and the minor version will be incremented.
        PAY ATTENTION that you are still in the opened panel file and not in this saved copy.
        So you need to Save your changes as usual to keep them.

        In summary, Save versioned saves a copy of your current work in a time stamped file.

        in reply to: How do I add text/label to a custom component? #69806
        goodweather
        Participant
          • Topics: 45
          • Replies: 550
          • Total: 595
          • ★★★

          🙂

          in reply to: How do I add text/label to a custom component? #69797
          goodweather
          Participant
            • Topics: 45
            • Replies: 550
            • Total: 595
            • ★★★

            Hi again. I searched in Juce API and found the details…

            In a custom component you have used different functions like graphics.drawLine().
            So, you are using the Graphics class.
            In that class there are different drawText() functions available 🙂

            Direct link: https://www.juce.com/doc/classGraphics

            in reply to: How do I add text/label to a custom component? #69796
            goodweather
            Participant
              • Topics: 45
              • Replies: 550
              • Total: 595
              • ★★★

              No idea (but will also look when I have some time and to learn)…
              You can maybe use the workaround to use classical uiLabels in Ctrlr and to position them in front of the uiCustomComponent?
              At least this would be a temporary solution (not so nice but working) 🙂

              in reply to: uiLabel set some text coloured #69795
              goodweather
              Participant
                • Topics: 45
                • Replies: 550
                • Total: 595
                • ★★★

                Hi all,
                to compare dumps I have used with great satisfaction the software “HxD”. You can compare hexa files and search for differences using F6.
                Extremely easy and great…

                in reply to: Floating point calculations #69791
                goodweather
                Participant
                  • Topics: 45
                  • Replies: 550
                  • Total: 595
                  • ★★★

                  Hi, why not just copying the functions mentioned in http://stackoverflow.com/questions/18886447/convert-signed-ieee-754-float-to-hexadecimal-representation?

                  In my panels, I have implemented a series of functions (like trim and co…) in a method I called Miscellaneous.
                  You can call any function in Miscellaneous from any other method and the only thing to do is copy/paste…

                  I suspect that going to Lua 5.3 will mean a lot of work and tests for atom…

                  Anyway, very good topic (I mean the conversion hex-float)!

                  in reply to: Functions #69784
                  goodweather
                  Participant
                    • Topics: 45
                    • Replies: 550
                    • Total: 595
                    • ★★★

                    Hi Sylvain,
                    please look at my last post on August 3rd in http://ctrlr.org/forums/topic/ctrlr-step-by-step-guide/ (and by the way at Appendix B of the pdf doc).
                    Good reading…Dominique

                    in reply to: getModulatorValuesAsData strange behaviour #69768
                    goodweather
                    Participant
                      • Topics: 45
                      • Replies: 550
                      • Total: 595
                      • ★★★

                      Thx for the explanation!
                      I didn’t know this serializing/parsing of all modulators. Can indeed be useful.
                      On my side, I rely on the sysex dumps from the synth manufacturer and I load/save based on their structure.
                      Maybe that, as a workaround, you can read the vstindex and value of each modulator and set them one by one with the simple setValue?

                      in reply to: getModulatorValuesAsData strange behaviour #69761
                      goodweather
                      Participant
                        • Topics: 45
                        • Replies: 550
                        • Total: 595
                        • ★★★

                        My 5 cents… What do you want to achieve? Why using the VST indexes? What are the advantages/inconvenients in comparison to basic modulator get/set values?

                        in reply to: Ctrlr – Step by step guide #69750
                        goodweather
                        Participant
                          • Topics: 45
                          • Replies: 550
                          • Total: 595
                          • ★★★

                          I agree with you about the Wiki and the need for help but I don’t have the control of that and atom is probably already spending a lot of time coding the software so he has probably also no time for writing an help/wiki.

                          ADSR tuts is laready included in the Step by Step 2.0 guide I’m busy to write. You will have ADSR but also DADSR and DAHDSR. All the same principle…

                          WIthin Ctrlr you have only what() available.
                          To learn about syntax and find interesting functions, the only place are:

                          • the different folders in https://sourceforge.net/p/ctrlrv4/code/HEAD/tree/nightly/Source/ and within those the end of the .cpp files (but sometimes also the code of each function). Look for example at Lua/CtrlrLuaUtils.cpp
                          • the Juce API that Ctrlr is based on https://www.juce.com/doc/classes. Here you can see all the different functions available for a certain object (search with first letter) and see the possibilities and syntax. Please note that it doesn’t mean the function is available in Ctrlr but in most cases well.

                          I learned a lot with those but it takes also a lot of time…

                          in reply to: Note on, note off displayed #69749
                          goodweather
                          Participant
                            • Topics: 45
                            • Replies: 550
                            • Total: 595
                            • ★★★

                            Hi,
                            just look at topic raised by Hi-tech in http://ctrlr.org/forums/topic/midi-in-activity-led/. This is exactly the same stuff…

                            in reply to: Midi IN activity led #69748
                            goodweather
                            Participant
                              • Topics: 45
                              • Replies: 550
                              • Total: 595
                              • ★★★

                              Then you can proceed as I explained above…

                              • 16 uiImageSliders components (1 by LED)
                              • 1 LED image with 2 frames (On/Off)
                              • MidiMessageReceived method reacting on the messages you want (if…elseif…) and within each “if” a call to another function that you give the LED number in argument. This function would change the value of the LED whatever On or Off. The advantage of a separate function is that you need to code the if channel==1 then elseif channel==2 then… only once 🙂

                              FYI,I’m busy to write Step by Stepo guide 2.0 and it will be probably 3x bigger because full of Lua explanations…

                              in reply to: Midi IN activity led #69744
                              goodweather
                              Participant
                                • Topics: 45
                                • Replies: 550
                                • Total: 595
                                • ★★★

                                Hi/Bonjour,
                                you will need Lua for sure but what do you want to achieve?
                                A LED lighting ON when a Midi msg is received? When should it turn OFF (midi messages are going very fast)?
                                Should it react on all messages or only on some?

                                The general principle should be:

                                • create a uiImageSlider modulator with a png image containing the LED ON and the LED OFF (vertical stacked
                                • create a method MidiMessageReceived that you attach to the panel property “Called when the panel receives a Midi message”
                                • In that method, you can build an if…elseif..elseif…end structure to sort the messages received based on their length or some byte
                                • within each elseif you can decide to set your LED uiImageSlider value to 1 and you could launch a timer to leave it on for x ms
                                • In the timer method, you stop the timer and set the LED value to 0 which will change the picture of the LED so it shows OFF

                                For the LED, look at my Step by step guide

                                Good luck…Dominique

                                in reply to: What am I doing wrong? #69743
                                goodweather
                                Participant
                                  • Topics: 45
                                  • Replies: 550
                                  • Total: 595
                                  • ★★★

                                  It is of course easier when you have the real synth and can test it, héhé…

                                  FYI, for this Pro 2 panel and after having made an almost complete Sub37 panel (that I could re-use some principles) I have spent a huge amount of time designing, writing, testing my panel (1 to 2 hrs a day since mid february – so, probably a bit more than 300 hours).

                                  • Learning specific functions and syntax in Juce/Lua/Ctrlr, properties
                                  • getting bugs when you think it will work
                                  • getting things working in a different ways than the logic would say and finding workarounds
                                  • finding bugs on the synth
                                  • having the synth not acting always in a logic way when using an editor
                                  • having to reverse engineer the sysex dumps because not documented
                                  • testing, re-testing, re-re-testing to find some small issues or to make the panel more fool-proof
                                  • etc…

                                  But OK, you get the great reward of building a nice panel for you (and the others) and it is a great challenge and fun doing it. So no regret at all and a lot of pleasure 🙂

                                  in reply to: What am I doing wrong? #69737
                                  goodweather
                                  Participant
                                    • Topics: 45
                                    • Replies: 550
                                    • Total: 595
                                    • ★★★

                                    Possemo is right: use one way to send to your synth then MidiMessageReceived to process the reception with an elseif series based on Offset which indicates the different parameters.

                                    I’m surprised about your sysex string. In DW8000 manual, param change is a 8 bytes long sysex…

                                    In pseudo code for MidiMessageReceived:

                                    if MidiMessage.getSize()==8 then 
                                    offset = MidiMessage:getData():getByte(6)
                                    value = MidiMessage:getData():getByte(7)
                                    if offset==1 then
                                    -- OSC1 Wave form
                                    modOsc1WF:setValue(value, true)
                                    elseif offset==2 then
                                    ...

                                    When one way doesn’t work, always try to find a working workaround and in parallel secure a solution / understand the main/initial issue 🙂

                                    in reply to: What am I doing wrong? #69715
                                    goodweather
                                    Participant
                                      • Topics: 45
                                      • Replies: 550
                                      • Total: 595
                                      • ★★★

                                      Difficult to help you on that one… However, when I encounter an issue I’m always trying to find another way to reach the same 🙂

                                      I don’t know what you want to achieve but you should simply have one modulator for each param and use the sysex to transmit/receive.
                                      To each mod you create a method “xxx_OnChange” that will be called each time the modulator value changes. In that one you can do an if value==…elseif…elseif…end statement that will handle the value of the modulator to what you want to achieve.

                                      Don’t forget to put the classical

                                      if panel:getBootstrapState() == true or panel:getProgramState() == true then
                                      	return
                                      else
                                      ...
                                      end

                                      in the beginning of each method to avoid it fired at panel load.

                                      in reply to: What am I doing wrong? #69702
                                      goodweather
                                      Participant
                                        • Topics: 45
                                        • Replies: 550
                                        • Total: 595
                                        • ★★★

                                        I downloaded the DW8000 manual (http://www.pallium.com/bryan/dw/DW-8000_Manual.pdf) and saw it doesn’t handle CC or NRPN communication for modifying parameters…

                                        You need to setup your Slider to handle sysex.
                                        So, set Midi Message Type to Sysex
                                        In Sysex, you can use the Edit button to build something (see in forum under Documentation – Getting started) or directly type something.

                                        To modify OSC1 WaveForm you need to build a message like: F0 42 3y 03 41 01 ls F7
                                        Look at p65 and p68.
                                        3y is for the Midi channel. The y will take the value in Midi Channel property. If this doesn’t work, you can also put 30 for channel 1 for example
                                        01 is the offset of OSC1 Wave Form (see p68)
                                        ls is the 4 bytes value of the slider (WF can be 1-16 so ls 4 bytes is enough)
                                        Set Min and Max values of your slider to 1 and 16

                                        Turn it and watch the OSC1 Wave form changing. Then try the opposite.
                                        You should also open the Midi Monitor (output and input enabled) to see what is passing in and out. You should check that the correct message is there in and out.

                                        in reply to: What am I doing wrong? #69678
                                        goodweather
                                        Participant
                                          • Topics: 45
                                          • Replies: 550
                                          • Total: 595
                                          • ★★★

                                          Hi, first thing is to try in standalone mode…
                                          Take Ctrlr standalone, create a new empty panel, add uiSlider, put Midi information (CC or NRPN messages) and check if the synth reacts when turning the knob in Ctrlr.
                                          Next step: check Ctrlr reacts when you modify the param on the synth.
                                          Next step: take the DW-8000 panel (I didn’t check if there was one) and try.
                                          Check Midi channels of course.

                                          When running in standalone, then time to check in plugin mode 🙂

                                          in reply to: Site update #69666
                                          goodweather
                                          Participant
                                            • Topics: 45
                                            • Replies: 550
                                            • Total: 595
                                            • ★★★

                                            Seems to work fine now (sent you a PM 🙂 ).
                                            Thx atom!

                                          Viewing 20 posts - 381 through 400 (of 550 total)
                                          Ctrlr