Home › Forums › Development › BUG: tested same Panel with Win32 and x64 Ctrlr exe – scripts malfunction
- This topic has 8 replies, 3 voices, and was last updated 7 years, 6 months ago by t0f4st.
-
AuthorPosts
-
September 14, 2016 at 2:06 pm #70020
Hello @atom and other developers.
I got an huge problem. I developed an Panel on a Windows 10 x64 Bit machine and all works fine. The Panel also works on a Windows 7 x64 Bit machine.
But if i run the Panel on the machines with Ctrlr-Win32.exe the scripts completly misbehave / malfunction.
I’m doing basic String comparison and it fails.
For example modulator name = “lbl_1_01”
with Win32.exe the script:currentModName:startsWith ("Efx1")
returns an true!!! – which is completly bullshit
with x64.exe the script:currentModName:startsWith ("Efx1")
returns an false!!!the panel is my studywork so i dont upload it here in the public but i can mail it.
greetings
t0f4st- This topic was modified 7 years, 6 months ago by t0f4st.
Attachments:
You must be logged in to view attached files.September 21, 2016 at 2:50 pm #70083i created a new panel in x64 version to trace back the bug.
open in Ctrlr-x64.exe -> no problem
open in Ctrlr-Win32.exe -> malfunctionAttachments:
You must be logged in to view attached files.September 21, 2016 at 6:42 pm #70085Common misconception you might share:
“Latest is greatest”
Not true here.I would recommend going back a few versions in ctrlr.
Incidentally you haven’t mentioned what ctrlr rev you are using – that’s paramount to the types of issues you describe. .Try it in 5.3.50.. does the issue persist? If so go back earlier
1590 is my go-to for sanity checking things like this as it was quite solid although missing a few of the updates (Lua, Juce, etc) that the more recent revs have.
Generally in the larger picture of functionality and stability 1590 likely isn’t missing anything you need to be honest, although I have no clue what it is your panel is to be doing.Also incredibly important at least in my experience when debugging stuff like this and testing out different ctrlr revs –
CRITICAL that you trash ctrlr preferences to ensure you’re starting w/o snowballing issues. This is especially important when changing revs.If you’re running into issues testing an exported instance (app, exe or vst/au) you’ll be wanting to trash the preferences for that panel instance name… settings/prefs for that panel will be in the same location as the ctrlr folder, but the folder will be named the same as the panel’s exported instance. .
- This reply was modified 7 years, 6 months ago by msepsis.
Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen
September 23, 2016 at 2:19 pm #70090Common misconception you might share:
“Latest is greatest”
Not true here.I would recommend going back a few versions in ctrlr.
Incidentally you haven’t mentioned what ctrlr rev you are using – that’s paramount to the types of issues you describe. .i’m running build Ctrlr-5.3.201.exe
problem exists in build 5.4.2, too.Try it in 5.3.50.. does the issue persist? If so go back earlier
1590 is my go-to for sanity checking things like this as it was quite solid although missing a few of the updates (Lua, Juce, etc) that the more recent revs have.
Generally in the larger picture of functionality and stability 1590 likely isn’t missing anything you need to be honest, although I have no clue what it is your panel is to be doing.my panel is doing simple string comparison. it iterates through all modulators in the panel and checks if the modulator name starts with an “Efx#”.
currentModName = mod:getPropertyString("name") if (currentModName:startsWith("Efx1") == true) then ...
The string comparing is working in x64.exe but not in win32.exe!
i did a simpler readable version of my function to understand the process…
function SingleEfxEnable(efxId) console (string.format("SingleEfxEnable (enabledEfxId=%d)",efxId)) n = panel:getNumModulators() -1 for i=0,n do mod = panel:getModulatorByIndex(i) if(mod ~= nil) then currentModName = mod:getPropertyString("name") isEfxModulator = false if (currentModName:startsWith("Efx1") == true) then isEfxModulator = true currentEfxId = 1 elseif (currentModName:startsWith("Efx2") == true) then isEfxModulator = true currentEfxId = 2 elseif (currentModName:startsWith("Efx3") == true) then isEfxModulator = true currentEfxId = 3 else isEfxModulator = false end if (isEfxModulator == true) then if (efxId == currentEfxId) then isEfxEnable = true else isEfxEnable = false end if (isEfxEnable == true) then -- enable Mod and MIDI Message mod : getComponent() : setProperty ("componentDisabled", 0, false) currentMidiMessage = mod:getMidiMessage(0) currentMidiMessage:setPropertyString("midiMessageType", "6") else -- disable Mod and MIDI Message mod : getComponent() : setProperty ("componentDisabled", 1, false) currentMidiMessage = mod:getMidiMessage(0) currentMidiMessage:setPropertyString("midiMessageType", "9") end end end end end
Also incredibly important at least in my experience when debugging stuff like this and testing out different ctrlr revs –
CRITICAL that you trash ctrlr preferences to ensure you’re starting w/o snowballing issues. This is especially important when changing revs.how to trash the ctrlr prefs?
do you think of deleting %appdata%\Ctrlr\Ctrlr.settings ?
… i already did that.- This reply was modified 7 years, 6 months ago by t0f4st.
Attachments:
You must be logged in to view attached files.September 25, 2016 at 7:20 pm #70098Try it in 5.3.50.. does the issue persist? If so go back earlier
1590 is my go-to for sanity checking things like this as it was quite solid although missing a few of the updates (Lua, Juce, etc) that the more recent revs have.
Generally in the larger picture of functionality and stability 1590 likely isn’t missing anything you need to be honest, although I have no clue what it is your panel is to be doing.i have tested the panel in every version. it runs only in the build 1590!!! every win32.exe above this build is malfunction the string method startsWith(…) !!!
September 26, 2016 at 12:45 am #70099Im really glad you got it working. Also great to compare notes and get some confirmation from someone else with a similar experience. I hope you didnt try each one since 1590 until you got what you were expecting out of it!!
Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen
September 26, 2016 at 11:27 am #70103Im really glad you got it working. Also great to compare notes and get some confirmation from someone else with a similar experience. I hope you didnt try each one since 1590 until you got what you were expecting out of it!!
well in fact i tested every version xD
and i’m only talking about the panel i recreated to showcase the bug. my full panel uses more lua api and i dont want to test all scripts and roll back to work with build 1590!
run the Ctrlr-Win32.exe of any build higher than 1590 and the following code will fail/malfunction:
testString = "Efx1_High" compareString = "Efx1" result = tostring(String(testString):startsWith( compareString )) console (string.format( "%s startsWith %s == %s", testString, compareString, result ))
output:
Efx1_High startsWith Efx1 == false
please fix that
- This reply was modified 7 years, 6 months ago by t0f4st.
September 26, 2016 at 2:11 pm #70105I’ll have a look at that, please post this on github so i don’t forget it.
September 27, 2016 at 11:41 am #70108 -
AuthorPosts
- The forum ‘Development’ is closed to new topics and replies.