zeoka

Forum Replies Created

Viewing 20 posts - 41 through 60 (of 466 total)
  • Author
    Posts
  • in reply to: buttons and tabs #54171
    zeoka
    Participant
      • Topics: 73
      • Replies: 466
      • Total: 539
      • ★★★

      with two buttons i see setting radiogroupbutton for them( chose a number) but it will be not perfect , your method could be better with just one button (0,1)
      you have two (0,1) .
      or set up “customModulatorIndex” (search the exact property name ,it is not in head); one 1 and other 0 and do

      local exemple = mod:getProperty(“customModulatorIndex”)
      panel:getModulatorByName(“Main”):getComponent():setProperty (“uiTabsCurrentTab”, exemple, false)

      edit : sometimes we could have issue at startup so if you encounter wrong tab displayed at start up you could directly set the modulatorValue() of the tab in your method.the fact to set it will add the property to the tab

      in reply to: How do I change the modulator name in vst? #54112
      zeoka
      Participant
        • Topics: 73
        • Replies: 466
        • Total: 539
        • ★★★

        just save the daw project or daw instrument presets and load could fix that

        in reply to: how to make modulator change sysex value byte? #53741
        zeoka
        Participant
          • Topics: 73
          • Replies: 466
          • Total: 539
          • ★★★

          yes this is the good thing to do
          you can read here : Documentation / getting started
          all is explained quietly

          in reply to: Windows VST Resizing Lost after build 107 #53029
          zeoka
          Participant
            • Topics: 73
            • Replies: 466
            • Total: 539
            • ★★★

            it seems that the toolbar isn’t taken in account in your case

            in reply to: Windows VST Resizing Lost after build 107 #53026
            zeoka
            Participant
              • Topics: 73
              • Replies: 466
              • Total: 539
              • ★★★

              yes

              i realize when all scripts are together that code responsible of correct sizing are :

              canvas:setSize()

              may be in conjunction panel:getCanvas:repaint() in “called when the panel has finished…

              may be it could possible to write that in “Called when the panel is created, no modulators..” not sure

              but i’ve issue bigger than resizing : i can’t export ressources with panel on the last build(5.3.122) and i can’t export at all(standalone)

              in reply to: Windows VST Resizing Lost after build 107 #52920
              zeoka
              Participant
                • Topics: 73
                • Replies: 466
                • Total: 539
                • ★★★

                may be you could set panel size in” called before any mods is created”… not tried

                i have just one panel that is sized correctly

                 -- Called when the panel is created, no modulators will exist at this point
                -- consider this the panels constructor
                SZ = {174,8,204,-384,-378,10,204,-376,-384,4,192,-384,86,118,1118,342,446,806,910,118,582}
                
                function Resize(szvl)
                      if szvl ~= nil 
                    then if szvl ==  0 
                       then TLP = 0
                     elseif szvl ==  1  
                       then TLP =  388
                        end
                        for o = 1,21 do 
                            f = panel:getModulatorWithProperty("modulatorCustomIndex" ,o):getComponent()
                            f:setTopLeftPosition(SZ[o] + TLP,f:getY())      
                        end
                     end
                end
                -- Called when the panel has finished loading
                       Resize(panel:getModulatorWithProperty("vstIndex",120):getValue()) 
                         panel:getCanvas():repaint()
                -- Called when the panel background needs repainting
                --
                
                PanelImage = function(canvas,g)
                p_size = panel:getModulatorByName("Loupe"):getValue()
                
                      if p_size == 0 then 
                         g:drawImage(pnImg,- 388,0,1554,928,0,0,1554,928,false)
                         canvas:setSize(1166,928)
                    else g:drawImage(pnImg,0,0,1554,928,0,0,1554,928,false)
                         canvas:setSize(1554, 928)
                     end
                end
                -- Called when a mouse DOWN (any mouse button) event happens on a component
                -- @comp
                -- @event   http://www.rawmaterialsoftware.com/juce/api/classMouseEvent.html
                --
                
                SizeClick = function(comp, event)
                canv = panel:getCanvas()
                sizeval = (comp:getOwner():getValue() + 1) %2
                comp:getOwner():setModulatorValue(sizeval ,false,false,false)
                Resize(sizeval) 
                canv:repaint()
                end

                all scripts that change size and mods positions

                in reply to: Waldorf MicroQ #52858
                zeoka
                Participant
                  • Topics: 73
                  • Replies: 466
                  • Total: 539
                  • ★★★

                  Hi
                  this is a little pic
                  hope design is not so bad ,it can change but limited space

                  Attachments:
                  You must be logged in to view attached files.
                  in reply to: Waldorf MicroQ #52781
                  zeoka
                  Participant
                    • Topics: 73
                    • Replies: 466
                    • Total: 539
                    • ★★★

                    I give to myself one month two max

                    it’s cool to see you motivated

                    But I think in two week it will be mainly finished (I abandoned it two weeks , I made home working and other works)
                    I’m on it everyday now 🙂

                    in reply to: Waldorf MicroQ #52779
                    zeoka
                    Participant
                      • Topics: 73
                      • Replies: 466
                      • Total: 539
                      • ★★★

                      Hi
                      I’m on something but it’s long . It will be not free but sold cheap
                      it does not have a beautiful design with nice knobs but all sound params is in one page , all modulation sources&targets set by drag&drop from fixed lists,graphic envelopes, graphic arp with random step timing &lenght represented by timer. Panel Color choice of your device .drumset will quasi work in real time . sounds of drumset could be set (not possible with the device). my philosophia is someone turn on a microQ, play with it, modify sounds ,create multi or not ,save all in the DAW preset file and turn off microQ. Tomorrow he turn on the microQ,open the DAW project , restitute all the microQ state and continue the project
                      no program bank is planned but all factory sounds could be loaded (part not done yet ) .sounds could be saved in SYX to store them as well the microQ state in own format .A Q/Q+ version is on the go with the step seq editor (no way it works in realtime but could be useful )

                      in reply to: Some code that kill ctrlr and hung up windows #52080
                      zeoka
                      Participant
                        • Topics: 73
                        • Replies: 466
                        • Total: 539
                        • ★★★

                        how(panel:getModulatorByName()) gives wich parameters to put and in wich form.it ‘s like you do a LUA error ,this is the way i use how(). not sure it is correct

                        in reply to: 5.3.116 is out #51235
                        zeoka
                        Participant
                          • Topics: 73
                          • Replies: 466
                          • Total: 539
                          • ★★★

                          I think this is “statedata” Callback..

                          in reply to: 5.3.116 is out #51212
                          zeoka
                          Participant
                            • Topics: 73
                            • Replies: 466
                            • Total: 539
                            • ★★★

                            The strange thing is on the mopho panel : the lookAndFeel is executed thought

                            It is at the end of “CalledWhen..” after a timer ( I does that just for checking purpose). the “custom repair trigger button at startup” method that was inside seems to work too..
                            strange
                            But you see something wrong…

                            For the windows fixed size it works nice on my other panel but IMPOSSIBLE to export instance with ressources !! tried various things
                            This panel has 2 sizes and has a “setSize” script in “CalledWhen..”
                            this fail at startup (however I just have to push the dedicated button to correct this ) for one of the sizes. (all is correct with ctrlr.exe or dll)
                            BUT the window size is working normally

                            in reply to: 5.3.116 is out #50688
                            zeoka
                            Participant
                              • Topics: 73
                              • Replies: 466
                              • Total: 539
                              • ★★★

                              On two of my panels (saved with news builds)

                              The first param in hosts has no name “undefined”
                              the panel knob move the corresponding daw slider but not inverse : the param is broken

                              and it is linked with another mod ( it seems random ex : vst 1 on a panel , vst 32 on another )

                              5.3.26 is ok
                              5.3.35 get the error

                              edit: the instance seems to send midi at startup but normally it can’t

                              • This reply was modified 8 years, 10 months ago by zeoka.
                              • This reply was modified 8 years, 10 months ago by zeoka.
                              Attachments:
                              You must be logged in to view attached files.
                              in reply to: 5.3.116 is out #50685
                              zeoka
                              Participant
                                • Topics: 73
                                • Replies: 466
                                • Total: 539
                                • ★★★

                                The window of my restricted instances is always smaller in size than it should be, it always have scrollbars. Even if I increase panel width and height and export again, the window is again smaller, I’m really confused about it.

                                me too ! tried 122

                                the vst0 issue is there also

                                I think Atom worked (5.3.35) on vst indexes assigned when in edit mode

                                ex: I create new mod and ctrlr assign new indexes (before when a new mod was created it just copy the index of mod source .

                                I think this is this stuff that break vst 0 . I could be wrong but after this update the error appears

                                • This reply was modified 8 years, 10 months ago by zeoka. Reason: edit : not precised wich version
                                in reply to: 5.3.116 is out #49546
                                zeoka
                                Participant
                                  • Topics: 73
                                  • Replies: 466
                                  • Total: 539
                                  • ★★★

                                  Hello Atom

                                  just a feedback about 5.3.116

                                  the windows sizing feature in restricted instance is ok ,really cool

                                  I wonder for a possibility to update that state by LUA ( I assume the windows size is synced to panel size)
                                  could be great for a panel that has 2 size changed via a button

                                  I encounter issues with ctrlr dll iud or tag because I had 2 ctrlr name (old and 116) in maschine and export instances seems not working ,the new dll return to ctrlr dll blank when openened. It worked the first times but now not
                                  tried to regenerate iud , no success
                                  I revert back to 107.dll version

                                  -the vst0 still broken in daw + linked to another mod in the panels

                                  -“statedata” works in instances

                                  -“called when the panel has finished loading” seems to fail for exported instances
                                  midi syx is sent anyway at startup and my custom resizing method gives confuse results. the script that evitate that is in this callback.

                                  All the best

                                  in reply to: DSI Mopho issues #48884
                                  zeoka
                                  Participant
                                    • Topics: 73
                                    • Replies: 466
                                    • Total: 539
                                    • ★★★

                                    Hi i reactivate instead of create new one

                                    i attempt to do custom method and i get trouble with memory blocks
                                    for now i know why dsi does that but difficult to set modulators

                                    MIDIrec = function( midi)
                                     local MIDdta = midi:getLuaData()
                                     local PC = MIDdta:getByte(0) 
                                        if PC == 192  
                                      then local pcVal =  MIDdta:getByte(1) 
                                           panel:setPropertyInt("panelMidiProgram",pcVal)
                                           PnlBkg:repaint()
                                       end
                                        if PC == 240
                                      then if MIDdta:getByte(1) == 1
                                         then if MIDdta:getByte(2) ==  37 
                                            then if MIDdta:getByte(3) == 3
                                               then local Edit = MemoryBlock(MIDdta:getRange(4,293))          
                                                    local Read = MemoryBlock()
                                                     for t = 0,288,8                                  
                                                      do   if t == 0 
                                                         then w = 0
                                                         else w = (t/8)*7
                                                              t = t -1
                                                          end
                                    console("t"..t)
                                    console("w"..w)
                                                          y = BigInteger(Edit:getByte(t))
                                                           for a = 1,7 
                                                            do u = y:getBitRangeAsInt(a-1,1)
                                                               f = BigInteger(Edit:getByte(t+a))                              
                                                               f:setBitRangeAsInt(7,1,u)
                                                               Read:insert( MemoryBlock(f:getBitRangeAsInt(0,8)),1)  
                                    
                                                           end
                                    
                                                     end                  
                                    console("read:"..Read:toHexString(1))
                                                     panel:setPropertyInt("panelMidiPauseOut",1) 
                                                     for t = 0,104 
                                                      do-- panel:getModulatorWithProperty("vstIndex",t):setModulatorValue( Read:getByte(t),false,false,false)  
                                                     end
                                                     for t = 120,183
                                                      do --panel:getModulatorWithProperty("vstIndex",t-15):setModulatorValue( Read:getByte(t),false,false,false)
                                                     end
                                                     panel:setPropertyInt("panelMidiPauseOut",0) 
                                                end
                                             end
                                          end
                                       end
                                    

                                    the console is writing :

                                    t0
                                    w0
                                    t7
                                    w7
                                    t15
                                    w14
                                    t23
                                    w21
                                    t31
                                    w28
                                    t39
                                    w35
                                    t47
                                    w42
                                    t55
                                    w49
                                    t63
                                    w56
                                    t71
                                    w63
                                    t79
                                    w70
                                    t87
                                    w77
                                    t95
                                    w84
                                    t103
                                    w91
                                    t111
                                    w98
                                    t119
                                    w105
                                    t127
                                    w112
                                    t135
                                    w119
                                    t143
                                    w126
                                    t151
                                    w133
                                    t159
                                    w140
                                    t167
                                    w147
                                    t175
                                    w154
                                    t183
                                    w161
                                    t191
                                    w168
                                    t199
                                    w175
                                    t207
                                    w182
                                    t215
                                    w189
                                    t223
                                    w196
                                    t231
                                    w203
                                    t239
                                    w210
                                    t247
                                    w217
                                    t255
                                    w224
                                    t263
                                    w231
                                    t271
                                    w238
                                    t279
                                    w245
                                    t287
                                    w252
                                    read:
                                    

                                    if i do : Read:insert( MemoryBlock(f:getBitRangeAsInt(0,8)),1,(a-1)+w)

                                    then ctrlr crash and i must remove that in the XML panel file
                                    also i tried : local Read = MemoryBlock(256,true or false )
                                    tried to replace loop stuff by Read = utils.unpackDsiData (MIDdta:getRange(4,293))
                                    and crashed too
                                    SOLVED 😀

                                    in reply to: DSI Mopho issues #48645
                                    zeoka
                                    Participant
                                      • Topics: 73
                                      • Replies: 466
                                      • Total: 539
                                      • ★★★

                                      Hi
                                      There is an issue with my brain not the mopho :
                                      i can’t figure how to compact them
                                      for me the dump data should have a 00 every 7 bytes but no. why ?
                                      edit
                                      ookkk that was bit not byte

                                      • This reply was modified 8 years, 11 months ago by zeoka.
                                      Attachments:
                                      You must be logged in to view attached files.
                                      in reply to: Drag&Drop #47758
                                      zeoka
                                      Participant
                                        • Topics: 73
                                        • Replies: 466
                                        • Total: 539
                                        • ★★★

                                        Hi

                                        I get the Description userdata !

                                        if u <= 15 then MyDetails = string.format("0%x",u) else MyDetails = string.format("%x",u) end details = DragAndDropSourceDetails(MyDetails ,SrcTrgI,0,0) the description here is a number ,generally useful for later , I pass it to hexstring and in isInterested callback : if SOURCE == 1 then local a = component:getOwner():getPropertyInt("modulatorCustomIndex") local b = dragSourceDetails:getDescription() local c = MemoryBlock(b) if c:getByte(0) <= Sidx[a].mx then panel:getComponent("drtext"):setText(""..c:getByte(0)) return (1) else return (0) end else return (0) end end I pass the description into a local memoryblock and get the byte as value I pass that to text to check the value

                                        in reply to: Change panel background image with Lua #47757
                                        zeoka
                                        Participant
                                          • Topics: 73
                                          • Replies: 466
                                          • Total: 539
                                          • ★★★

                                          Hello
                                          did you tried getPropertyString I think yes but who knows

                                          You can use the panel paint callback it works well and draw an image in it , repaint the canvas when you need you can set color changes as well

                                          in reply to: Global variable confusion #46286
                                          zeoka
                                          Participant
                                            • Topics: 73
                                            • Replies: 466
                                            • Total: 539
                                            • ★★★

                                            Hi
                                            Had trouble using glb var as i used it

                                            mod changeCallbak -> setGlobal
                                            other mod changeCallbak -> getGlobal

                                            As I said before to Puppeteer there is global(panel) Callback for glb var change
                                            That’s working fine

                                            Attach mod to glb var and apply what you want in this panel script Callback

                                            You can put complex expressions in it

                                            --
                                            -- Called when a global variable has changed it's value
                                            --
                                            
                                            MyVariables = function( index,  value)
                                            
                                            MySndGens = panel:getComponent("SoundGens")
                                            MyFilter = panel:getComponent("Filter")
                                            MyBufList = panel:getComponent("BufferList")
                                            vwEdtTab = panel:getModulatorByName("EditTab")
                                            
                                                  if index == 5 
                                                then panel:getCanvas():repaint()                              
                                            --repaint all the panel
                                              elseif index == 0 and value == 0
                                                then panel:setGlobalVariable(2,panel:getGlobalVariable(2)%4)  
                                            -- return to the start 
                                                else   if index == 2 
                                                     then local a = BigInteger(panel:getGlobalVariable(0))
                                                                a:setBitRangeAsInt(1,4,value)
                                                          local b = BigInteger(1)          
                                                                b:setBitRangeAsInt(1,4,value)
                                                          local c = a:getBitRangeAsInt(0,7)
                                                          local d = b:getBitRangeAsInt(0,7)
                                                          local e = (23 + c)%128                
                                                          local f = (23 + d)%128
                                                                   if c ~= d 
                                                                 then panel:sendMidiMessageNow(CtrlrMidiMessage{0xF0,0x3E,0x10,0x00,0x17,d,f,0xF7})
                                                                  end
                                                                panel:sendMidiMessageNow(CtrlrMidiMessage{0xF0,0x3E,0x10,0x00,0x17,c,e,0xF7})
                                                      end    
                                                       if vwEdtTab ~= nil  
                                                     then CurrentSound() 
                                                      end
                                                       if BufferToGet == nil 
                                                     then vwEdtTab:setModulatorValue(0,false,false,false)
                                                     else vwEdtTab:setModulatorValue(1,false,false,false)
                                                      end
                                                       if MySndGens ~= nil then MySndGens:repaint() end
                                                       if MyBufList ~= nil then MyBufList:repaint() end
                                                       if MyFilter ~= nil  then MyFilter:repaint()  end
                                                  end     
                                            end

                                            Apparently you can even set a global var in it :
                                            “if index == 0 then panel:setGlobalVariable(2,MODEA)”

                                            currentsound() is a sub script with complex glb var expressions, it is not in the main scritp because I use it elsewhere for panel startup (important step)

                                            function CurrentSound()
                                                   local a0 = panel:getGlobalVariable(0)
                                                   local a1 = panel:getGlobalVariable(1)
                                                   local a2 = panel:getGlobalVariable(2) + 1        
                                                   local a3 = panel:getGlobalVariable(3) + 1
                                                   local a4 = panel:getGlobalVariable(4) 
                                                   local a67 = panel:getGlobalVariable(6 +a0 ) 
                                                      if a1 == 1
                                                    then    if a67 ~= a2
                                                          then BufferToGet = MyBuffers[a0+1].FDAT[a2]             
                                                               SBufIdx =  a2                       
                                                        elseif a67 == a2    
                                                          then     if a4 == 0 
                                                                 then BufferToGet = nil
                                                                      SBufIdx =  nil 
                                                               elseif a4 == 1
                                                                 then    if MyBuffers[a0+1].FDAT[a3] ~= nil  
                                                                       then BufferToGet = MyBuffers[a0+1].FDAT[a3] 
                                                                       else BufferToGet = nil
                                                                        end
                                                                      SBufIdx =  a3 
                                                                  end
                                                            end
                                                    else BufferToGet = nil
                                                         SBufIdx =  nil
                                                     end
                                                         MultiMode = a0
                                                  return BufferToGet , SBufIdx , MultiMode   
                                            end

                                            in brief
                                            if index ~= GlobalVariable(5) then
                                            the script create 3 LUA variables I can use after elsewhere
                                            if index == 2 I send one or two midi messages
                                            if index == 0 then I set GlobalVariable(2) then the script restart ( a kind of loop)
                                            then I send one or two midi messages !
                                            That way the LUA variables created are always refreshed when you turn any knobs attached to glb var .you can still use panel:getGlobalVariable(index) if don’t want to use LUA variable to call the glob var value

                                            If that can help

                                          Viewing 20 posts - 41 through 60 (of 466 total)
                                          Ctrlr