uiEnvelope Status

Home Forums General Using Ctrlr uiEnvelope Status

Viewing 7 posts - 21 through 27 (of 27 total)
  • Author
    Posts
  • #14665
    Hecticcc
    Participant
      • Topics: 25
      • Replies: 160
      • Total: 185
      • ★★
      #14676
      macrodx
      Participant
        • Topics: 3
        • Replies: 28
        • Total: 31

        Thanks, feedback is appreciated.
        Please use the version attached to this post where I fixed a bug I iscovered with linked modulators.

        Attachments:
        You must be logged in to view attached files.
        #14683
        Hecticcc
        Participant
          • Topics: 25
          • Replies: 160
          • Total: 185
          • ★★

          I’ve been looking into/playing around with this component; i still need to study it further but at first glance it works for me. I have adapted part of the D-20 pitch env and it did what i expected it to do 🙂
          I will now try to make a custom env using your framework and see how far i get without hitting a wall.

          What i found until now (using Ctrlr 1547):
          The DW-8000 modulators do not seem to be linking to the env component, changing values with the modulators does not update the component & vice-versa. I tried tracking down what causes this but my (not so thourough) debugging has not yet proved succesful.

          If/when i find more buggy/unexpected behaviour i will post it here.

          Very nice work!

          #14691
          macrodx
          Participant
            • Topics: 3
            • Replies: 28
            • Total: 31

            Well, if you´re talking about the DW template I´ve provided then in fact there are no modulators for that. The sliders are only connected to the D-20 Envelope. But here´s how that works:
            The class CEnvelopeList is initialized in panelLoaded(), collects all modulators with modulatorCustomNameGroup == “DXDynamicEnvelope” and stores them in a table as CEnvelope objects with their modulator name as the key. Sliders or other modulators are connected in two ways: Each modulator that has modulatorCustomNameGroup == [modulatorName of the envelope] will be regarded as linked to that envelope. (Check the sliders in the demo, they are all linked to the D-20 env). Now each of these modulators is assigned distinctively to a point axis in the respective envelope template file by setting pt:setLinkedModulatorX/Y. You will see that in the DW template file all seLinkedMod lines are commented out…
            And one more link thingy: If you connect two points using setLinkedPointY() then both will follow each other. That way you control e.g. the sustain point with the decay point and vice versae.

            • This reply was modified 10 years, 4 months ago by macrodx. Reason: whops, accidently use html tags which hid some text
            #55515
            jon23
            Participant
              • Topics: 0
              • Replies: 3
              • Total: 3

              Sorry if the thread resurrection is not appropriate…

              I’ve been playing with CTRLR for a day or so, and have been having fun & making good progress. I’m working on an editor a Casio VZ series synth.

              However lack of a usable envelope controller is going to massively ramp up the complexity of my project, is uiEnvelope still not workable? From doing a “what(myUiEnvelopeModulator)” I cannot see methods for getting points, although they can be added via the widget GUI. Also the Utility tab refuses to show XML for the widget.

              I had a look at the panel by macrodx (earlier in this thread) and it looks awesome, although complex and I’m unsure how I would integrate that into an existing panel.

              IMO the ability to link nodes is a “nice to have” (if I am understanding the requirement), whereas a workable envelope widget seems essential for a synth editor.

              Plenty of synths allow an A = 100% with D, S & R = 0% for example and I don’t think generic code should make assumptions around this (even if illogical), as interesting things may happen when it hits the hardware. If it’s “bad interesting” not “good interesting” then it’s up to client code to test for and manage that. Similarly, this VZ synth allows for variable sustain points and up to 8-step envelopes, but I think that it should be left up to client code to manage device-specific weirdness rather than hacking weirdness into base classes.

              I think that “all” I need are methods to get points as a list, set the X & Y max scaled values, and getters & setters for scaled values. My more annoying requirement is a Y axis from -63 to +63 for these DCO’s, so the root/0th point would be at (0, maxY/2) not (0,0) — but this is “just” a visual thing and would make no difference to how it sounds (also you’re only going to be transmitting positive hex numbers, so a “negative” Y value would always need transforming anyway).

              Hope that makes sense, and thanks!

              #55529
              macrodx
              Participant
                • Topics: 3
                • Replies: 28
                • Total: 31

                Hi

                IMO the ability to link nodes is a “nice to have” (if I am understanding the requirement), whereas a workable envelope widget seems essential for a synth editor.

                Well, with my approach I was trying to provide a generic solution, as intended by atom. IIRC he wanted to either provide a generic control that is simple to use, or eventually integrate proprietary envelope controls like ADSR. The problem with my code is, that it being an entirely scripted solution all customization must be done in code. If it was a proper control, you as the user wouldn´t have to worry about the linking of the nodes. You´d rather have a button that appends a node to the last node and you could checkbox it as dependant or something like that.

                • This reply was modified 8 years, 7 months ago by macrodx. Reason: typo
                #55910
                jon23
                Participant
                  • Topics: 0
                  • Replies: 3
                  • Total: 3

                  Hi there, and thanks for the reply. I hope I didn’t sound too grumpy in my last post!

                  Thing is, uiEnvelope is so close to what I need, and I was hoping to not get into looking into the innards of how the UI controls work. It’s great as-is, if there were methods for getting & setting the points via code, I think that’s all I really need.

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