goodweather

Forum Replies Created

Viewing 20 posts - 501 through 520 (of 550 total)
  • Author
    Posts
  • in reply to: How to identify a component by its name? #68647
    goodweather
    Participant
      • Topics: 45
      • Replies: 550
      • Total: 595
      • ★★★

      Thx Atom for the clarification.
      I remember I tested this without success, hence my post. Anyway I tested it again and got the following.

      OnClick = function(--[[ CtrlrComponent --]] comp, --[[ MouseEvent --]] event)
      	sName= comp:getOwner():getName()
      	console("Name"..sName)
      end

      Error in console:
      At line [-1]: [C]
      Error message: No such operator defined

      Any further hint?

      in reply to: Link to Modulator modulation type property #68620
      goodweather
      Participant
        • Topics: 45
        • Replies: 550
        • Total: 595
        • ★★★

        I’m trying to make a knob that displays text labels rather than numbers

        Hi, not sure if it is the same but I’m doing something similar on my panels. Basically for buttons I’m using a uiImageSlider not displaying any label or value. I’m attaching to it an “On value change” method that modifies an uiLabel text somewhere in an “LCD panel” which is itself a uiGroup.

        All modulators are declared in a PanelLoaded method as:

        	-- Main Screen
        	lblParameter = panel:getModulatorByName("lblParameter")
        	txtInformation = panel:getModulatorByName("txtInformation")
        	txtCurrentValue = panel:getModulatorByName("txtCurrentValue")
        	...
        

        Then, for example for Pitch, I’m using such method

        --
        -- Called when a modulator value changes
        -- @mod   http://ctrlr.org/api/class_ctrlr_modulator.html
        -- @value    new numeric value of the modulator
        --
        Osc1Pitch_OnChange = function(--[[ CtrlrModulator --]] mod, --[[ number --]] value, --[[ number --]] source)
        
        	-- No action if the panel is in bootstrap or program states
        	if not isPanelReady() then
        		return
        	end
        
        	-- Display current pitch
        	Octave = math.floor(value/12)
        	Note = math.fmod(value, 12)
        	if Note==0 then sNote="C"..Octave end
        	if Note==1 then sNote="C#"..Octave end
        	if Note==2 then sNote="D"..Octave end
        	if Note==3 then sNote="Eb"..Octave end
        	if Note==4 then sNote="E"..Octave end
        	if Note==5 then sNote="F"..Octave end
        	if Note==6 then sNote="F#"..Octave end
        	if Note==7 then sNote="G"..Octave end
        	if Note==8 then sNote="G#"..Octave end
        	if Note==9 then sNote="A"..Octave end
        	if Note==10 then sNote="Bb"..Octave end
        	if Note==11 then sNote="B"..Octave end
        
        	txtCurrentValue:getComponent():setPropertyString ("uiLabelText", sNote)
        
        end
        in reply to: Drag and drop between 2 lists #68601
        goodweather
        Participant
          • Topics: 45
          • Replies: 550
          • Total: 595
          • ★★★

          I checked the ListBox component and it is really nice with the automatic scrollbars. Exactly what I need to display the content of the banks in a limited height of a panel.
          Looking to the Demo panel – Drag and Drop, I saw that there are different properties used for Drag and Drop:

          • Paint callback
          • Called when dragging starts
          • Called to check if component is interested in drag event
          • Called when an item is dropped
          • Called when dragging enters this component

          Now, I can do something with the Listbox properties “Called when a mouse is dragged over this component”, “Called when a mouse is down over this component” but I don’t have anything to precisely secure the drop.

          Any help from someone?

          Atom, would it be possible to add the Drag and Drop properties to the ListBox component?
          OR do you have some other suggestion?

          Thx to all for advice!

          in reply to: Andromeda A6 sysex mapping #68599
          goodweather
          Participant
            • Topics: 45
            • Replies: 550
            • Total: 595
            • ★★★

            Hi,
            thx for the good lunch exercise. In fact it is well explained and it is “just” some bitwise operations.
            I build you an Excel file that you can use to input any data and get your sysex string.
            I put some explanations inside it.
            Hope it will help you!

            Attachments:
            You must be logged in to view attached files.
            in reply to: Moog Sub37 panel #68560
            goodweather
            Participant
              • Topics: 45
              • Replies: 550
              • Total: 595
              • ★★★

              OK!
              If you succeed to do fully bidirectional NRPN buttons, I’m interested for my Sub37! I tried and it doesn’t work especialy when setting NRPN out (which is a must if you want to handle all parameters (with CC, you miss half of the panel).
              Once again, doing exactly the same on the Pro2 and there it works perfectly bidirectional in NRPN…
              (FYI, I must also find the Pro2 sysex structure by myself, it is not public but DSI support stated it was very close to the NRPN order – I’ll see)

              in reply to: Moog Sub37 panel #68542
              goodweather
              Participant
                • Topics: 45
                • Replies: 550
                • Total: 595
                • ★★★

                By the way, your panel looks so cool Goodweather! Keep your work on it, because I’m sure it will be better than the official one…

                Thx for your kind words Carl!
                Wait for the Pro2 panel I’m working on (with great inspiration, Midi dialog “stolen with pride” from your Power08 code).
                Btw, I think exactly like you. I don’t understand at all why Moog can’t produce such nice doc as DSI.

                Something else, I can give you the code for envelope graphs (adapted from old panel made by dasfaker but that I made fully flexible in size) OR I could code it for you directly in your Power08 panel.
                The only thing you should do is to foresee an area (uiGroups) where I could put them. Either one graph with a pulldown to select which EG to display OR all graphs at once (this is better).
                So, just adapt the layout of your panel, put the uiGroups and I fix the graphs.
                Just let me know!

                in reply to: DSI Tempest librarian (editor) #68538
                goodweather
                Participant
                  • Topics: 45
                  • Replies: 550
                  • Total: 595
                  • ★★★

                  We could definitively share! I’ll do that as well for my DSI Pro2 panel…
                  Probably in just a few weeks (2?) from now.
                  I want first to complete read/write dumps and actual manipulation of individual parameters.

                  in reply to: Moog Sub37 panel #68536
                  goodweather
                  Participant
                    • Topics: 45
                    • Replies: 550
                    • Total: 595
                    • ★★★

                    Yep, I know. Thx for also pointing this out.
                    I’m sure that they announced the editor and beta program when I published the picture of my editor on the Moog forum… (p6 in topic Sub 37 editor/librarian and VST plugin).
                    I abandoned the work due to total lack of documentation and very unstructured midi implementation (I reversed engineered it and documented it).
                    So I’m also waiting for the official release of the Moog editor but this is now almost 3 months ago…
                    I will clean my editor (remove wave display – temporary, remove tabs to only have the editor – tried to implement the sequencer but too time consuming to find the sysex structure) and publish it here.
                    Visually I prefer my editor over the Moog one and it gives me also the Manual explanations (not sure the Moog editor is doing that – I don’t have the beta).
                    I can read the Sub37 sysex files and this was my primary goal (visualization) as I prefer to manipulate the actual synth.

                    Now I enjoy working on the DSI Pro2 panel. So clean Midi implementation and much better implemented (bi-directional handling with Ctrlr worked directly perfect while it doesn’t with the Sub37). I achieved a lot in just a few days work in comparisons to the weeks and months for the Sub37. Much more rewarding Ctrlr spoken!
                    DSI support guys are also reacting and answering directly on my tech support questions while I never got any reply for my Moog support inquiries.

                    As you are in the beta program, do you know if the editor will be free or not and do you know if it is possible to read the transmitted/received sysex / NRPN messages between the Moog editor and the Sub37 (for example with MidiOX)? Thx!

                    Attachments:
                    You must be logged in to view attached files.
                    in reply to: Moog Sub37 panel #68524
                    goodweather
                    Participant
                      • Topics: 45
                      • Replies: 550
                      • Total: 595
                      • ★★★

                      Hi human fly, I’m busy building a panel for the DSI Pro2 but could help you with your D110. I had one long time ago…
                      For the Pro2 I will make a librarian.
                      I learned Lua with Ctrlr…
                      Anyway, I’m putting the priority on the Pro2 but could guide you for the D110 as a lot is repetitive.
                      The philosophy I’m following is:

                      • I have a uiGroup containing different uiLabels. This represents the screen of the synth
                      • To each uiButton I attach an OnClick event (in fact in Ctrlr it is OnMouseDown) to adapt the screen with manual extracts and to see the actual value of the param and OnChange event to dfisplay the current value
                      • when this is done, you can try reading an exported sysex provided you have its structure (I add to decode everything for the Sub37 but DSI is documenting everything for the Pro2). Don’t remember for the D110 but usually Roland is also well documenting
                      • Then you can build a write sysex
                      • Then you can build the Send and Receive requests messages to the synth (by patch or full bank)
                      • So, let’s touch base and progress together…

                      in reply to: Pack – Unpack sysex data 8 bit to 7 bit #68499
                      goodweather
                      Participant
                        • Topics: 45
                        • Replies: 550
                        • Total: 595
                        • ★★★

                        OK I found the panel. It was the one “hidden” in the Demo panels… I’ll try to understand how this is working…
                        Will combine the utils.unpackDsiData and utils.packDsiData with the methods from the Power08 panel from Carl…

                        in reply to: Pack – Unpack sysex data 8 bit to 7 bit #68498
                        goodweather
                        Participant
                          • Topics: 45
                          • Replies: 550
                          • Total: 595
                          • ★★★

                          Hi, in which DSI Mopho panel is this visible?
                          I downloaded the panel but didn’t see the packing/unpacking code and edit buffer dump.
                          Can you give me the link (need that for my Pro2 panel)?
                          thx!

                          in reply to: Moog Sub37 panel #68483
                          goodweather
                          Participant
                            • Topics: 45
                            • Replies: 550
                            • Total: 595
                            • ★★★

                            Was quicker done than explained. Here is the Excel file…
                            I just used internal functions. Was not needed to perform bit operations (of course, once you have done the analysis you will have to do the bit operations in Lua inside the panel for read and write).
                            And something else not to disappoint you (I figured out that myself hence my switch to Pro2 panel) is the fact that knowing the structure of the file is one thing. The other thing is to know sysex commands to exchange files, to calculate the checksum…
                            Finaly, reading a patch file will be good to analyze and understand patches but maybe not to fully manage your synth from a PC.

                            Attachments:
                            You must be logged in to view attached files.
                            in reply to: Moog Sub37 panel #68482
                            goodweather
                            Participant
                              • Topics: 45
                              • Replies: 550
                              • Total: 595
                              • ★★★

                              Lovely simple…
                              It is clear that this has been build from a write perspective and not a read one.
                              They are taking each parameter at a time, convert them then add the result at the end of a string.
                              The issue with this way of working is that you’d better not add extra values to an existing parameter…
                              Anyhow, I would suggest you to first identify the positions and to start with the obvious 0-127 or 0-16383 as EG Attack and co.
                              You can do that with the procedure I explained above (initial value – save sysex – final value – save sysex – analyse the delta).
                              Then I would suggest that you work in Excel for easier visualization and understanding then for conversion purposes.
                              You should foreseen a few cell for input (one by byte) for example 3 cells. Then you can have cells showing the bit content per 2 bits maybe (use AND and shift operations).
                              Foresee 2 sets of those so that you can directly compare for example initial and final value of a parameter.
                              If you think it is a good approach and need help with such Excel file, just tell me then we can exchange via personal messages…
                              The key in this analysis is visualization.

                              in reply to: uiButton color always to "off" #68475
                              goodweather
                              Participant
                                • Topics: 45
                                • Replies: 550
                                • Total: 595
                                • ★★★

                                Hi arcangeli, please look at my Step by step guide.
                                Very far from covering everything but a good start…

                                in reply to: Moog Sub37 panel #68466
                                goodweather
                                Participant
                                  • Topics: 45
                                  • Replies: 550
                                  • Total: 595
                                  • ★★★

                                  Yep. As they are now providing a free Sub37 editor, I don’t understand what the benefit will be…
                                  For values, on the Sub37 it is like:

                                  --	527-29	|	Amplifier EG Vel Amt	NRPN 533
                                  --		|		40 00 00	0 (0%)
                                  --		|		43 3F 3F	16383 (100%)
                                  --	530-32	|	 
                                  --	533-35	|	Arp Rate		NRPN 403
                                  --		|		40 00 00	0 (2bpm)
                                  --		|		43 3F 3F	16383 (280bpm) 
                                  --	536-38	|	Filter EG Attack	NRPN 505
                                  --		|		40 00 00	0 (0.1 MSec)
                                  --		|		43 3F 3F	16383 (10 Sec)

                                  If you send me your init file then some Filter EG attack for example (0-127? 0-16383?) I could also have a look… Easier to start with a clear simple param.

                                  in reply to: Drag and drop between 2 lists #68460
                                  goodweather
                                  Participant
                                    • Topics: 45
                                    • Replies: 550
                                    • Total: 595
                                    • ★★★

                                    To be honest, I have not grasped the difference between a Custom component and a predefined one. Is there some explanation somewhere? Otherwise, my plan was to do as you explain (with the click, I can figure out what to drag) and my question was how to get an image (or a text) to drag.
                                    At the moment, my idea is simply to drag an empty colored rectangle. How can I draw the patch name on the fly? Easiest would have been to drag a text box rectangle…

                                    in reply to: How to copy lua scripts? #68455
                                    goodweather
                                    Participant
                                      • Topics: 45
                                      • Replies: 550
                                      • Total: 595
                                      • ★★★

                                      Create group and methods in new panel then Copy/Paste… You can use any editor then Copy/Paste…

                                      in reply to: Moog Sub37 panel #68451
                                      goodweather
                                      Participant
                                        • Topics: 45
                                        • Replies: 550
                                        • Total: 595
                                        • ★★★

                                        Exactly.A switch is ON or OFF so basicaly, one bit is enough. The manufacturer can thus combine several ones into one byte. The point is that very different parameters are mixed and this is confusing. For example the ON/OFF of Osc1, Osc2, Sub1, Noise is spread on different bytes.
                                        Now that I decoded everything it is indeed easy to read and extract the values but it has been quite time consuming to figure out everything one parameter position at a time.
                                        Example:

                                        --	059	|	Misc switches		40 + Sum of switches
                                        --		|	00	Off
                                        --		|	01 	Filter EG Exp Attack	NRPN 520 
                                        --		|	02 	Filter EG Latch ON	NRPN 517 
                                        --		|	04 	Filter EG Loop		NRPN 516 
                                        --		|	08 	Filter EG Multi Trig	NRPN 513 
                                        --	060	|	Misc switches			Sum of switches
                                        --		|	00	Off
                                        --		|	02 	Arp Back Forth		NRPN 406
                                        --		|	04 	Arp Invert		NRPN 408
                                        --		|	08 	Arp Latch		NRPN 411
                                        --		|	10 	Arp ON			NRPN 410
                                        --		|	20 	Arp Sync		NRPN 404
                                        --	061	|	Misc switches			Sum of switches
                                        --		|	00	Off
                                        --		|	01 	Amplifier EG Exp Attack	NRPN 520 
                                        --		|	02 	Amplifier EG Latch ON	NRPN 539 
                                        --		|	04 	Amplifier EG Loop	NRPN 538 
                                        --		|	08 	Amplifier EG Multi Trig	NRPN 535 
                                        --		|	10	Amplifier EG Reset	NRPN 536
                                        --		|	20	Amplifier EG Sync	NRPN 537
                                        --	062	|	Misc switches		40 + Sum of switches
                                        --		|	00	Off
                                        --		|	01	OSC KB Reset		NRPN 482
                                        --		|	02 	OSC 1 On		NRPN 490
                                        --		|	04 	OSC Duo Mode		NRPN 486
                                        --		|	08 	OSC Hard Sync		NRPN 481 
                                        
                                        --	063	|	Misc switches		Sum of switches
                                        --		|	00	Off
                                        --		|	01	Glide ON On		NRPN 422
                                        --		|	02	MOD 1 KB Reset		NRPN 426
                                        --		|	04	MOD 1 Sync		NRPN 425
                                        --		|	08	MOD 2 KB Reset		NRPN 451
                                        --		|	10	MOD 2 Sync		NRPN 450
                                        --		|	20	Noise On		NRPN 495
                                        --	064	|	Misc switches		Sum of switches
                                        --		|	00	Off
                                        --		|	01	Filter EG Reset		NRPN 514
                                        --		|	02	Filter EG Sync		NRPN 515
                                        --		|	08	Mixer Fdbk / Ext In On	NRPN 498
                                        --		|	10	Glide Gated		NRPN 420
                                        --		|	20	Glide Legato		NRPN 421
                                        • This reply was modified 8 years, 2 months ago by goodweather.
                                        in reply to: Moog Sub37 panel #68440
                                        goodweather
                                        Participant
                                          • Topics: 45
                                          • Replies: 550
                                          • Total: 595
                                          • ★★★

                                          Hi Carl,
                                          thx again for your P08 panel which is a great source of inspiration and from which I will use some stuff for my Pro2 panel!
                                          About the Sub37 panel, I enjoyed doing it but stopped due to complete lack of documentation and the amount of time needed to search. I have the editor ready but started the sequencer in a second tab hoping to find things by myself but I don’t succeed.
                                          I will thus clean my work, maybe add a few things, reduce to one tab only or just remove the tabs and publish the panel.

                                          Way to decode: only the hard and time consuming way but I figured out several things.

                                          • You need MidiOX to get single programs sysex files from the synth
                                          • You need HxD (or similar) to be able to compare sysex files together and identify what is changing (in HxD there is a File compare functionality). This is needed in order to identify the value and position of each parameter
                                          • You need to build a reference patch with as much as possible controls to 0 position or some neutral one if no 0 available (for example, wave set to left position… Write down on paper what is different than 0; Take also the menus into account. Save and keep patch in the synth. Store sysex file to your PC and call it “Init preset” or “Reference” or whatever.
                                          • Then change one button to max position. Export sysex file to PC with name Mod1 – Pitch level 10 for example. Reset to 0 and do the same for each single button and position. Don’t forget to reset to 0 position. Most probably that you will do your buttons several times… Better to export just a few at a time (by section for example, Mod1, Mod2, Osc, Mixer…) then make the comparison and document
                                          • Compare modified files with your reference and document the position and number of impacted hexa positions in Ctrlr (as you did in your P08 panel – I used the same syntax)

                                          For banks and preset saves, the Sub37 is making a calculation and using offset 05 and 06 as

                                          --	05		|	Bank number
                                          --			|		00 	Bank 1-8 OR for Buffer dump
                                          --			|		01	Bank 9-16
                                          --	06 		| 	Preset number
                                          --			|		00 	for Buffer Dump
                                          --			|		01 to 7F for Preset Dump

                                          Basically, there are only 2 banks of 128 presets. I have the code to convert. Maybe that the SP is doing the same.

                                          For patch name, it is tricky, 2 characters = 3 bytes from offset 23 till 58. I also decoded that (took me a few days to understand – made several dumps with just a few characters and compared).

                                          For other params, the same hexa position can contain very different switches (not clean at all) and are the sum of the values of several switches (crazy).

                                          They also have a checksum calculation that I didn’t figure out how to calculate.

                                          So, a complete different situation than the nice and ordered documentation from DSI! If after all that you still want to dig more into it, I can send you my panel as-is if it can help…

                                          in reply to: How to run an external script #67785
                                          goodweather
                                          Participant
                                            • Topics: 45
                                            • Replies: 550
                                            • Total: 595
                                            • ★★★

                                            Can you put an example of code? Thx. I’ll include that in the Step by Step guide…

                                          Viewing 20 posts - 501 through 520 (of 550 total)
                                          Ctrlr