No he is a German/Bavarian language learning French
da schau her
And i now the Marterpfahl!!!
Coudl you please post your current version of the Keylab testing gig file, such that I can add a timer delayed display in it?
This is just for testing purposes for now:
multisynth_with_piano_3.gig (213.1 KB)
My changes in your script are after the // new
comments. 2 sec after the last MIDI control message is received, the display will be refreshed. You will probably have to adapt the delay. Let me know if it works.
nope it does not - later today ill make a little video - makes life easier.
i still believe it is possible,as i was looking at the script changes you made.
are you a beta tester?
Is your initial custom message displayed or not at all?
Did you increase the delay if the timer?
Could you please put a MIDI monitor widget on the MIDI in block connected to the instrument plugins and check if some MIDI messages are displayed when you act on the KeyLab controls ?
initial display message (startup GP load gig) works fine.
if i connect midi monitor to artirias input midi block it shows on the first pad i hit (program change) the programm change - and pitch wheel messages!! Probably thats on the output side and (here comes the marterpfahl) DELETES the midimonitor plugin/block!!!
i think i need a siestaβ¦
ps did not change the delay i thought 2 secs is enough
sorry all bullshitβ¦by switching,of course,i go to another rack where the is no midi monitorβ¦
OK, for a start, please avoid controls sending Program Change messages. Does it work with knobs or faders sending CC or pitchwheel messages ? It should
(please Marterpfahl mit groΓ M!)
i ll try - let you know later
(notorious kleinschreiber here)
the global song settings does not allow cc as it just recognises the cc but not the value (0-127) of the cc
I am not sure we are talking from the same thing. I just would like to know if the modified script works. It is supposed to detect any control messages (not sure about PC thatβs why I asked you to first avoid this), and each time a control message is detected it restarts the timer, thus once you stop to send control messages, wait two seconds and the script should refresh the KeyLab display.
ok i changed the song parts recall from PC to notes, and it does it.
if i THEN send a PC it shows first the PC value on the display and then the rackspace name reappears correctly after 2 second (delay in the script) .therefore the delay works.
BUT the cc`s on manipulated faders and knobs (wich normally show values) do not appear on the display anymore.
b.t.w. thanks for your geduld
OK, so everything works for you, the display is properly refreshed with the Rackspace name, but the knobs sending CC messages are not displayed anymore, right?
This shouldnβt be related to what I modified in the script. Could you please comment out the script to verify that this behavior is not related to the script (to comment out, put /* on the first line of the script and */ on the last line. Then compile again to inhibit the script).
I am a very geduldig guy
mexican dinner nowβ¦tomorrowβ¦
like this?
/*var
KeyLab_mkII_49 : MidiOutBlock;
SysEx : SysexManager;
KeyLab_mkII_49_LCD_PRE : String;
KeyLab_mkII_49_LCD_SEP : String;
KeyLab_mkII_49_LCD_END : String;
ASCII_STRING : String;
ASCII_HEX_STRING : String array;
// new
KeyLab_mkII_49_in : MidiInBlock
DISPLAY_TIMER : Ramp
TIMER_MS_DELAY : Integer
Initialization
ASCII_STRING = " !"#$%&β()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[Y]^_`abcdefghijklmnopqrstuvwxyz{|}><";
ASCII_HEX_STRING = [β20β,β21β,β22β,β23β,β24β,β25β,β26β,β27β,β28β,β29β,β2Aβ,β2Bβ,β2Cβ,β2Dβ,β2Eβ,β2Fβ,β30β,β31β,β32β,β33β,β34β,β35β,β36β,β37β,β38β,β39β,β3Aβ,β3Bβ,β3Cβ,β3Dβ,β3Eβ,β3Fβ,β40β,β41β,β42β,β43β,β44β,β45β,β46β,β47β,β48β,β49β,β4Aβ,β4Bβ,β4Cβ,β4Dβ,β4Eβ,β4Fβ,β50β,β51β,β52β,β53β,β54β,β55β,β56β,β57β,β58β,β59β,β5Aβ,β5Bβ,β5Cβ,β5Dβ,β5Eβ,β5Fβ,β60β,β61β,β62β,β63β,β64β,β65β,β66β,β67β,β68β,β69β,β6Aβ,β6Bβ,β6Cβ,β6Dβ,β6Eβ,β6Fβ,β70β,β71β,β72β,β73β,β74β,β75β,β76β,β77β,β78β,β79β,β7Aβ,β7Bβ,β7Cβ,β7Dβ,β7Eβ,β7Fβ];
KeyLab_mkII_49_LCD_PRE = "# F0 00 20 6B 7F 42 04 00 60 01 ";
KeyLab_mkII_49_LCD_SEP = " 00 02 β;
KeyLab_mkII_49_LCD_END = " 00 F7β;
//new
TIMER_MS_DELAY = 4000; // 2000ms = 2sec delay
SetGeneratorOneShot(DISPLAY_TIMER,True);
SetGeneratorLength(DISPLAY_TIMER,TIMER_MS_DELAY+500);
SetGeneratorCoarseness(DISPLAY_TIMER,TIMER_MS_DELAY);
End
Function StringToHexString(str : String) Returns String
var i : Integer
result = ββ;
For i=0; i<Length(str) ; i=i+1 Do
result = result + ASCII_HEX_STRING[IndexOfSubstring(ASCII_STRING, CopySubstring(str,i,1), True)];
End
End
Function KeyLab_mkII_49_LCD(line0 : String, line1 : String)
If Length(line0) > 16
Then
line0 = CopySubstring(line0, 0, 16);
End
line0 = StringToHexString(line0);
If Length(line1) > 16
Then
line1 = CopySubstring(line1, 0, 16);
End
line1 = StringToHexString(line1);
SM_CreateSysexFromString(SysEx, KeyLab_mkII_49_LCD_PRE + line0 + KeyLab_mkII_49_LCD_SEP + line1 + KeyLab_mkII_49_LCD_END);
SM_SendMidiOut(SysEx, KeyLab_mkII_49);
End
On Activate
var s : String;
s = βRackspace:β;
KeyLab_mkII_49_LCD(s, GetRackspaceName());
// new
SetTimersRunning(true);
End
// new
// Catch note events before theyis catched by the MIDI event callbacks
On NoteEvent(m : NoteMessage) from KeyLab_mkII_49_in
KeyLab_mkII_49_in.SendNow(m);
End
On MidiEvent(msg : MidiMessage) from KeyLab_mkII_49_in
KeyLab_mkII_49_in.SendNow(msg);
// Comment the 2 following lines an GP won't crash anymore on closing or opening another script
EnableGenerator(DISPLAY_TIMER, False);
EnableGenerator(DISPLAY_TIMER, True);
End
On TimePassing(time : integer, magnitude : double) from DISPLAY_TIMER
//KeyLab_mkII_49_LCD(s, GetRackspaceName());
Print("Display again!");
End*/
if i did it (see above) correctly it is no good - still no difference and the display is stuck to the first rackspace name selected (i change rackspace by recalling)
Oh sorry, I forgot to switch from the test code to the code which is working for you.
Please modify the code by removing the // before KeyLab_mkII_49_LCDβ¦
And add it before Printβ¦
ok it looks like this now, still no response from knobs and slidersβ¦and the first rack name is not being displayed anymore
and i am learning!!! // is marking line as comment
/*var
KeyLab_mkII_49 : MidiOutBlock;
SysEx : SysexManager;
KeyLab_mkII_49_LCD_PRE : String;
KeyLab_mkII_49_LCD_SEP : String;
KeyLab_mkII_49_LCD_END : String;
ASCII_STRING : String;
ASCII_HEX_STRING : String array;
// new
KeyLab_mkII_49_in : MidiInBlock
DISPLAY_TIMER : Ramp
TIMER_MS_DELAY : Integer
Initialization
ASCII_STRING = " !"#$%&β()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[Y]^_`abcdefghijklmnopqrstuvwxyz{|}><";
ASCII_HEX_STRING = [β20β,β21β,β22β,β23β,β24β,β25β,β26β,β27β,β28β,β29β,β2Aβ,β2Bβ,β2Cβ,β2Dβ,β2Eβ,β2Fβ,β30β,β31β,β32β,β33β,β34β,β35β,β36β,β37β,β38β,β39β,β3Aβ,β3Bβ,β3Cβ,β3Dβ,β3Eβ,β3Fβ,β40β,β41β,β42β,β43β,β44β,β45β,β46β,β47β,β48β,β49β,β4Aβ,β4Bβ,β4Cβ,β4Dβ,β4Eβ,β4Fβ,β50β,β51β,β52β,β53β,β54β,β55β,β56β,β57β,β58β,β59β,β5Aβ,β5Bβ,β5Cβ,β5Dβ,β5Eβ,β5Fβ,β60β,β61β,β62β,β63β,β64β,β65β,β66β,β67β,β68β,β69β,β6Aβ,β6Bβ,β6Cβ,β6Dβ,β6Eβ,β6Fβ,β70β,β71β,β72β,β73β,β74β,β75β,β76β,β77β,β78β,β79β,β7Aβ,β7Bβ,β7Cβ,β7Dβ,β7Eβ,β7Fβ];
KeyLab_mkII_49_LCD_PRE = "# F0 00 20 6B 7F 42 04 00 60 01 ";
KeyLab_mkII_49_LCD_SEP = " 00 02 β;
KeyLab_mkII_49_LCD_END = " 00 F7β;
//new
TIMER_MS_DELAY = 4000; // 2000ms = 2sec delay
SetGeneratorOneShot(DISPLAY_TIMER,True);
SetGeneratorLength(DISPLAY_TIMER,TIMER_MS_DELAY+500);
SetGeneratorCoarseness(DISPLAY_TIMER,TIMER_MS_DELAY);
End
Function StringToHexString(str : String) Returns String
var i : Integer
result = ββ;
For i=0; i<Length(str) ; i=i+1 Do
result = result + ASCII_HEX_STRING[IndexOfSubstring(ASCII_STRING, CopySubstring(str,i,1), True)];
End
End
Function KeyLab_mkII_49_LCD(line0 : String, line1 : String)
If Length(line0) > 16
Then
line0 = CopySubstring(line0, 0, 16);
End
line0 = StringToHexString(line0);
If Length(line1) > 16
Then
line1 = CopySubstring(line1, 0, 16);
End
line1 = StringToHexString(line1);
SM_CreateSysexFromString(SysEx, KeyLab_mkII_49_LCD_PRE + line0 + KeyLab_mkII_49_LCD_SEP + line1 + KeyLab_mkII_49_LCD_END);
SM_SendMidiOut(SysEx, KeyLab_mkII_49);
End
On Activate
var s : String;
s = βRackspace:β;
KeyLab_mkII_49_LCD(s, GetRackspaceName());
// new
SetTimersRunning(true);
End
// new
// Catch note events before theyis catched by the MIDI event callbacks
On NoteEvent(m : NoteMessage) from KeyLab_mkII_49_in
KeyLab_mkII_49_in.SendNow(m);
End
On MidiEvent(msg : MidiMessage) from KeyLab_mkII_49_in
KeyLab_mkII_49_in.SendNow(msg);
// Comment the 2 following lines an GP won't crash anymore on closing or opening another script
EnableGenerator(DISPLAY_TIMER, False);
EnableGenerator(DISPLAY_TIMER, True);
End
On TimePassing(time : integer, magnitude : double) from DISPLAY_TIMER
KeyLab_mkII_49_LCD(s, GetRackspaceName());
Print("Display again!");
End*/