Quick Sign In:  

Forum: VirtualDJ Skins

Topic: A little problem I'm having.. - Page: 1

This part of topic is old and might contain outdated or incorrect information

When I create an xml for my skin, it shows me a problem.

"Invalid Skin File (Error line 0 in the xml)"


I'm pretty sure everything is what it is supposed to be. Here is what I have now.




<?xml version="1.0" encoding="UTF-8"?>
<Skin name="DJ Kalando" version="1" width="1024" height="768">
<copyright>- (c)GTA Ghana Soundmasters -</copyright>
***********************************************************************************
TOP (Config, CPU, etc.)
***********************************************************************************
<grabzone>
<size width="1024" height="38"></size>
<pos x="0" y="0"></pos>
</grabzone>

------------
Settings
------------

<button action="settings">
<size width=33" height="25"></size>
<pos x="875" y="0"></pos>
<over x="+0" y="+768"></over>
<selected x="+0" y="+768"></selected>
<down x="+0" y="+768"



Is there anything I have to add, so that Virtual DJ reads the XML?
 

Posted Wed 26 Aug 09 @ 7:28 pm
JeremKPRO InfinityModeratorMember since 2004
Was the wrote in your post cropped? because it is very incomplete there. It misses "down", "button", "skin" close tag.

You should change 'version="1"' to the version of VirtualDJ you are using. Supposely, version 6 as you are a demo user.
Don't forget to put a logo:
<logo>
<pos x="0" y="0"/>
<size width="0" height="17"/>
</logo>

If you still have an error line 0, try opening the XML in Microsoft Word, it will show you all errors in the XML.
 

Posted Thu 27 Aug 09 @ 6:31 am
listen2PRO InfinityMember since 2005
typically error in line 0 means your missing the virtual dj logo or or is overlapping another element. thats the 1st place i would look.
 

Posted Thu 27 Aug 09 @ 8:41 am
djdadPRO InfinityDevelopment ManagerMember since 2005
You get "Error line 0" also if you have missed a symbol like <, ", / etc anywhere in the xml file.
 

Posted Thu 27 Aug 09 @ 10:49 am
Thanks guys. I am going to check it out.

I'm just starting to get the hang of it. Hoping to learn computer programming for my grade 10 course..

And yes this is incomplete. I am starting to create the xml.
 

Posted Thu 27 Aug 09 @ 12:35 pm


 

Posted Sun 27 Feb 11 @ 2:21 pm
When I create an xml for my skin, it shows me a problem.

"Invalid Skin File (Error line 0 in the xml)"


I'm pretty sure everything is what it is supposed to be. Here is what I have now.





***********************************************************************************
TOP (Config, CPU, etc.)
***********************************************************************************
<grabzone>
<size width="1024" height="38"></size>
<pos x="0" y="0"></pos>
</grabzone>

------------
Settings
------------

<button action="settings">
<size width=33" height="25"></size>
<pos x="875" y="0"></pos>
<over x="+0" y="+768"></over>
<selected x="+0" y="+768"></selected>
<down x="+0" y="+768"



Is there anything I have to add, so that Virtual DJ reads the XML?


 

Posted Sun 27 Feb 11 @ 2:21 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
error line 0 is a message for some wrong coding mostly (missing a bracket a " symbol etc)

In order to find which part of the xml is giving you this error, try to go step by step loading one element at a time.

Create another xml file as backup, and begin to copy paste elements (parts).

Your above code has a small mistake, and a </button> line is missing from the end, and should look like

.<button action="settings">
<size width="33" height="25"></size>
<pos x="875" y="0"></pos>
<over x="+0" y="+768"></over>
<selected x="+0" y="+768"></selected>
<down x="+0" y="+768"/>
</button>
 

Posted Sun 27 Feb 11 @ 3:18 pm
gullumPRO InfinityMember since 2007
the most easy way is to right click on the xml and open it with a browser I use Opera but it works with most browsers. In Opera it even shows what line is wrong
 

Posted Sun 27 Feb 11 @ 3:44 pm
Greetings, I need some help also. I'm stumped.

I'm trying to use VDJ Script to modify my skin files. But I have the "Invalid skin file (error line 0 in the xmll)" problem also.

I've read about missing characters so I tried an experiment.

First I take the compressed skin file and unzip it. I zip it back just to test the function... and all works with no errors in all the different resolution XML files. So far so good.

Then I take one of the resolution XML files and copy/paste it back into the folder... and re-zip. When I open the skin file every resolution file works except for the one I copied/pasted. I don't get it. There should be no difference right ??? It should be a working clone. I made no changes. Just a copy/paste.

So I have run into a brick wall. When copy/paste of a good XML file won't work, I see why my modified XML file isn't working either.

Any suggestions? I'm stuck.


Regards,

Jim L
 

Posted Wed 11 May 11 @ 10:24 pm
Just used the program "Compare It" to see if there are any differences in the original XML skin file and the copy. Both files are identical.

I don't understand why I can't open the copy XML. This is a tough one.

This is happening on 2 different computers. I used to be able to edit, save, compress, and open. I don't get it. Any ideas?

What the heck am I doing wrong?


Regards,

Jim
 

Posted Thu 12 May 11 @ 12:18 am
Ahhhhhh.... found the problem.

I didn't have a matching name BMP file to the XML.

Simple as that.


Jim

 

Posted Thu 12 May 11 @ 12:25 am
It has to be a carriage return hidden charaacter that is getting dropped in the copy/paste process

there are some elements that are automatically seperated into several lines by the skin editing software and also on the default skin.

Some examples of these are the rhythmzone code and the browser code are notorious for seperating one line of code into several lines.

If you are copy/pasting either of these sections you may have that issue. Go into the xml file and change the code into a one continuous line of code. for example.


<browser>
<size width="1278" height="377"/>
<pos x="44" y="377"/>
<text font="Segoe" size="15" color="#FFFFFF" selected="#678930" stripes="#171717"/>
<options font="Segoe" size="13" color="#000000" selected="#000000" over="#000000"/>
<widgets font="Segoe" size="13" color="#FFFFFF"
facecolor="#000000"
lightcolor="#00FF00"
shadowcolor="#FF8000"
highlightcolor="transparent"
darkshadowcolor="transparent"
trackcolor1="transparent"
trackcolor2="transparent"/>
</browser>

for whatever reason I've found that if I just make this into one continuous line it will solve the problem sometimes... I could be wrong

<browser>
<size width="1278" height="377"/>
<pos x="44" y="377"/>
<text font="Segoe" size="15" color="#FFFFFF" selected="#678930" stripes="#171717"/>
<options font="Segoe" size="13" color="#000000" selected="#000000" over="#000000"/>
<widgets font="Segoe" size="13" color="#FFFFFF" facecolor="#000000" lightcolor="#00FF00" shadowcolor="#FF8000" highlightcolor="transparent" darkshadowcolor="transparent" trackcolor1="transparent" trackcolor2="transparent"/>
</browser>

Chuck
 

Posted Thu 12 May 11 @ 12:32 am
Chuck,

Thanks but copy/paste was not the problem. I didn't have a matching BMP file to go with the XML. They have to be named the same. That problem is fixed.

Now I have a VDJ Script question.

Right now I have default code set to:

button action="deck 1 hot_cue 1" which allows me to set a loop length and hit a hot cue button and the song will start playing the loop at the length that I set. I like this feature.

The problem is when I hit any other hot_cue button it keeps playing the same loop length. I want it to release the loop and start playing from the cue point.

So I changed the code to look like:

button action="deck 1 hot_cue 1 & loop_out" which now kicks out the loop and starts to play at the loop begin point. That's what I want, but...

Now when I set a loop length and hit a hot cue button the loop exits.

So I need a condiional statement that says something like:

If loop is not playing then start the selected loop when the hot_cue button is pushed. If the loop is playing then exit out of the loop.

I haven't been able to figure out the syntax to make this function work. Can you or anyone give me a clue how to code this?


I'm pulling my hair out what's left of it.


Thanks,

Jim
 

Posted Thu 12 May 11 @ 3:01 am
deck 1 loop ? deck 1 loop_out : deck 1 loop & deck 1 hot_cue 1
 

Posted Thu 12 May 11 @ 6:23 am
Thanks Phantom it's getting closer.

Problem is the Hot Cue button is not lit even though a cue mark is set. The loop exit works when song is playing. But when the song is not playing and I set a cue length then hit the Hot Cue button, the loop length turns off.

I'll keep experimenting. Gotta cut grass right now.

This is how I incorporated your suggestion.

<button action="deck 1 loop ? deck 1 loop_out : deck 1 loop & deck 1 hot_cue 1" rightclick="deck 1 set_cue 1" >
<pos x="374" y="152"/>
<size width="28" height="19"/>
<selected x="413+0" y="152+900+256"/>
<over x="413+0" y="152+1400+256"/>
<down x="413-1" y="152+899+256"/>
</button>


Regards,


Jim
 

Posted Thu 12 May 11 @ 12:08 pm
PhantomDeejay wrote :
deck 1 loop ? deck 1 loop_out : deck 1 loop & deck 1 hot_cue 1

This is the answer to the exact following statement:
JimmyL-DJ wrote :
If loop is not playing then start the selected loop when the hot_cue button is pushed. If the loop is playing then exit out of the loop


For the button to "lit" the code should be changed to:
deck 1 hot_cue 1 ? on & deck 1 loop ? deck 1 loop_out : deck 1 loop & deck 1 hot_cue 1 : off & deck 1 loop ? deck 1 loop_out : deck 1 loop & deck 1 hot_cue 1
 

Posted Thu 12 May 11 @ 5:32 pm
Phantom you're a genius to understand stringing this code together. I'm gonna have to print this off and use colored highlighters to figure out the logic here.

My problem still exists and unfortunately other functions are misbehaving now.

This is how I planted it in the XML section:

<button action="deck 1 hot_cue 1 ? on & deck 1 loop ? deck 1 loop_out : deck 1 loop & deck 1 hot_cue 1 : off & deck 1 loop ? deck 1 loop_out : deck 1 loop & deck 1 hot_cue 1" rightclick="deck 1 set_cue 1" >
<pos x="374" y="152"/>
<size width="28" height="19"/>
<selected x="413+0" y="152+900+256"/>
<over x="413+0" y="152+1400+256"/>
<down x="413-1" y="152+899+256"/>
</button>

I checked a previous Cioce skin I was using because it was doing what I wanted... but there is a twist.

Here is the code:

<button action="deck 1 hot_cue 1 & loop_exit 1" rightclick="holding ? deck 1 delete_cue 1 : deck 1 set_cue 1">
<pos x="265" y="186"/>
<size width="42" height="23"/>
<selected x="+0" y="+800"/>
<over x="+0" y="+1568"/>
<down x="+0" y="+3001"/>
<tooltip>deck 1 hot cue 1 / set / hold del</tooltip>
</button>

Pretty simple but there was a change in the default behavior with the 4 deck skin, in regards to Hot Cues.

With the 4 deck XML you now can select a loop length and hit a Hot Cue, and the song will start looping at the selected length. You can't do that with the Cioce skin.

When I use the Cioce skin using the above code, when I set a cue length, and hit a Hot Cue, the loop will exit and not play. The loop length indicator button then goes to unselected.

So I want to mix the two behaviors.

I need the Hot Cue buttons be lit active on the appropiate cue mark 1,2, or 3.
I want to select a loop length... then
Hit a Hot Cue button 1,2, or 3 and the appropiate loop will start playing at the selected loop length. ( the 4 deck skin)

If I change loop length downward 4,2,1, 1/2 musically (cool stutter sound in time with the music) I want to hit the Hot Cue button 1,2, or 3...exit the loop, and start playing the song at appropiate cue mark 1,2, or 3. ( the Cioce skin)

Then perhaps set the loop length back to 8, the indicator shows enabled, hit any Hot Cue 1,2, or 3 and it starts the 8 beat loop from the beginning of the appropiate cue mark.


I certainly appreciate your help. I'm amazed how complex this can be.

I'll do my best to figure this out. If my psuedo code makes sense and you have any other ideas... please suggest.

Regards,

Jim
 

Posted Fri 13 May 11 @ 12:25 am
thanks for that code phantom, you just helped me solve a problem I was working on
 

Posted Fri 13 May 11 @ 2:59 am
There's a little problem with what you're actually trying to achieve...

Let me explain where's the problem:

Let's take button A that's for hotcue 1 and button B for hotcue 2

You hit button A and deck 1 automatically jumps to cuepoint 1 and starts looping. You mess with the loop length, you hit button A again, and deck 1 jumps back to cuepoint 1 and exits the loop.

THATS OK, and it can be done!

Now, you hit button A and deck 1 goes back to cuepoint 1 and starts looping. You hit button B and you want deck 1 to jump to cuepoint 2 and CONTINUE looping...

That can't be done because VirtualDj doesn't know from which cue-point the loop started... If you code one button to do all the stuff then when you hit button B deck 1 will jump to cuepoint2 and EXIT the loop...

Now, there's a possible way to do all this stuff with a button, but it involves setting parameters and the scripting gets very complex.

Give me some time to see IF I can code it with parameters. However most likely the button will lose it's ability to "lit" but we can work on this later...


PS: Try this code here (on 2 keyboard buttons one for hotcue 1 and one for hotcue 2) to see what I mean

deck 1 hot_cue 1 ? on & deck 1 loop ? deck 1 loop_out & deck 1 hot_cue 1 : deck 1 hot_cue 1 & deck 1 loop
 

Posted Fri 13 May 11 @ 6:47 am
95%