Welcome on XMLoop 1.0
 
Introduction
 
XMLoop is a Flash MX application designed to give anyone a simple way to create songs starting from mp3 loops. This is the first version of XMLoop, so it contains only the basic functionalities for managing sound clips. Future releases (maybe) will contain enhanced futures (I'm thinking about volume controller - including fade-in and out and solo playing using keys).
With XMLoop you can define your song structure in a simple XML file - seqdef.xml (see instructions below) and interact with it enabling and disabling sound clips while song is playing.
 
Real time interaction with song
 
Clicking on "state icons" you can enable/disable a sound clip. The change of state will be effective when entering new measure:
the clip is playing;
the clip is mute;
the clip state will be changed: if playing will be stopped, if mute will be started.
 
XML file structure
 
Let's see in detail the structure of the XML file used by XMLoop. Here's the file used in the demo:

<SONG TITLE="Movin' on XMLoop" THEEND="8" CREDITS="All samples extracted from or made with Arturia Storm 3.0 View Readme.htm for help." START_CUT="19" AUTOPLAY="N" LOOP="Y">
<SC NAME="drums" DATA="drums.mp3" VOLUME="100">
<SEQ START="1" STOP="3"/>
<SEQ START="6" STOP="7"/>
</SC>
<SC NAME="congas" DATA="congas3.mp3" VOLUME="60">
<SEQ START="3" STOP="5"/>
</SC>
<SC NAME="bass" DATA="bass1.mp3" VOLUME="100">
<SEQ START="2" STOP="3"/>
</SC>
<SC NAME="bass 2" DATA="bass2.mp3" VOLUME="50">
<SEQ START="5" STOP="8"/>
</SC>
<SC NAME="organ" DATA="organ.mp3" VOLUME="30">
<SEQ START="4" STOP="7"/>
</SC>
<SC NAME="voice" DATA="voice.mp3" VOLUME="80">
<SEQ START="2" STOP="3"/>
<SEQ START="6" STOP="8"/>
</SC>
</SONG>


The tags used are: SONG, SC and SEQ.
SONG attributes define the main properties of the song: TITLE, THEEND (nr. of the last measure of the song), CREDITS (you can write here some info about the song), START_CUT (see notes below), AUTOPLAY (should the song start playing immediatly after loading mp3 clips?), LOOP (should the song play againg when end is reached?).
SC means "sound clip", so the attributes you can define are: NAME, DATA (name of the mp3 file to load; in the demo seqdef.xml mp3 files are supposed to be in the same directory of the swf file) and VOLUME. In this version of XMLoop the volume is fixed for each movie clip and can not be changed during the song.
SEQ has only 2 attributes that define the START and the STOP measure of the clip. You can define more than one SEQ for each sound clip.
WARNING: there are NO CONTROLS on START and STOP values. If STOP value is less than START value, sound clip will play until THEEND.

In the seqdef.xml demo file, "voice" clip will play from measure 2 to measure 3, then stops and plays again from measure 6 to measure 8.

 
Notes on tags attributes
 
START_CUT: when creating a mp3 file, the encoding process will create a "mute" interval at the beginning of the file. If you try to loop this mp3, you'll hear an interruption between a sound clip and its next. START_CUT value is the number of milliseconds from which the mp3 clip will start looping, corresponding (more or less...) to the duration of the "initial encoding pause" of sound. I suggest you to try different values of START_CUT before choosing the right one. I find not so bad results for values between 15 and 25.
AUTOPLAY: setting to "Y" this value will cause the song to start playing automatically when mp3 files are loaded.
LOOP: setting to "Y" this value will cause the song to re-start playing when reaching the end.
 
Notes on mp3 files
 
In order to have "synchronized" clips in the song, it is strictly recommended to use mp3 files having the SAME TIME DURATION (in milliseconds). The measure unit is represented by the duration of the first mp3 file loaded. Even if it's possible to use clips during n measures, this usage of XMLoop 1.0 is not supported.
 
Known problems
 
The main known problems are related to the stopping events of the sound clips: in some cases sounds stop some milliseconds after the right time, causing a little "bzzz".

Info: aleriz@yahoo.com