Forum: VirtualDJ 8.2 Technical Support

Use this forum to report any bug, questions or comment related to the latest version of VirtualDJ 8.2.
Forum Guidelines

(NOTE: VirtualDJ 8.2 is continuously updated, so many older topic on this forum are most probably already fixed in the current build)
Topic: How does Sysex LCD text work?
NuzzletPRO InfinityMember since 2015

Posted Thu 15 Sep 16 @ 6:15 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
Quote :
240 71 127 21 {line} 0 69 0 {ASCII char1} {ASCII char2} ... {ASCII char68} 247



the value of the {line} byte is:

24 for line 1 of the LCD

25 for line 2

26 for line 3

27 for line 4


VDJ uses hex so i am converting your data to hex

240 71 127 21 -->hex F0 47 7F 15
Line1 : 24 ->hex 18
0 69 0 -> hex 00 45 00
ASCII characters : you need 68 bytes with 00 for VDJ to fill
End of sysex 247 ->hex F7

So the sysex is
F0 47 7F 15 18 00 45 00 ... followed by 68 bytes with 00 ... F7
In your definition try..
<text sysex="F0477F15180045000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F7" offset="8" size="68" encoding="ascii" name="LINE1" />
i hope i counted the bytes correctly :)
So what VDJ does is starting from byte 8 (offset - VDJ starts counting bytes from 0 and not 1), reserves 68 bytes after that and fills with ASCII bytes

and then assign the LINE1 as whatever text you want e.g. get_sample_name 1 (should show the name of Sample 1)

PS.Since the space ASCII character is hex 20, there is a chance that the 68 bytes need to be filled with 20 instead of 00, so if the above doesnt work or provides "glitches" try sysex="F0477F151800450020202020202020....

Posted Thu 15 Sep 16 @ 6:37 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
BTW, i found this document https://app.box.com/s/w900ll2tq3tj83raes2a
On page 9 it provides the sysex you need to send in order the unit to be set to User or Live mode. Not sure which one is the one you need to set the unit to, but you should definitely choose one of them, so that it accepts custom text sysex.
So in your definition you must include..
240 71 127 21 98 0 1 1 247 which in hex its F0 47 7F 15 62 00 01 01 F7 (User mode)
<init sendsysex="F0477F1562000101F7"/>

or
240 71 127 21 98 0 1 0 247 which in hex its F0 47 7F 15 62 00 01 00 F7 (Live mode)
<init sendsysex="F0477F1562000100F7"/>


Posted Thu 15 Sep 16 @ 7:10 pm
NuzzletPRO InfinityMember since 2015
It is automatically in User mode. Live mode is what it uses to communicate with its native software Ableton Live.

Thank you, you have solved my problem. Now I need to separate each section of the LCD, but you have set me back on my way. Thank you for your help.

Posted Thu 15 Sep 16 @ 7:31 pm
Blimey.

I was just about to ask a similar question. lol

I've written a software midi device to accept the sysex message (emulating the ableton push), to receive the text and then use TTS to read the text over my headphones.

Looks like you saved me some trouble. :-)

cheers

Pete

Posted Thu 15 Sep 16 @ 8:00 pm
OOOOOOOOOOOOOOOOOOOOOHHHHHHHH MY GOOOOOOOOOOOOOOOD THANK YOUUUUU!!!

I tried about 2 or 3 years!
Now I found this post!
OH MY GOOOOOD!!!!!!!!!!!!!!

Posted Wed 07 Mar 18 @ 7:59 pm
Nuzzlet wrote :
It is automatically in User mode. Live mode is what it uses to communicate with its native software Ableton Live.

Thank you, you have solved my problem. Now I need to separate each section of the LCD, but you have set me back on my way. Thank you for your help.


Could you tell me if you managed to seperate the sections?
(I tried other offsets but all the other sections in the line get overwritten.)





EDIT:
Ok, did it :D

Posted Wed 07 Mar 18 @ 10:37 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
Tip : To avoid long get_text scripts in mapping, since the 68 characters can be used to display more than 1 type of info, you could also split the text sysex into smaller pieces...by nesting multiple <sysex>

So could be...

<text sysex="F0477F15180045000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F7">
<sysex name="LINE1_PIECE_1" encoding="ascii" offset="8" size="17" scroll="no" />
<sysex name="LINE1_PIECE_2" encoding="ascii" offset="25" size="17" scroll="no" />
<sysex name="LINE1_PIECE_3" encoding="ascii" offset="42" size="17" scroll="no" />
<sysex name="LINE1_PIECE_4" encoding="ascii" offset="59" size="17" scroll="no" />
</text>

Posted Wed 07 Mar 18 @ 11:14 pm