Puppeteer

Forum Replies Created

Viewing 20 posts - 161 through 180 (of 185 total)
  • Author
    Posts
  • in reply to: Yamaha TG33 (SY22) Panel #50445
    Puppeteer
    Participant
      • Topics: 16
      • Replies: 185
      • Total: 201
      • ★★

      This is a good start

      http://midi.org/techspecs/midimessages.php

      The Puppeteer
      http://godlike.com.au

      in reply to: Ensoniq ESQ1 Panel – work commenced! #50282
      Puppeteer
      Participant
        • Topics: 16
        • Replies: 185
        • Total: 201
        • ★★

        Jase,

        I’m looking at doing a similar, but much more complicated running status method.

        My approach is going to be to save the last message sent, and if the current one is the same message “type”, just send the changing status bytes.

        You could do a similar thing with your panel. Basically for all the NRPN knobs, save the last message sent as a variable, or possibly last ctrlr slider moved. onValueChange for the controller, have a little logic test. If the current control is the same as the last, just send the data message, otherwise send the NRPN headers.

        To send a message from LUA, this code will help (thanks to DasFaker)

        
        m = CtrlrMidiMessage({0xb0, 0x6e, 0x02})
        panel:sendMidiMessageNow(m)
        m = CtrlrMidiMessage({0xb0, 0x6f, panel:getModulatorByName("AEnvA1TLayer":getValue()})
        panel:sendMidiMessageNow(m)
        

        With NRPN’s I think you need to send messages to indicate that you’ve finished with the NRPN (so inadvertent data slider messages don’t change stuff you aren’t planning to), so you may need to incorporate this into sending the NRPN headers.

        • This reply was modified 8 years, 10 months ago by Puppeteer.

        The Puppeteer
        http://godlike.com.au

        in reply to: midiMessageChannel confusion #50050
        Puppeteer
        Participant
          • Topics: 16
          • Replies: 185
          • Total: 201
          • ★★

          That works fine. Thanks so much.

          Will probably have a bunch of questions on MIDI inputs soon…

          BTW – how the heck do you work this stuff out? ie how did you find out the getMidiMessage(0) part?

          I’m relying on checking other panels and doing forum searches and a bunch of trial and error…

          The Puppeteer
          http://godlike.com.au

          in reply to: midiMessageChannel confusion #49973
          Puppeteer
          Participant
            • Topics: 16
            • Replies: 185
            • Total: 201
            • ★★

            OK, thanks, that makes sense. I’ll give it a go.

            The Puppeteer
            http://godlike.com.au

            in reply to: my panel is not loading in Ctrlr #49299
            Puppeteer
            Participant
              • Topics: 16
              • Replies: 185
              • Total: 201
              • ★★

              The ctrlr version on my tablet is an old version (Rev 1655). Saved an uploaded as requested

              Attachments:
              You must be logged in to view attached files.

              The Puppeteer
              http://godlike.com.au

              in reply to: my panel is not loading in Ctrlr #49090
              Puppeteer
              Participant
                • Topics: 16
                • Replies: 185
                • Total: 201
                • ★★

                Opens OK here in Win 8.1 64bit.

                The Puppeteer
                http://godlike.com.au

                in reply to: external panel control via pure data midi cc #48260
                Puppeteer
                Participant
                  • Topics: 16
                  • Replies: 185
                  • Total: 201
                  • ★★

                  In the VST instance, this can often be assigned within the DAW Host, such as Ableton, and is how I’m assuming it will be handled in the panel I’m developing, but yes it would be nice to have that functionality in the standalone, as long as it doesn’t clash with the DAW host control.

                  The Puppeteer
                  http://godlike.com.au

                  in reply to: Where did the JD-800 Panel go to? #47318
                  Puppeteer
                  Participant
                    • Topics: 16
                    • Replies: 185
                    • Total: 201
                    • ★★

                    There’s a JD panel available here, though as it’s deprecated, not sure how it will work.

                    Panels deprecated

                    The Puppeteer
                    http://godlike.com.au

                    in reply to: CTRLR-VST midi error #47317
                    Puppeteer
                    Participant
                      • Topics: 16
                      • Replies: 185
                      • Total: 201
                      • ★★

                      Just on this, I think it’s actually a limitation of most PC MIDI drivers, rather than a ctrlr issue.

                      The Puppeteer
                      http://godlike.com.au

                      in reply to: pg 300 controller values #46552
                      Puppeteer
                      Participant
                        • Topics: 16
                        • Replies: 185
                        • Total: 201
                        • ★★

                        I don’t have the hardware or run the panel in question, but normally the panel is designed to interface with a particular synth so if you move a knob on the screen it will send out the appropriate MIDI to change that value on the synth.

                        If you want to control the panel faders from a controller device, then either a) the panel creator has to code for it specifically (which is unlikely due to the ease of option b) or you b) use a VST host to assign the controller to the VST knobs.

                        The Puppeteer
                        http://godlike.com.au

                        in reply to: CTRLR-VST midi error #46551
                        Puppeteer
                        Participant
                          • Topics: 16
                          • Replies: 185
                          • Total: 201
                          • ★★

                          I’ve found the same thing with the PC3 editor I’m building. It doesn’t seem to be multiclient. I thought it was the PC3’s MIDI interface, but it might be Ctrlr

                          In ableton, it’s pretty easy to work around, just turn the MIDI device off in Ableton and set it with the Ctrlr VST. You can then reroute Ableton tracks to send to the track with the Ctrlr device on it, and it works as normal.

                          Another option might be one of the virtual MIDI drivers (like MIDI Yoke or CopperLan), where you can use the virtual MIDI cable as a sort of sacrificial MIDI port and just forward it to your normal MIDI interface.

                          The Puppeteer
                          http://godlike.com.au

                          in reply to: Global variable confusion #46236
                          Puppeteer
                          Participant
                            • Topics: 16
                            • Replies: 185
                            • Total: 201
                            • ★★

                            I haven’t had much luck with the global variables in the right pane.

                            Any variable declared in LUA appears to be global to the panel anyway, so I’m just using them and building the messages in LUA.

                            The Puppeteer
                            http://godlike.com.au

                            in reply to: Korg Poly 800 MKII #46235
                            Puppeteer
                            Participant
                              • Topics: 16
                              • Replies: 185
                              • Total: 201
                              • ★★

                              Hi AHCS,

                              From what I read in the manual, the pitch and filter mod are the only 2 parameters that can be controlled in real time. Probably volume and pan as well.

                              From what I can tell (and I don’t have a poly 800 to test it with) all of the sysex stuff if for dumps.

                              Conceivably you could build a panel to allow offline editing and then dump the patch to the Poly 800, but I don’t think it will allow real time control, based on what I read in the manual.

                              Unfortunately I don’t have the time to work on a panel with you, and not having a Poly 800 to develop with will make it difficult. I’m currently immersed in my Kurzweil PC3 editor panels, which will be an enourmous job given that a) no SYSEX or control spec has been released, meaning I need to completely reverse engineer it myself from trial and error, and b) there are probably more than 10,000 parameters that can be controlled.

                              Am happy to answer questions if I am able, on the forum though and give what support I can, for you to do it.

                              I’m still very new at this, but the Poly 800 should be an achievable panel for a beginner, with a bit of work.

                              I’d suggest the following steps.

                              1) work out how to manually dump from the Poly 800 to something like SendSX (http://www.bome.com/products/sendsx)

                              2) Isolate a patch from the dumps for testing

                              3) Work out how to send that patch manually from Ctrlr using a button and the SYSEX box in the right pane.

                              4) Work out how to send the patch manually using LUA (panel:sendMidiMessageNow(m) will be useful where m is your SYSEX String) and how to trigger that from a panel control.

                              5) Work out how to assign knobs and sliders to variables and to substitute them into the sysex string prior to sending it for a single control

                              6) Repeat step 5 for all other controls

                              7) Make it look pretty.

                              The Puppeteer
                              http://godlike.com.au

                              in reply to: Korg Poly 800 MKII #46146
                              Puppeteer
                              Participant
                                • Topics: 16
                                • Replies: 185
                                • Total: 201
                                • ★★

                                No worries.

                                The easiest way is to create a new panel.

                                Right click on the panel and add a uiSlider.

                                With the uiSlider (modulator-1) selected (should have an orange box around it), scroll down in the right pane until you get to the MIDI section.

                                Set midiMessageType to CC
                                set midiMessageCtrlrNumber to 2 (for filter cutoff, or 1 for pitch).

                                Up the top, select the Panel menu and select Panel Mode
                                In the MIDI menu select your MIDI output and set it to channel 1.

                                Now you should be able to play a note and use the mouse to move the new knob and it should change your filter cutoff.

                                I thought about the range today, and it actually ranges from 0 to 78 (hex) or 120 (decimal), but it will only have 16 steps over the range. It’s essentially a full knob range anyway.

                                The Puppeteer
                                http://godlike.com.au

                                in reply to: New to Ctrlr #46097
                                Puppeteer
                                Participant
                                  • Topics: 16
                                  • Replies: 185
                                  • Total: 201
                                  • ★★

                                  There’s a few of us in the same boat, so keep the discussions going here and hopefully we can build our knowledge quickly.

                                  The Puppeteer
                                  http://godlike.com.au

                                  in reply to: Korg Poly 800 MKII #46096
                                  Puppeteer
                                  Participant
                                    • Topics: 16
                                    • Replies: 185
                                    • Total: 201
                                    • ★★

                                    From the manual, it looks like real time control is very limited (pitch, filter cutoff)

                                    The messages for pitch are Bch 01 nn (where ch is the midi channel and n is in the range of 8 – 78 and is the Most significant byte (MSB). It has 4 bit resolution (so 16 values)

                                    The messages for filter cutoff are Bch 02 nn. same format as above.

                                    SYSEX can be used for editing patches off line and transmitting to the synth. The SYSEX dump format is actually pretty well detailed.

                                    The Puppeteer
                                    http://godlike.com.au

                                    in reply to: Matrix 6R SysEX CTRL #45645
                                    Puppeteer
                                    Participant
                                      • Topics: 16
                                      • Replies: 185
                                      • Total: 201
                                      • ★★

                                      Not familiar with the Matrix, but a couple of things to check on Ctrlr.

                                      Have you set a MIDI output from the MIDI menu at the top.

                                      Have you checked that MIDI is being transmitted using the MIDI Monitor?

                                      The Puppeteer
                                      http://godlike.com.au

                                      in reply to: Need help with complex MIDI CC Expression #45298
                                      Puppeteer
                                      Participant
                                        • Topics: 16
                                        • Replies: 185
                                        • Total: 201
                                        • ★★

                                        Never mind, I worked it out.

                                        There’s probably a much better way of doing this, but this works

                                        -- get the MIDI Channel from the panel and set ch to the hex representation of that
                                        -- ready for transmitting as part of the MIDI message.
                                        -- Will need to move this either to InitializePanel and/or to a method when MIDI Channel changes
                                        
                                        ch = string.format("%x",L(panel:getPropertyString("panelMidiOutputChannelDevice")))
                                        
                                        -- for debugging
                                        -- console (ch)
                                        
                                        if ch == "1" then
                                        	Mch = 0xb0
                                        elseif ch == "2" then
                                        	Mch = 0xb1
                                        elseif ch == "3" then
                                        	Mch = 0xb2
                                        elseif ch == "4" then
                                        	Mch = 0xb3
                                        elseif ch == "5" then
                                        	Mch = 0xb4
                                        elseif ch == "6" then
                                        	Mch = 0xb5
                                        elseif ch == "7" then
                                        	Mch = 0xb6
                                        elseif ch == "8" then
                                        	Mch = 0xb7
                                        elseif ch == "9" then
                                        	Mch = 0xb8
                                        elseif ch == "a" then
                                        	Mch = 0xb9
                                        elseif ch == "b" then
                                        	Mch = 0xba
                                        elseif ch == "c" then
                                        	Mch = 0xbb
                                        elseif ch == "d" then
                                        	Mch = 0xbc
                                        elseif ch == "e" then
                                        	Mch = 0xbd
                                        elseif ch == "f" then
                                        	Mch = 0xbe
                                        else 
                                        	Mch = 0xbf
                                        end -- if
                                        
                                        -- Controller 1 Program
                                        	m = CtrlrMidiMessage({Mch, 0x6e, 0x02})
                                        	panel:sendMidiMessageNow(m)
                                        
                                        -- Controller 2 Layer.  Get the layer from the AEnv1TLayer control	
                                        	m = CtrlrMidiMessage({Mch, 0x6f, panel:getModulatorByName("AEnvA1TLayer"):getValue()})
                                        	panel:sendMidiMessageNow(m)

                                        The Puppeteer
                                        http://godlike.com.au

                                        in reply to: Need help with complex MIDI CC Expression #45286
                                        Puppeteer
                                        Participant
                                          • Topics: 16
                                          • Replies: 185
                                          • Total: 201
                                          • ★★

                                          Just one more question on this,

                                          How would you make the midi channel dynamic (ie set 0xbn) where n is the MIDI channel of the host or panel

                                          The Puppeteer
                                          http://godlike.com.au

                                          in reply to: Need help with complex MIDI CC Expression #45266
                                          Puppeteer
                                          Participant
                                            • Topics: 16
                                            • Replies: 185
                                            • Total: 201
                                            • ★★

                                            Hi Dasfaker,

                                            Thanks so much for your help. I got it working, now the hard work begins to start populating it all.

                                            I’m sure I’ll have more questions as I get my head around everything.

                                            Just one minor change for anyone coming along afterwards

                                            One of the lines above is missing a “)”

                                            m = CtrlrMidiMessage({0xb0, 0x6f, panel:getModulatorByName(“AEnvA1TLayer”:getValue()})

                                            should be

                                            m = CtrlrMidiMessage({0xb0, 0x6f, panel:getModulatorByName(“AEnvA1TLayer”):getValue()})

                                            The Puppeteer
                                            http://godlike.com.au

                                          Viewing 20 posts - 161 through 180 (of 185 total)
                                          Ctrlr