romankubiak / ctrlr Goto Github PK
View Code? Open in Web Editor NEWCtrlr
License: BSD 3-Clause "New" or "Revised" License
Ctrlr
License: BSD 3-Clause "New" or "Revised" License
Newer version of binutils need config.h or #define PACKAGE "Ctrlr" to be set.
Compiling CtrlrLinux.cpp
In file included from ../../../../Source/Misc/include/libr.h:30:0,
from ../../../../Source/Native/CtrlrLinux.cpp:13:
/usr/include/bfd.h:35:2: erreur : #error config.h must be included before this header
#error config.h must be included before this header
Same with Source/Misc/libr.c and Source/Misc/libr-bfd.c
Work around: add #define PACKAGE "Ctrlr" just after #ifdef LINUX
Thank you Roman!
Yes, it works. The only problem i have now is that the 32 bit Plug-in not is loaded by Cubase. I have Cubase 8 - 32 bit installed under Windows 10 - 64 bit. I did place the "Ctrlr-VST-Win32.dll" into the Cubase-directory: "VSTPlugins". However, when i start Cubase, i don't see the plug-in. Any idea?
Thanks again for your nice work!
Nick.
Hi atom,
getting error messages (sometimes crash) when trying to create a MemoryBlock of a given size...
I tried in a function within a method, in a method and just in the console. Same stuff.
Using last version 5.4.2 x64.
Thx for looking at this when you have time...
>>> mbTiti=MemoryBlock(10,true)
ERROR: No matching overload found, candidates:
void __init(luabind::argument const&,String const&)
void __init(luabind::argument const&,luabind::object const&)
void __init(luabind::argument const&,JMemoryBlock const&)
void __init(luabind::argument const&,custom [unsigned __int64] const,bool)
void __init(luabind::argument const&)
>>> mbTiti=MemoryBlock(10,1)
ERROR: No matching overload found, candidates:
void __init(luabind::argument const&,String const&)
void __init(luabind::argument const&,luabind::object const&)
void __init(luabind::argument const&,JMemoryBlock const&)
void __init(luabind::argument const&,custom [unsigned __int64] const,bool)
void __init(luabind::argument const&)
>>> mbTiti=MemoryBlock(10,0)
ERROR: No matching overload found, candidates:
void __init(luabind::argument const&,String const&)
void __init(luabind::argument const&,luabind::object const&)
void __init(luabind::argument const&,JMemoryBlock const&)
void __init(luabind::argument const&,custom [unsigned __int64] const,bool)
void __init(luabind::argument const&)
in versions prior to v5.4.16 this will draw a sine wave:
function myNewMethod(component,graphics)
graphics:setColour (Colour(0xAF8D0000))
for x=1, 200 do
y = 100 * math.sin (x/30) +100
graphics:fillRect (x, y, 1, 3)
end
end
In version v5.4.16 it will just draw a line. Same result with sinf instead of math.sin.
Attached panel:
MathSinNotworking.zip
(all contained 4 parameters each)
no objects copied(with children) - all sub-groups ended up stacked
at 0,0 (empty)
i set up a bank of horizontal sliders, with name on left, value on right.
all looks good, until i reload/start ctrlr, and then all i see is the name
label,unless i untick/retick (show object)
here is an example panel with just the slider; does the same as in
my project:
(done with .102 but maybe still be unresolved? i've tried alternative
alighments - for same type of view)
https://app.box.com/s/j5cwaexy2jcmjtnfngmprd7asg49m63y
because you never know what you're saving. i version myself, always,
each time i make significant changes; there is no other way to work.
but when it opens up something other than what i thought i saved,
i don't/can't know what's going on.
however, specifying Ctrlr version with each save, 'under the bonnet',
in File Properties(etc)is important.
i've just lost a complex panel involving days of work because of this,
i hope i can get it back by pulling bits out of previous files.(soz, i can't
make single panel VSTs, too boring :) )
The Send message is not working anymore since several months (tried with Chrome and Firefox).
Most probably an issue with Wordpress.
Could you please look at this and restore so we can send PMs to each other?
Thx in advance!
Hi,
MidiMessageReceived is executed 2 times for one message received.
Workaround is to reset the Midi Input devices (NOT the Controler devices because that reset is blocking the bidirectional behaviour).
-- Reset Midi INPUT devices to avoid having MidiMessageReceived method called twice
sMidiDevices = panel:getProperty("panelMidiInputDevice")
panel:setPropertyString("panelMidiInputDevice", "-- None")
panel:setPropertyString("panelMidiInputDevice", sMidiDevices)
Thx in advance for looking at this!
Hi
Any Graphics in the resource page are not available in the selection box uilmageSliderResource, it just says "no choices" This is true for prebuilt panels or building from new.
This effects build 5.3.198 for mac OS X .
I reverted to version 5.3.122 and that has the resources available in the drop down menu.
I am running Stand alone ctrlr on OS X 10.5 in 64bit mode
mike
Hi,
which version of ctrl do i need to run the old deprecated jd800 panel ? please?
When LUA is disabled after opening a panel, if a panel is opened and saved, all the LUA methods are deleted.
Output shows either
Compile: assignPatchParmsFromDisk - OK
or
Compile: assignPatchParmsFromDisk - FAILED
in rel 5.4.11 it showed more or less helpful debug info
os.date ("%c") shows only year, the same as os.date ("%Y"). should show date and time (e.g., 09/16/98 23:48:10). It showed correct in rel 5.4.11
from lua.org:
%a abbreviated weekday name (e.g., Wed)
%A full weekday name (e.g., Wednesday)
%b abbreviated month name (e.g., Sep)
%B full month name (e.g., September)
%c date and time (e.g., 09/16/98 23:48:10)
%d day of the month (16) [01-31]
%H hour, using a 24-hour clock (23) [00-23]
%I hour, using a 12-hour clock (11) [01-12]
%M minute (48) [00-59]
%m month (09) [01-12]
%p either "am" or "pm" (pm)
%S second (10) [00-61]
%w weekday (3) [0-6 = Sunday-Saturday]
%x date (e.g., 09/16/98)
%X time (e.g., 23:48:10)
%Y full year (1998)
%y two-digit year (98) [00-99]
%% the character `%´
Hello Mr Atom (Roman)
I have a small problem which might be a bug in Ctrlr although I am no expert and wonder if you could just give it a look over please.
I have been discussing this problem in :-
http://ctrlr.org/forums/topic/what-am-i-doing-wrong/#post-69736
My messages are at #69713 - where I need the sending modulator to receive the same 18 bytes of SysEx and then call my myReverseLookUp method from:
“Called to calculate new modulator value from a MIDI value”
I find even with the default method, once the method is called, Ctrlr crashes.
Any help appreciated.
Peter_EP
it would be nice to be able to select multiple objects on-panel
with usual ctrl (+click, on as many as wanted), in order to
move them.
(nb: quite often/always find that a modulator will jump to another
position when clicked; this isn't 'terminal', but it's a bit weird. also
'import' position when copy+paste-ing is unpredictable,and jumps,
one time, before you can reposition it reliably - v.5.02.102,need
to update again)
I think it does not matter which components you try to multi-select.
Very simple panel attached with 4 uiLabels. When you select more than 2 labels Ctrlr will hang. This bug has been introduced in v5.4.16.
How to reproduce :
this is a bit of a problem when you make a mistake - like forgetting
to rename a Group, when you move it onto a tab, or if you copy and
don't Index-renumber for each copy: you can end up with LOADS
stacked at same Index# in List, and there's no way to unpack it and
have a look at what you want to keep or delete. have not found a way
round this yet. i go back to panel and give objcts i want to keep arbitary
(high)numbers, to separate them from rogue doubles. i will renumber later.
problem i get with making new Groups a lot, is that i forget to edit
Owner Tab, and it keeps 'old' Owner after copy. > BAD :) >your
new group will jump into your other/old tab and make a horrible mess
when you reload Ctrlr. if Owner was NOT copied, but made blank?
version: Ctrlr-x86_64-5.4.16.sh (latest linux from nightly) on xubuntu
I have issue with LUA Editor, the cursor is not on the right place, see screenshots.
I have wrote "testtesttest", then clicked on right of the last "t", wrote a "X", then it appeared on the wrong place.
The following screenshot is when just writing "testtesttest" and show the wrong cursor position, which should appears just after the last "t"
Hiho,
i tried to start the current Ctrlr (binary) under a current Gentoo Linux. The program starts, but just show a very small quadratic segment of the upper left window which doesn't seem resizable - so Ctrlr seems not usable att on this platform.
Are there any sources for trying a self build?
If you need any system / environment details pls feel free to ask.
many thanks,
best regards,
Niels Dettenbach
http://www.syndicat.com
hope this is of use: (some notes i made this morning)
WHEN YOU CLICK OFF A MODULATOR, THEN BACK ON,
THE PARAMETER COLUMN RESETS THE VIEW.
ie: expanded/not > if i close MIDI, it comes
back with MIDI open, and Component Generic is
out of view/lower down again.
does not happen swapping between same type
modulator, but if i click onto workspace, then
back, it happens. bad for workflow.
idea: how about 'unlock all' for modulators within
a Group? > you have to lock a Group for Copy/Paste
operations, or the Group moves without children.
'lock' Group does not lock individual modulators.
quicker/workflow
in release Ctrlr-5.4.11 it still worked. In release Ctrlr-5.4.16 "uiListBoxItemClicked" won't execute the attached script. Same with "luaModulatorValueChange".
I haven't found any docs on how to build ctrlr on various platforms and from the sources alone I don't get it. I've seen a .sln file, presumably for Visual Studio, but that doesn't help me much on Linux.
I thought I'd be able to figure this out, apparently I'm not, so I have to ask for additional docs or a pointer to existing ones I might have missed.
Most of the time, especially after moving or modifying the size of a component and "undoing" the changes, some font size gets set to 0. Either the label name, or the slider value font. This happens on OSx at least.
It would be nice if we could provided a custom Icon to be used when generating an exported instance (.exe or .app files with an icon different from the default Ctrlr icon).
(sorry if this has been dealt with or mentioned before - am on 5.2.102)
accidental scrolling of values in right-side pane is a problem.
even if you're aware of the risk, you can still change something
unintentionally. i have then copied this...hundreds of times.
(wrong 'base fallback value' produced...)
would be better, i think, if you had to click on one of these to activate
scrolling of value. less risky.
How to reproduce :
In ctrlr 5.4.27 and 5.4.29 On windows xp when i try to open to open the ctrlr standalone it gives me an errror:
'Impossibile trovare il punto di ingresso CreateSymbolicLinkW della procedure nella libreria di colegamento dinamico KERNEL32.DLL'
And ableton fails to load the vsti
In english that's
'Impossible to find entry point CreateSymbolicLinkW in the dynamic link library KERNEL32.DLL'
it looks to me that something when wrong in linking.
ctrlr 5.3.201 works though. So this probably happened fairly recently.
Ewan.
i'm trying to do this, don't know if it will work:
with 4 tabs, i want to move contents(+title) of #3 to #2, and move
#2 to #3 > change order 0,1,2,3 to 0,2,1,3 for a better display,
without having to cut+paste contents and do all the work(!)
maybe if i just renumber tabs,save,close, re-load, it might work..
something one might wish to do in a build, anyway.
Thanks for implementing OSC in Dec 2015, but there is an issue with returning string arguments of the OSC message.
OSC sent into Ctrlr is "/track/name/" with string argument "Guitar".
Code fragment executed is:
`onOSCMessage = function(path, types, arguments)
oscMsg = path
oscType = types
if types=="f" then
oscValue = tonumber(arguments[0].f)
elseif types=="s" then
oscValue = tostring(arguments[0].s)
end
console('OSC: '..oscMsg..' Value: '..oscValue..' Type: '..oscType)
end`
This OSC example with numeric data works fine:
oscValue = tonumber(arguments[0].f)
This OSC example with a valid string does not :
'oscValue = tostring(arguments[0].s)`
Expected oscValue to be string type "Guitar".
Instead, oscValue is an ASCII code decimal representation of the first letter of the argument, which is "70".
Go, fix it, please.
As far as I know this happens on all plugin versions (Win vst, Mac au, Mac vst). When sending Midimessages by Lua code this bug does not show (it will send messages once). So I guess it must be a bug of the Midi-Component.
Example1, IPR sysexmessage. Moving from value 00 to 06:
[09:52:44:000510]: RAW:[f0 41 39 00 24 30 01 12 00 f7]
[09:52:44:000510]: RAW:[f0 41 39 00 24 30 01 12 00 f7]
[09:52:58:000142]: RAW:[f0 41 39 00 24 30 01 12 01 f7]
[09:52:58:000142]: RAW:[f0 41 39 00 24 30 01 12 01 f7]
[09:52:59:000251]: RAW:[f0 41 39 00 24 30 01 12 02 f7]
[09:52:59:000251]: RAW:[f0 41 39 00 24 30 01 12 02 f7]
[09:52:59:000902]: RAW:[f0 41 39 00 24 30 01 12 03 f7]
[09:52:59:000902]: RAW:[f0 41 39 00 24 30 01 12 03 f7]
[09:53:00:000659]: RAW:[f0 41 39 00 24 30 01 12 04 f7]
[09:53:00:000659]: RAW:[f0 41 39 00 24 30 01 12 04 f7]
[09:53:02:000782]: RAW:[f0 41 39 00 24 30 01 12 05 f7]
[09:53:02:000782]: RAW:[f0 41 39 00 24 30 01 12 05 f7]
[09:53:04:000104]: RAW:[f0 41 39 00 24 30 01 12 06 f7]
[09:53:04:000104]: RAW:[f0 41 39 00 24 30 01 12 06 f7]
Example2, APR sysexmessage. Sent by a Lua script, no doubled messages:
[09:54:52:000798]: RAW:[f0 41 38 00 24 30 01 20 20 4c 4f 57 20 53 54 52 49 4e 47 20 50 41 44 20 20 06 4c 27 26 00 00 00 7f 14 1c 2d 09 00 00 4e 00 02 00 01 00 09 00 00 4c 01 7e 00 01 00 5a 01 1a 00 00 00 f7]
[09:54:52:000798]: RAW:[f0 41 38 00 24 20 01 20 53 54 52 49 4e 47 53 20 31 20 38 05 00 38 32 00 00 40 00 00 40 00 00 7f 7f 00 3c 00 00 00 02 67 69 43 67 00 00 00 00 00 00 00 00 00 00 00 00 7f 00 7f 00 7f 00 29 4b 00 34 58 56 24 48 00 00 00 60 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 60 50 50 40 60 40 20 00 20 00 00 00 00 20 00 00 f7]
[09:54:52:000798]: RAW:[f0 41 38 00 24 20 02 4c 4f 20 53 54 52 49 4e 47 53 20 38 05 00 38 48 00 00 40 00 00 40 00 00 7f 7f 00 3c 00 00 00 14 67 7f 43 61 00 00 00 00 00 00 00 00 00 00 00 00 7f 00 7f 00 7f 00 00 46 00 34 58 56 24 48 00 00 00 60 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 50 50 60 50 50 40 60 40 20 00 20 00 00 00 00 20 00 00 f7]
Just to show you that this is not a bug of the Midimonitor: Reaper and MidiOX connected through loopMIDI. MidiOX display:
TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT
0000E9DA 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 01 F7
0000E9DA 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 01 F7
0001043A 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 02 F7
0001043A 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 02 F7
00010A84 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 03 F7
00010A84 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 03 F7
00010E44 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 04 F7
00010E44 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 04 F7
000111AF 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 05 F7
000111AF 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 05 F7
000115BA 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 06 F7
000115BA 9 -- F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 41 39 00 24 30 01 12 06 F7
OS: Ubuntu 16.04
Linux diamond 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Panel: http://ctrlr.org/akai-miniak-alesis-micron/
http://ctrlr.org/?ddownload=14924
Crash file attached
Ctrlr-x86_64.crash.txt
have deleted ctrl settings file. it hangs. shows 3x ctrlr.exe
in taskman, can't stop any. won't uninstall, hangs. have to
delete folder.
Lua 5.3 comes with several API and performance improvements.
It would be great to be able to access that functionality in Ctrlr.
Thanks!
/Pascal
when copying modulator out of a group to another area
(eg: onto tab with no group), it retains its group name+(?ownership?)
therefore on project re-load it will not be where it should
eg: goes back to original group = a mess
eg: it should 'shed Group attributes' on copy (lol)
*also: nb: if some groups in tabs are not locked, they also go crazy
on reload - ie: end up in main workspace (this was for a 2nd UITabs,
inside a Group(as a container), with Groups of dropdown selectors
on tabs - grouped for easy multiple copying - come to think of it,
i must check this wasn't bcs of copied 'group' attributes ;o) ...)
Hi there! I am trying to see to what extent uiEnvelope works, by interrogating the object and seeing what properties it has. The eventual aim is simply to get and set points. Thanks.
Where dco is a reference to my uiEnvelope instance:
dco = panel:getModulatorByName("module-dco-" .. tostring(module))
obtree = dco.getObjectTree(dco)
numChildren = obtree.getNumChildren(obtree)
for i=0,numChildren do
child = obtree.getChild(obtree, i)
--what(child)
--console(child.toXmlString(child)) -- need uiEnvelopePoint ... uiEnvelopePointPosition="19, 89"
numProps = child:getNumProperties()
console(tostring(numProps))
if numProps > 0 then
console("got props")
for propIdx = 0,numProps do
--console(child:getPropertyName(propIdx)) -- UNCOMMENT TO CRASH
end
end
end
I’m trying to compile Ctrlr on Windows.
I have..
When I run the post_commit script in the Scripts folder I get the following errors:
"C:\devel\ctrlr\Builds\Ctrlr_Release.sln" (Rebuild target) (1) ->
"C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctrlr_Plugin_VST.vcxproj" (Rebuild target) (3) ->
(ClCompile target) ->
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_audio_basics.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctrl
r_Plugin_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_audio_devices.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctr
lr_Plugin_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_audio_formats.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctr
lr_Plugin_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_audio_plugin_client_utils.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\
VST_2015\Ctrlr_Plugin_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_audio_plugin_client_VST2.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\V
ST_2015\Ctrlr_Plugin_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_core.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctrlr_Plugin
_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_audio_utils.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctrlr
_Plugin_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_cryptography.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctrl
r_Plugin_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_audio_processors.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\
Ctrlr_Plugin_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_events.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctrlr_Plug
in_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_gui_basics.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctrlr_
Plugin_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_opengl.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctrlr_Plug
in_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_gui_extra.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctrlr_P
lugin_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_data_structures.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\C
trlr_Plugin_VST.vcxproj]
c1xx : fatal error C1083: Cannot open source file: '..\..\..\VST\JuceLibraryCode\juce_graphics.cpp': No such file or directory [C:\devel\ctrlr\Builds\Generated\Windows\VST_2015\Ctrlr_Pl
ugin_VST.vcxproj]
268 Warning(s)
15 Error(s)
Time Elapsed 00:04:42.30
CTRLR: Win32 build failed
Looking into the c:\devel\ctrlr\Builds\VST\JuceLibraryCode\ directory these files are obviously not there. Are they supposed to be copied there during the build phase or have I missed something?
How to reproduce :
When i try to install Ctrlr 5.4.2 in Windows 10 i become the following message:
Error opening file for writing:
C:\Program Files (x86)\Ctrlr\Ctrlr-Win64.exe
Click Abort to stop the installation,
Retry to try again, or
Ignore to skip this file.
My system works with Windows 10 - 64bit. It makes no difference if i choose to install Ctrlr-Win32.exe.
Thank you for the answer how to fix this.
When you export a restricted instance as a VST, the panel size can no longer be changed, but the panel always exports smaller than the set size. I don't think toolbars and borders are taken into account.
The real problem though is that if you try to increase the size, any image you have as a background moves regardless of what you set uiPanelImageLayout to.
It is currently impossible to correctly export a VST of the correct size that keeps the background image intact.
Tested on Win 8.1 64bit running Ableton Live 9.2 64-bit.
Hi atom,
I'm finalizing my Pro2 panel (was intended to be released next week - mid August) by doing a lot of tests. Among those tests, some classical loops of reading some data then saving without any change and checking you have the same...
I discovered some differences and investigated in details until I came to the point of suspecting a bug in utils.packDsiData() occuring at the end of producing the output (a bit strange in my opinion).
I join you different info below.
The 3 last bytes at end of original packed data are: 03 7F 7F
The 3 last bytes at end of produced packed data are: 64 00 20
Unpacked data is the same...
Can you please have a look?
Thanks in advance....Dominique (goodweather)
Sysex file to use as test (6 bytes + 1171 packed + 1 byte):
**
F7P1 - Sweet Cherry.zip
**
Method to test:
LoadAndSaveTest = function(--[[ CtrlrModulator --]] mod, --[[ number --]] value, --[[ number --]] source)
-- No action while loading a program or if the panel is in bootstrap or program states
if bLoadingProgram or not isPanelReady() then
return
end
-- Load a .syx file
f = utils.openFileWindow ("Load Pro 2 packed program dump", File(""), "*.syx", true)
if f:isValid() then -- A file has been selected and the user pressed Open
if f:existsAsFile() then
Pro2ProgramFileData = MemoryBlock()
f:loadFileAsData(Pro2ProgramFileData)
FileSize = Pro2ProgramFileData:getSize()
if FileSize == 1178 or FileSize == 1176 then
-- Unpack and load data in panel
if FileSize == 1178 then
-- Program data dump
console("Packed Program data dump after reading Load")
console(Pro2ProgramFileData:getRange(6, 1171):toHexString(1))
LoadedProgramData = utils.unpackDsiData(Pro2ProgramFileData:getRange(6, 1171))
else
-- Program buffer data dump
console("Packed Program buffer data dump after Load")
console(Pro2ProgramFileData:getRange(4, 1171):toHexString(1))
LoadedProgramData = utils.unpackDsiData(Pro2ProgramFileData:getRange(4, 1171))
end
FileSize = LoadedProgramData:getSize()
if FileSize == 1024 then
console("Unpacked LoadedProgramData after Load")
console(LoadedProgramData:toHexString(1))
end
end
end
end
-- Save to .syx file: always saving a 1176 program buffer dump to be bank and program independent
-- f = utils.saveFileWindow ("Save Pro 2 program buffer dump sysex file", File(""), "*.syx", true)
-- if f:isValid() then
-- if f:existsAsFile()==false then
-- f:create()
-- end
-- FileSize = LoadedProgramData:getSize()
-- if FileSize == 1024 then
console("Unpacked LoadedProgramData before Save")
console(LoadedProgramData:toHexString(1))
console("Packed Program buffer data dump before Save")
console(utils.packDsiData(LoadedProgramData):toHexString(1))
-- end
-- end
end
Console output from attached .syx file:
LUA>> Packed Program data dump after reading Load
LUA>> 00 3c 3c 24 24 32 3c 32 00 32 3c 3c 3c 1d 05 05 00 04 1d 00 01 02 03 07 00 08 09 0a 04 05 06 07 00 36 40 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 1d 00 1d 1d 1d 00 00 00 00 00 01 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 01 02 02 00 00 00 00 00 03 00 00 05 00 0a 01 7f 00 00 00 17 01 24 10 00 75 08 00 00 40 00 7f 00 7f 00 78 70 00 50 4f 07 09 05 03 00 00 00 00 1e 00 00 00 22 00 00 00 00 00 7f 7f 7f 00 7f 00 00 00 00 00 00 00 00 00 40 40 40 40 00 20 00 00 00 15 28 04 3e 00 00 00 00 00 00 00 00 00 00 02 03 00 7f 05 0f 00 05 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 1f 7f 7f 01 4e 7f 34 00 00 00 00 00 00 00 00 00 00 05 00 00 31 67 00 51 39 00 35 00 00 50 7f 7f 7f 00 6a 00 00 5f 18 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 10 11 11 0b 00 0b 18 11 06 18 14 14 30 00 00 00 00 07 61 57 67 27 37 38 7f 7f 11 3e 02 7f 2a 7f 7f 7f 7f 42 00 0e 18 0b 4b 57 21 00 00 09 21 01 0e 00 00 00 00 00 00 00 78 02 00 00 00 01 02 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 77 65 65 74 20 43 00 68 65 72 72 79 20 20 40 20 20 20 20 20 20 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 08 08 08 08 08 08 00 08 20 20 20 20 20 20 00 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7e 00 30 3c 48 33 3f 4b 7f 2e 3a 35 46 33 48 32 07 30 54 54 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 2c 4c 00 51 61 01 6f 69 36 50 22 5f 6b 3a 41 12 30 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64 64 64 64 64 64 00 64 64 64 64 64 64 64 00 64 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 7f 7f
LUA>> Unpacked LoadedProgramData after Load
LUA>> 3c 3c 24 24 32 3c 32 32 3c 3c 3c 1d 05 05 04 1d 00 01 02 03 07 08 09 0a 04 05 06 07 36 40 40 40 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 1d 1d 1d 1d 00 00 00 00 01 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 02 01 02 02 00 00 00 00 03 00 00 05 0a 01 7f 00 00 00 17 a4 10 00 75 08 00 00 00 7f 00 7f 00 78 f0 50 4f 07 09 05 03 00 00 00 1e 00 00 00 22 00 00 00 00 7f 7f 7f 7f 00 00 00 00 00 00 00 00 40 40 40 40 00 00 00 00 15 28 84 3e 00 00 00 00 00 00 00 00 02 03 00 7f 05 0f 05 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9f 7f 7f ce 7f 34 00 00 00 00 00 00 00 00 00 05 00 31 67 00 51 39 00 35 00 50 7f 7f 7f 00 6a 00 5f 18 00 22 00 00 00 00 00 00 00 00 00 00 00 0f 10 11 11 0b 0b 18 11 06 18 14 14 00 00 00 00 87 e1 57 a7 b7 b8 7f 7f 91 be 7f aa 7f 7f 7f 7f 42 0e 18 0b 4b 57 21 00 09 21 01 0e 00 00 00 00 00 00 78 02 00 00 01 02 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 77 65 65 74 20 43 68 65 72 72 79 20 20 20 20 20 20 20 20 8f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 08 08 08 08 08 08 08 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0 bc c8 b3 bf cb ae ba b5 c6 b3 c8 b2 b0 d4 d4 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 2c 4c 51 61 01 6f 69 36 50 5f eb 3a 41 12 b0 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff
LUA>> Unpacked LoadedProgramData before Save
LUA>> 3c 3c 24 24 32 3c 32 32 3c 3c 3c 1d 05 05 04 1d 00 01 02 03 07 08 09 0a 04 05 06 07 36 40 40 40 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 1d 1d 1d 1d 00 00 00 00 01 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 02 01 02 02 00 00 00 00 03 00 00 05 0a 01 7f 00 00 00 17 a4 10 00 75 08 00 00 00 7f 00 7f 00 78 f0 50 4f 07 09 05 03 00 00 00 1e 00 00 00 22 00 00 00 00 7f 7f 7f 7f 00 00 00 00 00 00 00 00 40 40 40 40 00 00 00 00 15 28 84 3e 00 00 00 00 00 00 00 00 02 03 00 7f 05 0f 05 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9f 7f 7f ce 7f 34 00 00 00 00 00 00 00 00 00 05 00 31 67 00 51 39 00 35 00 50 7f 7f 7f 00 6a 00 5f 18 00 22 00 00 00 00 00 00 00 00 00 00 00 0f 10 11 11 0b 0b 18 11 06 18 14 14 00 00 00 00 87 e1 57 a7 b7 b8 7f 7f 91 be 7f aa 7f 7f 7f 7f 42 0e 18 0b 4b 57 21 00 09 21 01 0e 00 00 00 00 00 00 78 02 00 00 01 02 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 77 65 65 74 20 43 68 65 72 72 79 20 20 20 20 20 20 20 20 8f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 08 08 08 08 08 08 08 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0 bc c8 b3 bf cb ae ba b5 c6 b3 c8 b2 b0 d4 d4 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 2c 4c 51 61 01 6f 69 36 50 5f eb 3a 41 12 b0 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff
LUA>> Packed Program buffer data dump before Save
LUA>> 00 3c 3c 24 24 32 3c 32 00 32 3c 3c 3c 1d 05 05 00 04 1d 00 01 02 03 07 00 08 09 0a 04 05 06 07 00 36 40 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 1d 00 1d 1d 1d 00 00 00 00 00 01 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 01 02 02 00 00 00 00 00 03 00 00 05 00 0a 01 7f 00 00 00 17 01 24 10 00 75 08 00 00 40 00 7f 00 7f 00 78 70 00 50 4f 07 09 05 03 00 00 00 00 1e 00 00 00 22 00 00 00 00 00 7f 7f 7f 00 7f 00 00 00 00 00 00 00 00 00 40 40 40 40 00 20 00 00 00 15 28 04 3e 00 00 00 00 00 00 00 00 00 00 02 03 00 7f 05 0f 00 05 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 1f 7f 7f 01 4e 7f 34 00 00 00 00 00 00 00 00 00 00 05 00 00 31 67 00 51 39 00 35 00 00 50 7f 7f 7f 00 6a 00 00 5f 18 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 10 11 11 0b 00 0b 18 11 06 18 14 14 30 00 00 00 00 07 61 57 67 27 37 38 7f 7f 11 3e 02 7f 2a 7f 7f 7f 7f 42 00 0e 18 0b 4b 57 21 00 00 09 21 01 0e 00 00 00 00 00 00 00 78 02 00 00 00 01 02 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 77 65 65 74 20 43 00 68 65 72 72 79 20 20 40 20 20 20 20 20 20 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 08 08 08 08 08 08 00 08 20 20 20 20 20 20 00 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7e 00 30 3c 48 33 3f 4b 7f 2e 3a 35 46 33 48 32 07 30 54 54 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 2c 4c 00 51 61 01 6f 69 36 50 22 5f 6b 3a 41 12 30 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64 64 64 64 64 64 00 64 64 64 64 64 64 64 00 64 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 20
Ctrlr Linux VST plugin build from git (commit 87ad3d2) crashes Ardour3 upon start (undefined symbol: bfd_init) and Qtractor when trying to add the plugin to a track. When adding -lbfd as a linker flag to the VST Makefile both Ardour and Qtractor load the plugin but fail to open its GUI, then both DAWs crash. This is with Ubuntu 12.04.4 and libbfd 2.22. The standalone version works great. What would be the preferred way to debug this issue?
Best regards,
Jeremy
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
I need to start each methods referenced in panel callbacks with this code :
if panel:getBootstrapState() or panel:getProgramState() then
return
end
otherwise the code of the method is executed on panel load or on Ctrlr start.
In addition to that, event if I use the above code, all the callback methods are called the first time I launch an exported instance of my panel.
Hi,
to avoid double messages on MidiMessageReceived I used the technique proposed on the forum to reset the Controller devices.
sDevices = panel:getProperty("panelMidiControllerDevice")
panel:setPropertyString("panelMidiControllerDevice", "-- None")
panel:setPropertyString("panelMidiControllerDevice", sDevices)
Unfortunately I noticed that this was blocking the bidirectional behaviour of the modulators (turning a knob on the synth doesn't move the corresponding modulator - NRPN connection).
It works fine when resetting the Midi Input devices.
So maybe a bug on Controller devices?
Hello,
Linux native build seems broken, and documentation not up to date.
Some things I have needed to do but still not successfull:
unzip boost.zip
in <repo>/Source/Misc/boost/
and <repo>/Boost/
<repo>/Builds/Generated/Linux/Standalone/
and not chmod +x build.sh && ./build.sh
-I ../../../../Juce/modules \
to -I ../../../../JUCE/modules \
(case sensitive)-I
list: -I ../../../../Source/Misc/luabind \
and -I ../../../../Source/Misc/lua/include \
JUCE_CPPFLAGS
list the following: -I../../../../Source/Misc/lua/include -I../../../../Source/Misc/luabind -I../../../../Source/Misc/liblo/include/
With theses changes I am able to build to a certain point but it always fails.
Master currently fails on:
Compiling CtrlrProperties.cpp
Compiling CtrlrSysexProcessor.cpp
Compiling CtrlrSysexToken.cpp
Compiling CtrlrUpdateManager.cpp
../../../../Source/Core/CtrlrUpdateManager.cpp: In member function ‘virtual void CtrlrUpdateManager::timerCallback()’:
../../../../Source/Core/CtrlrUpdateManager.cpp:91:30: error: ‘ctrlrCheckForUpdates’ is not a member of ‘Ids’
if ((bool)owner.getProperty(Ids::ctrlrCheckForUpdates) == false)
^~~
../../../../Source/Core/CtrlrUpdateManager.cpp: In member function ‘juce::XmlElement* CtrlrUpdateManager::getUpdateData(const juce::String&)’:
../../../../Source/Core/CtrlrUpdateManager.cpp:108:32: error: ‘ctrlrUpdateUrl’ is not a member of ‘Ids’
url = URL(owner.getProperty (Ids::ctrlrUpdateUrl));
^~~
Compiling CtrlrUtilities.cpp
Makefile:472: recipe for target 'build/intermediate/Release_Nightly/CtrlrUpdateManager_a061528e.o' failed
make: *** [build/intermediate/Release_Nightly/CtrlrUpdateManager_a061528e.o] Error 1
make: *** Waiting for unfinished jobs....
CTRLR[linux]: build failed
Edit: error seems related to 315843a
(ugly) removing the impacted lines it build and leads to:
Compiling CtrlrLuaMemoryBlock.cpp
make: *** No rule to make target '../../../../Source/Lua/luabind/src/luabind.cpp', needed by 'build/intermediate/Release_Nightly/luabind_8688111a.o'. Stop.
make: *** Waiting for unfinished jobs....
Compiling CtrlrLuaRectangle.cpp
CTRLR[linux]: build failed
luabind.cpp doesn't exists
Seems related to 3b4bbc7 which change luabind to a fork without luabind.cpp
(now I'm stuck :p)
ctrlr crashed when i moved a locked modulator with
keyboard arrows. the unlocked ones moved ok, but i
then did it with 1 locked one, was ok, 2nd one gave
a crash. (can't find the report file atm?)
i have wrong tab names for modulators created at early stages of this
project, that belong to Groups. i changed the Tab title later, but items
in the group retain old Tab titles (eg: 'Tabs', and this is now called
Tabs Partials, and i don't have a 'Tabs' anymore.
This has happened with other items i created later on another
tabset, also changing that name later.
so...i conclude that once a modulator belongs to a Group, it is
the Group's 'ownership' that counts, and that items within it are
not so(...) 'connected' as before: tab reference does not update.
(i may have this all wrong, of course, i've been trying to figure out
what happened here, but seems best explanation)
in any case, i haven't had problem of modulators jumping into wrong
tab, as before, and project loads ok, and drafted ok as a test dll.
i will try to input correct tab references,for peace of mind. it looks odd
in Modulator List, is all.
i have also noticed that 'component ID' and 'component position and size'
swap places in the display, from modulator to modulator, -this is within
a ADSR series that were copies of each other. - i don't know if this is
important, just thought i'd mention it. (v102, i promise to update asap ;) )
The wrapper for addProgressBarComponent() method on LAlertWindow.cpp cannot be called from Lua because it requires the progressValue parameter to be passed as reference (which is not possible from Lua, unless I'm missing something).
We really need a way to handle progress bars in Ctrlr to give feedback to the user while a long running MIDI operation is being performed. Having it in a modal window seems a good option since we don't want the user to perform other operations while a MIDI dump is in progress.
I've been trying to use the ThreadWithProgressWindow but threading in Lua seems to cause some problems (Ctrlr crashes every once in a while...).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.