Tedjuh

Forum Replies Created

Viewing 20 posts - 61 through 80 (of 97 total)
  • Author
    Posts
  • in reply to: Arpeggiator #119477
    Tedjuh
    Participant
      • Topics: 9
      • Replies: 97
      • Total: 106
      • ★★

      Warning, very long post:

      To get an idea of what I’m working at, see attached picture 1. The GUI is still work in progress.
      — On top: comboBox that controls the number of steps (1-32). (Working)
      — At the bottom: Vertical bars to set the velocity (0-127) for each selected note. (Partially working)
      — To the left: A slider to be able to scroll: (Working)
      — In the middle: PianoBar (Black and white blocks) from C-1 to G9 (127 notes) (Now on middle octave)
      — To the Right: NoteBar (White and grey Rows) to set the position of the note in steps (1-32)

      Everything except the comboBox and Slider are separate uiCustomComponents. Later to be made as one big uiCustomComponent. But for starters..

      What’s working for now:
      Sysex, generated with mouse events. Synthesizer accepts it and plays it the right way.
      — The Sysex is also used to paint the blocks. The paint script iterates over the Sysex to define the note (0-127), which position (1,32), the width (1,32) and last but not least the velocity (1,127) to be painted.
      — By double-clicking on the piano bar, the note bar gets emptied.
      — When I click on a row, a red block gets painted on mouseDown.
      — Blocks are deleted when double-clicking at them.
      — No overlapping of blocks possible if the Sysex is correct.
      — When I mouse over a block, you are able to drag it to become wider or smaller.

      But when I dragged one of the blocks, they all became wider or smaller. I figured that it had something to do with not naming different blocks. In the Juce Graphics Class I can call a Rectangle like:
      void Graphics::drawRect (Rectangle< int >rectangle,int lineThickness = 1 ) const

      So I figured, create different named blocks. Tried that with the following codes:
      In the init file the block gets created:

      
      block1 = Rectangle()
      

      In the paint script I do:
      (x,y,w,h and l are all set)

      
      if arp1:getByte(1) > 0 and arp1:getByte(1) < 128 then
      g:setColour(Colour(0xFFFF0000))
      block1:setBounds(x,y,w[width],h)			
      g:drawRect(block1,l)
      end
      

      Read something about square brackets not being shown on this forum. At some mouse events there’s some calculation done that gives a value that is being read from a table with x[1] and w[width]. x = position of the block in height, w is the width of the block.

      I am able to set different colors, widths, heights and so on for the blocks when I add more blocks to the init file and call them in the paint script with block1, block2, etc. (See picture 2.) I can even paint blocks on different notes. (Disabled for now). That is all working.. it’s just the naming convention for the graphics class that’s bugging me.

      According to the Sysex implementation I can select 16 different notes with 32 positions each. So, a max of 16×32 = 512 “possible” blocks. Now I don’t mind some coding but.. that would mean a hell lot of code. Just to create 512 Rectangles, let alone do the same for the code above for 512 different rectangles. So, first I want to be able to create 512 blocks/ rectangles, to be able to call them separate from each other in the paint script. But I can’t even seem to do that..

      For instance if I want to number different modulators I do:
      for i = 1,512
      panel:getModulatorByName(string.format(“block%s”,i)):getComponent()
      end

      It’s working because the modulatorName is a string. But I’m not adding a modulator, right?

      for i = 1,512 do string.format(“block%s:Rectangle()”,i) end (Doesn’t work, string)

      for i = 1,512 do block..i..= Rectangle() end (Doesn’t work, gives error no “..” allowed before “=”)

      Creating a table..

      bRectangle = {}
      for i = 1,512 do
      bRectangle = “block[“..i..”] = Rectangle()”
      end

      Doesn’t work either because I can’t call:
      bRectangle[1]:setBounds() or
      g:drawRect(bRectangle[1],1)
      in the paint script. Both return nil.

      Anyone? 🙁

      Attachments:
      You must be logged in to view attached files.
      in reply to: Arpeggiator #119468
      Tedjuh
      Participant
        • Topics: 9
        • Replies: 97
        • Total: 106
        • ★★

        Thank you for the input but you are creating a table as far as I can tell. But in the paint script I can’t do something like a[9]:setBounds(). It will return nil.

        But first let me try to create 512 rectangles like: block1 = Rectangle(). Something is wrong with my syntax or way of thinking how to do it.

        For i = 1,512 do string.format(“block%d = Rectangle()”,i) end
        Returns nil, probably because it’s a string.
        But block..i.. = Rectangle() gives an error telling me there can’t be concatenation before =.

        Bit at a loss here, is it possible at all to do it with a for loop?

        in reply to: Ctrlr and Windows 10 2004 #119450
        Tedjuh
        Participant
          • Topics: 9
          • Replies: 97
          • Total: 106
          • ★★

          I’m going to type a longer post in a new thread later on about the arpeggiator. But there is no syncing or blinking LED going on. The Roland SH-201 has its own built-in programmable arpeggiator. Just not programmable on the synth itself. But afaik the old Sound Designer Software from Roland, which didn’t work for me on windows 7 or 10, had a programmable arpeggiator and according to the sysex implementation it is possible to program it yourself. So, bring in CTRLR.

          Lots of reading, trial and error, playing DasFaker’s Pong Panel and a lot of help from DnalDoog later, there’s now a partial working arpeggiator. I can build the sysex and the synth accepts it but its the graphics side that’s holding me back. You’ll hear from me later.

          in reply to: Ctrlr and Windows 10 2004 #119440
          Tedjuh
          Participant
            • Topics: 9
            • Replies: 97
            • Total: 106
            • ★★

            Ah.. the folder issue.. had the problem as well as told in an earlier post. Glad you solved it.

            The other discussion:
            I have huge respect for the work that atom did/ does, especially given the fact it’s open source and free for all to use. I would love to contribute but I don’t have much coding experience. And I got the feeling atom is holding ctrlr close to himself. Which is his right to do so. Doesn’t take away the fact that there are a lot of juce classes I want to see added to ctrlr or give it a more user-friendly update or something. But again, that’s up to atom.

            Ctrlr has quite a steep learning curve. Been working for over a year on my first panel. No background in lua, sysex, coding or whatsoever. Been on the forum for weeks, been looking at other panels for months. But it is doable. When I get my arpeggiator working I’m going to release the first beta panel.

            in reply to: Ctrlr and Windows 10 2004 #119426
            Tedjuh
            Participant
              • Topics: 9
              • Replies: 97
              • Total: 106
              • ★★

              Still on version 1909 here. So I won’t be of much help here. Thing is that I found out the hard way that I had to install older c++ redistributables to get some vst’s from well-known manufacturers to work. Had to tinker in the registry. Had to put vst dll’s in certain windows folders before studio one or fruity loops would even recognize them, and so on. And sometimes there’s no way to tell where the problem lies. Is it windows, the vst.. missing packages?

              To Proton. Yes, the day may come that ctrlr stops working. Would be a shame indeed. But there will always be vm’s. Or that might be the day to take the plunge and do the same thing in juce itself. Or Hise.

              in reply to: Ctrlr and Windows 10 2004 #119420
              Tedjuh
              Participant
                • Topics: 9
                • Replies: 97
                • Total: 106
                • ★★

                It does show up when you scan for plugins in studio one but doesn’t show when you drag it onto a track?

                Does stand alone work? Anything in task manager? All visual c++ libraries installed or other libraries that ctrlr might depend on?

                Tried the dedicated vst3 folder?

                Just a few wild shots..

                in reply to: Tooltips on mouseover #119066
                Tedjuh
                Participant
                  • Topics: 9
                  • Replies: 97
                  • Total: 106
                  • ★★

                  While Tooltip has its own class in juce, I don’t think it’s supported by Ctrlr. I found something in the look and feel class though:
                  void drawTooltip (Graphics &g, const String &text, int width, int height);

                  And this one:
                  getTooltipBounds(const String &tipText, Point screenPos, Rectangle parentArea);

                  So it seems like something of a Tooltip is possible.

                  in reply to: ctrlr and sidv2 #118779
                  Tedjuh
                  Participant
                    • Topics: 9
                    • Replies: 97
                    • Total: 106
                    • ★★

                    Are you trying to connect the MidiBox SID V2 Panel (by TK) to your MidiBox? In Ctrlr, in the top menu under Midi you can set the input and output.

                    The Panel connects through channel 1. Press CTRL-E when in Ctrlr, scroll down to midi in the baron the right to switch to another channel. And in the panel itself you can set the id of the midibox.

                    I don’t use ableton.. so can’t help you with that. Gues you need a vst version or route the midi with loopbe or midiox or something to connect ableton with the standalone version.

                    in reply to: Sysex Math #118732
                    Tedjuh
                    Participant
                      • Topics: 9
                      • Replies: 97
                      • Total: 106
                      • ★★

                      The device ID for the Roland JD XI is “00 00 00 0E”.

                      So he is trying to get at:
                      (19 00 00 00) temporary tone (Digital Synth Part 1)
                      ( 01 00 00) Temporary SuperNatural Synth Tone
                      ( 00 22 00) SuperNatural Synth Tone Partial (3))
                      ( 00 0A) Filter Mode

                      Which goes from 0-7, to swith Bypass, lpf, hpf, bpf and so on. If this is the right parameter, the sysex from the op doesn’t make that much sense to me. Or it must send/ set the LFO Depth at the same time.

                      To make it more confusing there is also:
                      LFO Filter Depth (00 23) -63/ +63 (1-127)

                      But also in the CC Message List (Knob operation)
                      LFO Filter Depth/ partial 1-3/ controller number NRPN MSB:0, LSB:18-20/ Value 0-127

                      LSB 18-20 could explain the 3 messages if it sends the lfo depth for the three partials at once.

                      And yes, the checksum is also missing.

                      in reply to: (text) formatting in AlertWindow() ? #117754
                      Tedjuh
                      Participant
                        • Topics: 9
                        • Replies: 97
                        • Total: 106
                        • ★★

                        Is this of any help?

                        https://www.tutorialspoint.com/lua/lua_strings.htm

                        There are some formatting thingies..

                        in reply to: LCD Synth to LCD Ctrlr #117743
                        Tedjuh
                        Participant
                          • Topics: 9
                          • Replies: 97
                          • Total: 106
                          • ★★

                          Do you know how to do a total dump of all parameters? Might be the readout of the lcd is somewhere in that dump?

                          in reply to: (text) formatting in AlertWindow() ? #117742
                          Tedjuh
                          Participant
                            • Topics: 9
                            • Replies: 97
                            • Total: 106
                            • ★★

                            Shouldn’t that be possible with either addcustomcomponent or addtexteditor? They are both available in alertwindow class in Juce.

                            in reply to: Send Sysex in a Method #117638
                            Tedjuh
                            Participant
                              • Topics: 9
                              • Replies: 97
                              • Total: 106
                              • ★★

                              Nope.. no dictionary. Best thing to do is to look at other panels.. look at demo panels in your ctrlr folder. You can even take a long hard look at the juice classes.

                              The forum has a search function. The forum itself is a good information source to teach you how to program certain things.

                              Daunting, I know.

                              in reply to: LCD Synth to LCD Ctrlr #117625
                              Tedjuh
                              Participant
                                • Topics: 9
                                • Replies: 97
                                • Total: 106
                                • ★★

                                No.. it’s a reply that the lcd dump has been sent as a confirmation. Hence the “reply message”. Silly me..

                                I’ll get back to it..

                                in reply to: LCD Synth to LCD Ctrlr #117616
                                Tedjuh
                                Participant
                                  • Topics: 9
                                  • Replies: 97
                                  • Total: 106
                                  • ★★

                                  In the sysex it says “3n”, the n is the channel at which the sysex is being sent. Try different channels. Like 30 or 31, 32.. just as long until you receive a long sysex.

                                  in reply to: Deselect a listbox #117589
                                  Tedjuh
                                  Participant
                                    • Topics: 9
                                    • Replies: 97
                                    • Total: 106
                                    • ★★

                                    panel:getListBox(“YourListBoxName”):deselectAllRows()

                                    Notice that it doesn’t change the modulatorValue of the deselected Listbox. It just looks like nothing is selected in the deselected listbox. You could add a “Deselected” Item at Item 0, and select it with panel:getListBox(“YourListBoxName”):selectRow(0,false,true). In that case you shouldn’t need deselectAllRows.

                                    Something like this:

                                    Deselected (modulatorValue 0)
                                    Item 1 (modulatorValue 1)
                                    Item 2 (modulatorValue 2)
                                    Item 3 (modulatorValue 3)

                                    in reply to: LCD Synth to LCD Ctrlr #117588
                                    Tedjuh
                                    Participant
                                      • Topics: 9
                                      • Replies: 97
                                      • Total: 106
                                      • ★★

                                      In your picture it shows how you can request a dump for the display.

                                      The display is 144×40 = 5760 pixels. One position (000h to 2cfh) is 8 bits. So, 5760 dots divided by 8 bits should give you 180 bytes of data. So far so good. But I need a dump to figure out how a pixel is defined in those 8 bits. So if you would be so kind to copy the outcome of the following request: f0 42 30 4c 1f f7.. with a screenshot attached of the display at the moment you do that request. Should make life a lot easier.

                                      Also, did you see page 9 of the manual under “display”?

                                      in reply to: LCD Synth to LCD Ctrlr #117571
                                      Tedjuh
                                      Participant
                                        • Topics: 9
                                        • Replies: 97
                                        • Total: 106
                                        • ★★

                                        Is all the information of the lcd being sent with a dump? If yes then it should be possible with a lua script.

                                        Could you add the portion of the lcd dump with the corresponding text on the display?

                                        in reply to: Deselect a listbox #117570
                                        Tedjuh
                                        Participant
                                          • Topics: 9
                                          • Replies: 97
                                          • Total: 106
                                          • ★★

                                          https://docs.juce.com/master/classListBox.html#a60b4c8ea8a51c04d43899fd51f349794

                                          Look at deselectallrows. Not sure whether you have to use a mouselistener or modulator change.

                                          in reply to: ListBox multiple select? #117404
                                          Tedjuh
                                          Participant
                                            • Topics: 9
                                            • Replies: 97
                                            • Total: 106
                                            • ★★

                                            Autodafe, which synth? Do you have a midi implementation? Or list with sysex?

                                            You can do it with lua. Or directly in the send midi/ sysex box in the editor. Through lua it should work with an if/ else statement. If directly, depending on sysex or midi you send f0 01 10 00 00 01 XX cs f7. Or midi b0 00 XX. Where XX counts from 00 to whatever value. Again.. much easier to tell if you tell us which synth.

                                          Viewing 20 posts - 61 through 80 (of 97 total)
                                          Ctrlr