Tedjuh

Forum Replies Created

Viewing 20 posts - 1 through 20 (of 97 total)
  • Author
    Posts
  • in reply to: how to send program change with LUA #121248
    Tedjuh
    Participant
      • Topics: 9
      • Replies: 97
      • Total: 106
      • ★★

      I think Baus means 0XF0 instead of 0x0F 🙂

      The first 3 bytes are the MSB if I’m correct. So I guess you need to shoot another two CtrlrMidiMessages for the LSB and the Program Change. Like this:

      msb = CtrlrMidiMessage(0xB8, 0x00, 0x7F)
      lsb = CtrlrMidiMessage(0xB8, 0x20, 0x00)
      pc = CtrlrMidiMessage(0xC8, 0x05)

      panel:sendMidiMessageNow(msb)
      panel:sendMidiMessageNow(lsb)
      panel:sendMidiMessageNow(pc)

      There are probably better ways to do this..

      If you want to send them in one message in sysex format, you need what Baus says. But you need to know the right format for your synth as well. Example, for my synth (Roland SH-201) it’s: F0 41 10 00 00 16 12 01 00 00 00 MSB LSB ProgramChange 00 F7. Where MSB, LSB, ProgramChange are the values of 7F, 00, 05 of your example. But I need to know for which synth you are developing a panel to help you any further with that.

      in reply to: Send patch change #120939
      Tedjuh
      Participant
        • Topics: 9
        • Replies: 97
        • Total: 106
        • ★★

        What do you mean by “Memory address”? The bytes or address that needs to be changed to make the THR10 accept the sysex? And which device are we talking about? The THR10, THR10II, THR5A, THR10X? Because they are all different from each other concerning the sysex.

        But to take your patch example:

        F0 — Start of Sysex
        43 — Yamaha ID
        7D — Machine ID
        00 02 0C — Probably Midi Channel 1 memory or bank address, not sure.

        44 54 41 — Don’t know, probably a check for a device number
        31 — I guess the THR10II ID
        41 6C 6C 50 — don’t know, could be tap/ tune settings, just a wild guess
        00 00 7f 7f — I think this is to tell that the patch name is 128 bytes and the data is 128 bytes
        The 00 00 could be “reading or sending” as in memory address 00 00 or 01 01.
        — byte 18 -> 146 — patch name. (Some pretty long-ass name possible)
        — byte 147 -> 275 — patch data. With a lot of empty bytes at the end.
        2c — probably a checksum
        F7 — End of sysex

        There is a Demo Panel called “send patch name” in the demo panels folder of Ctrlr. It shows you how to put different blocks of bytes together to send one message. But investing some time to learn Lua would be a good thing to do as well. Just a word of advice.

        in reply to: Yamaha THR10II not using Midi standard data ? #120928
        Tedjuh
        Participant
          • Topics: 9
          • Replies: 97
          • Total: 106
          • ★★

          The THR10II has windows/ mac software and even Android/ Ios apps. I guess you are on Linux?

          The THR10II sends and receives Sysex. But there is no midi-implementation so you have to find out those messages yourself. I don’t own a THR10II so I can’t do that for you. Analyze the traffic, write it down, rinse, and repeat. Once you have done all that, then you can create a panel to control the THR10II.

          The software does save/ load presets to an XML file. It should be possible to “read” those, or actually, convert them to a sysex message. But once you know all the sysex it is possible to save/ load those messages to a data file and not XML.

          Good luck.

          in reply to: Need a Little help with roland panel uicombo #120603
          Tedjuh
          Participant
            • Topics: 9
            • Replies: 97
            • Total: 106
            • ★★

            Because this sysex doesn’t change a patch. 34 00 XX to 34 09 XX just gives you one patch name of 10 digits/ letters when you receive a dump. With xx being the character/digit. It wouldn’t work anyway because XX doesn’t represent a character, only 20 to 7f does.

            To send a patch change you probably need a different offset address and a different start address corresponding with the number of the patch you want to change to. Hard to tell which because I can’t see it in the pictures. Need the whole sysex implementation for that.

            in reply to: Is there a way to display different data in the Bubble #120585
            Tedjuh
            Participant
              • Topics: 9
              • Replies: 97
              • Total: 106
              • ★★

              Tick “Display popup bubble when dragging” at the bottom of Component. Set minimum value to -64, maximum to 64. And it should do as you ask.
              I think you will need lua for the 20ms to 2000ms, I’m afraid.

              in reply to: Send whole page at once #120512
              Tedjuh
              Participant
                • Topics: 9
                • Replies: 97
                • Total: 106
                • ★★

                A little bit more information would help a lot. So if you could answer the following questions:

                1. Which synthesizer? Do you know the sysex to request a sysex dump or the sysex to send a dump to the synth?
                2 Does the synth already react if you turn knobs or move sliders in your “panel” and vice versa?

                But to answer your questions.. yes it is possible to send a dump or to receive one. And yes it is possible to save a dump. (See Dnaldoogs Universal Dump recorder in the panels sections of the ctrlr site.)

                in reply to: position of data in sysex received #120485
                Tedjuh
                Participant
                  • Topics: 9
                  • Replies: 97
                  • Total: 106
                  • ★★

                  Totally forgot I had to add that link to my post. Thank you for that. Not that the link is very useful though.

                  You say that the MAX doesn’t allow for local storage of presets. Are you sure? Because the manual says the MAX has 100 preset banks, 80 that are preconfigured, 20 empty banks where you can store presets. Ok, you need a Prophet 8 or a Commodore 64. Probably have one laying under the couch somewhere. Or search for: “Free patch editor software for the Six-Trak and MAX”. on uncle Google. That is if you are on windows. And I don’t know if it works on Windows 10 either or maybe in compatibility mode. I don’t even know if it is able to store presets to the 20 empty banks.

                  But there is another way.

                  For storing presets locally on the computer, Dnaldoog made a Universal Sysex Dump Recorder. Now the only thing left is to make your panel react to those Sysex messages. You can build your own preset manager then. How to decipher the Sysex is well-described in this topic. And you will need to write some Lua to make the panel react to those Sysex files.

                  Think of a ListBox or ComboBox with some Sysex presets. When you click on one of those presets, the Sysex is then handled by a midiReceived Lua file. It shouldn’t send out the Sysex but handle it locally. That will make your panel reflect the Sysex preset and since Ctrlr is bi-directional the MAX will take over those values for the parameters. Quite a task for a lowly noob programmer, I know.

                  I wish I could be more helpful than this but in all honesty, I’m too busy with other things at the moment. My gf needs someone to do the heavy lifting at Ikea and groceries.

                  in reply to: Has anyone built CTRLR against the most recent ver of Juce #120445
                  Tedjuh
                  Participant
                    • Topics: 9
                    • Replies: 97
                    • Total: 106
                    • ★★

                    Maybe the fresh install isn’t necessary. I was able to build Ctrlr 6.0. The one that is in the master branch at the Github page is version 6.04 if I’m not mistaken. Go to the stable branch and try the commit from January 10th, 2020. It even says “Linux project update”. What more do you want? If you want to download version 5.3.201 you have to go back to March 2016. I’ll have to search for the right date.

                    Are people building VST’s for Linux? Depends on how many people actually use Linux, right? But I’m afraid that the majority uses Windows or macOS. It is possible to run Windows VST’s through Wine or in certain Linux Daws like Carla or Reaper. There are even wrappers to run Windows VST’s on Linux. So I guess the answer to your question is: There is no need to build VST’s specific for Linux.

                    Ok, Linux uses his own VST format, LV2. But I don’t think big companies want to spend time on building an LV2 just because Linux has a much smaller user base and therefore it’s not commercially interesting. Juce doesn’t support LV2. Since Ctrlr is based on Juce, Ctrlr doesn’t support it as well. Unfortunately.

                    in reply to: Has anyone built CTRLR against the most recent ver of Juce #120423
                    Tedjuh
                    Participant
                      • Topics: 9
                      • Replies: 97
                      • Total: 106
                      • ★★

                      I never compiled Ctrlr on Linux. Can’t help you with a tutorial about that. What I do know is that the latest version of Ctrlr, version 6.(something) was built with Juce 5.1. Go to the repository on Github. Download the master branch. Download the Juce that the master branch is pointing to and do the same for the panels folder. Search the forum, there are a few topics that deal with compiling for Linux.

                      When you scroll down there’s a sort of guide on how to compile for Linux:

                      Linux
                      A build.sh script is provided in Builds/Generated/Linux/Standalone, a symlink of that script is located in Builds/Generated/Linux/VST and is used to create a precompiled header and then to trigger the build using make. You can do that manually if you like just to have a look at the script, it’s really simple.

                      A more complex solution exists in Scripts/post-commit, this script will build all solutions for the current architecture, it will also prepare the system for the build, unpack boost.zip check some packages (on Ubuntu only for now) and start the build. At the end it will create a self-extracting Ctrlr.sh file in Packaging/Linux (create using makeself.sh), it will also try to scp it to ctrlr.org but that will fail without the correct ssh key, you can just comment out the scp line in post-commit.

                      The post-commit script takes an argument “clean” if you wish to clean all the intermediate files before building. If you want to ignore any package errors that it reports (i assume you know your system better than my script) then just add -f as an option when building.

                      in reply to: Ctrlr can’t be reached sometimes and somewhere #120420
                      Tedjuh
                      Participant
                        • Topics: 9
                        • Replies: 97
                        • Total: 106
                        • ★★

                        Many reasons why..

                        When you ping the connection to the Ctrlr Site you will see it passes a few servers. You do not make a direct connection. It goes from one server to another to another to another and then reaches the server where the Ctrlr site is hosted. Now depending on how fast the provider recognizes that a certain server is down, the connection gets restored or routed to another server to reach the same end.

                        In that case, you’ll see that you might not get a connection with a landline but you can get a mobile connection or vice versa. The same goes for the provider that your friend uses might be different from yours thus avoid that server that is down.

                        You could even try a VPN because it makes a whole different route than your provider does. You could even try google translate (uhuh!!) and set languages from English to English, because google translate routes the website over its own servers. (And funny enough, that gives a 404 as well at the moment).

                        in reply to: How do I use uiCombo? #120361
                        Tedjuh
                        Participant
                          • Topics: 9
                          • Replies: 97
                          • Total: 106
                          • ★★
                          in reply to: SysEcx Help (Roland FA 06, SN-S Edit) #120331
                          Tedjuh
                          Participant
                            • Topics: 9
                            • Replies: 97
                            • Total: 106
                            • ★★

                            The Portamento can be switch on and off. The Portamento has modes: “Normal” and “Legato”. Has a Rate and Time setting and last but not least, a note from which the portamento should start before it ends up at the note that is being played. See page 20, top left section. Maybe you need to fiddle with those settings to get what you want.

                            You are right. The different partials just need a different “offset”. So it’s easy to assign all the modulators for another partial when you have one partial done. But That’s just achieved by copy and paste. There’s no macro way of handling it, unfortunately.

                            Duplicate panels. Might work. But isn’t easier for the end-user to put it all in one panel?

                            For the AU and Logic or reaper questions, can’t help you with that. Windows user here. There’s a mac in the house here somewhere but it’s occupied by my Gf.

                            in reply to: Can I create “Tabs” or “Pages” within a Panel? #120330
                            Tedjuh
                            Participant
                              • Topics: 9
                              • Replies: 97
                              • Total: 106
                              • ★★

                              Yes. This is possible. You can divide the possibilities into three categories:

                              1. Tabs.
                              Right-click in the Ctrlr Window. Choose “Statics”. Setup the Tabs. Then the end-user can choose the tab by clicking the “label” of the corresponding Tab.
                              2. Layers.
                              In the Menubar choose “Panel”.. then “Layer Editor”. This will need some Lua to switch Layers.
                              3. Groups.
                              Right-click in the Ctrlr Window. Choose “Statics”. This will also need some Lua. Basically, you put some Modulators in a Group, on top of each other and set them to visible or invisible (By writing some lua code for it.)

                              Plan how you want to achieve what you have in mind. Are the three partials handled separately from each other? Then you just need 3 tabs. You want to be able to set common parameters for all three? Add a 4th tab. And so on. It’s up to you.

                              in reply to: SysEcx Help (Roland FA 06, SN-S Edit) #120304
                              Tedjuh
                              Participant
                                • Topics: 9
                                • Replies: 97
                                • Total: 106
                                • ★★

                                Glad to hear. I edited the mistake so now it shows the right Sysex. But luckily you found out yourself.

                                If you reach page 30, there is another fun Roland Sysex implementation regarding the “Wave number” or offset address 00 35 from the SuperNATURAL Synth Tone Partial. (Seriously, who comes up with those names?) Let me know if you need help with that one.

                                in reply to: SysEcx Help (Roland FA 06, SN-S Edit) #120300
                                Tedjuh
                                Participant
                                  • Topics: 9
                                  • Replies: 97
                                  • Total: 106
                                  • ★★

                                  Could you try the next steps?

                                  — In Ctrlr, create a knob or fader for the filter cutoff.
                                  — Fill in name etc, min max value, colors.. up to you.

                                  — Then in the “MIDI” Pane:
                                  — Set midiMessageType to: Sysex
                                  — In the midiMessageSysexFormula fill in:
                                  F0 41 10 00 00 77 12 19 01 20 0c xx z5 F7

                                  The xx is the value from 00-127 (which you setup under component) and the z5 handles the CheckSum. It is done internally for Ctrlr and is, I believe, just for Roland Synths.

                                  The SS is, I think, the “start” of the CheckSum and S1 the end of the Checksum. The Hex in between needs to be counted for the Checksum. Probably to calculate the sysex in the A800 software. (Beats me why they would do it this way, but hey, “Roland”.) The synthesizer just needs the Sysex that you see in the Ctrlr input monitor to sync with Ctrlr and vice versa.

                                  • This reply was modified 3 years, 6 months ago by Tedjuh. Reason: Typo in the Sysex
                                  in reply to: Creating images using LUA #120299
                                  Tedjuh
                                  Participant
                                    • Topics: 9
                                    • Replies: 97
                                    • Total: 106
                                    • ★★

                                    Could you post two dumps? One for the “GETGRAPHICS” or 18h command and one for the “SCREENREPLY” or 19h command? And a picture of the screen at the time the command is done?

                                    The text and parameter names and values won’t be a big problem because those are just ascii representation. I think the graphics are for the “faders” and other things that need to be drawn.

                                    It would help to find a solution to your problem.

                                    in reply to: Anybody have a copy of version 5.3.163 they can share? #120284
                                    Tedjuh
                                    Participant
                                      • Topics: 9
                                      • Replies: 97
                                      • Total: 106
                                      • ★★

                                      Follow the link Dnaldoog posted one post before yours. You can download the 5.3.163.dmg there.

                                      in reply to: Creating images using LUA #120282
                                      Tedjuh
                                      Participant
                                        • Topics: 9
                                        • Replies: 97
                                        • Total: 106
                                        • ★★

                                        Is fillRectList supported by Ctrlr? Because Juce says:

                                        FillRectList()
                                        If you have a lot of rectangles to draw, it may be more efficient to create a RectangleList and use this method than to call fillRect() multiple times.

                                        In my opinion, it’s easier to translate to a multidimensional array too.

                                        Just wondering, because I think that Ctrlr doesn’t get happy when you throw 15.360 png’s at it. |I know it can handle that many rectangles though (cough, arpeggiator, cough).

                                        in reply to: Using Layers Tutorial 1.0 #120281
                                        Tedjuh
                                        Participant
                                          • Topics: 9
                                          • Replies: 97
                                          • Total: 106
                                          • ★★

                                          Will do Dasfaker. Thank you. I’ll start a new topic soon with some links to manuals/ tutorials instead of hijacking this thread. Excusez-moi for that Dnaldoog.

                                          Back on topic. I prefer layers over tabs. I don’t like the “folder structure” of tabs but that’s more of an aesthetic thing. I think Layers are easier to maintain, as in how to set them up in Ctrlr. The only thing that is kind of a shame is that layers are the “full panel” that is layered. But I think Spiffo has shown that a uiGroup can be handled as a “partial panel layer”. I knew I could set modulators to visible or invisible but never thought about doing it with a uiGroup. Nice!!

                                          in reply to: Using Layers Tutorial 1.0 #120262
                                          Tedjuh
                                          Participant
                                            • Topics: 9
                                            • Replies: 97
                                            • Total: 106
                                            • ★★

                                            Nice work, Dnaldoog. Easy to follow and transparent explanation.

                                            — Rant mode on —

                                            I don’t know who maintains the Ctrlr site or who is a moderator at this forum. But isn’t it a good idea to make a category for manuals? Because those “manuals” are a very valuable source on how to get things done in Ctrlr. I know a lot of answers can be found on the forum and inside panels but it doesn’t make searching for an answer to a particular problem that much easier.

                                            For example: If I had known earlier on that it’s good practice to do:
                                            modulatorNamedSomething = panel:getModulatorByName(“modulatorName”)
                                            in a init file, and then later call it with
                                            modulatorNamedSomething:getProperty(“property”)
                                            it would have saved me an amount of time going over all my Lua files again.

                                            Hell, I wish I knew how LookAndFeel works because the Demo file doesn’t work for me. How to start with a
                                            Custom Component? How do you add children to a parent component? How to make a librarian? So many questions but not easy to find an answer for it.

                                            I would even like to contribute as I did with the manual on how to compile Ctrlr. Goodweather made a manual once but it’s somewhere at page 65. Dnaldoog knows his stuff and writes easy to understand manuals as well like above. Let’s make life easier. Let’s see what open-source is really about.

                                            — Rant Mode Off —

                                          Viewing 20 posts - 1 through 20 (of 97 total)
                                          Ctrlr