mp3 Frame Editor script language specification


IMPORTANT NOTE: script interpreter can work with Latin alphabet filenames (ISO-8859-1) only!

SELECT cursor_time or SELECT start_time, end_time
Alternative notation for this command is CURSOR. You may use EOF to specify end of the file (end time). Any value larger than end time will be treated as end time. Use R+ and R- to specify time relative to the current cursor position. Note: you can't use EOF-1, for instance. To do that, position cursor to EOF, and then use R-1. Relative time supports semicolons as well as direct time (ie 2:03.45 will be interpretted as 2 minutes 3 seconds 450 milliseconds). You may use relative select for both parameters (ie SELECT R-1,R+1 selects two seconds around the current position). Note: relative selection can be made in all following commands for parameters named cursor_time, start_time & end_time.



DELETE or DELETE start_time, end_time

BASEDELETE start_time, end_time
Avoid if possible. Not intelligent, just subtracts previously deleted time (total using DELETE and BASEDELETE and left from the selection using TRIM) from the selection points.

TRIM or TRIM start_time, end_time

FADEIN magnitude or FADEIN start_time, end_time, magnitude
Magnitudes in dB are rounded in 1.5 steps. Acceptable range is 1.5 to 60 dB.

FADEOUT magnitude or FADEOUT start_time, end_time, magnitude
Same as FADEIN.

SILENCE silence_length or SILENCE start_time, end_time, silence_length
To insert silence at a desired spot different than current cursor position, move the cursor first using SELECT command (or use the second syntax with start_time equal to end_time).

COPY or COPY start_time, end_time

CUT or CUT start_time, end_time

PASTE or PASTE cursor_time or PASTE start_time, end_time
Default paste in the first case, paste onto target spot in the second case (equal to SELECT cursor_time then PASTE), or paste replacing the part between start_time and end_time in the third case (equal to SELECT start_time, end_time then PASTE).

VOLUME magnitude or VOLUME magnitude, channels or VOLUME start_time, end_time, magnitude or VOLUME start_time, end_time, magnitude, channels
Possible values for channels are BOTH, LEFT and RIGHT. Omitting is equivalent to BOTH. Magnitude is in range -60 to +60 dB and is rounded in 1.5 steps.

LOAD filename
Filename must be surrounded with quotes if it contains separators (commas or spaces). Good practice would be to always use quotes.

No you won't get the "do you want to save" prompt, even if it's specified in the options. Applies on LOAD and CLOSE commands too.

Overwrites source without prompting, regardless of overwrite prompt setting in the options. Use with caution.

SAVEAS filename
Same as LOAD.

Alternative notation for this command is UNLOAD.

SAVESELECTION filename or SAVESELECTION start_time, end_time, filename
Filename must be surrounded with quotes if it contains separators.

INSERT filename or INSERT cursor_time, filename or INSERT start_time, end_time, filename
Insert the file specified by filename either at current cursor position (syntax 1), at specified position (syntax 2), or between start_time and end_time (syntax 3).

SPLIT filename1, filename2 or SPLIT filename1, filename2, filename3
If multiple frames are selected, 3 parameters are required. No tags are copied. As usual, filenames better be quoted.





Equivalent to checking "remove id3v2 header tag". Alternative notation is REMOVEID3V2.

Equivalent to checking "remove id3v1 footer tag". Alternative notation is REMOVEID3V1.

Equivalent to checking "remove lyrics3 tag". Alternative notation is REMOVELYRICS.

Equivalent to checking "remove unknown origin header/footer" and "remove RIFF header". Alternative notation is REMOVEOTHER.

The same syntax applies for all text fields: either supply one quoted parameter (up to 1 KB length, including the quotes), or type maximum of 4 words without quotes. Possible values of TEXTFIELD are:
BPM (you are advised to enter a number, but you may enter any text)
GENRE (although it actually isn't plain text field, you are only allowed to use it as such)
(C) ("Copyright")
ENCODER (aka "Encoded by")
CGD ("Content Group Description" aka "Grouping" aka "Music Category")
TRACK (two possible formats: either A or A/B where A is track number and B is total number of tracks; although these formats are highly advised, this field is actually a text field and you may enter anything, leaving the interpreting software to deal with it in its own manner)
YEAR (although entering a 4-digit number is highly recommended, this is also just a plain text field)

If you use COMMENT this way, it will be treated as a common text field, like all of the above. No content description, no new lines, maximum length of 1024 characters.

ID3V2.COMMENT.START content_description or ID3V2.LYRICS.START content_description
text line 1
text line 2
text line N

Omit content_description if you deal with software that doesn't support it, like itunes. Use this format to enter multiple lines of text. There is no practical single line size limit. You are advised to keep the entire tag under 1 MB, however. Content_description, if used, should be a short string (up to 32 characters is advised). Multiple comments or lyrics with different content_descriptions may be added to a tag.

ID3V2.PICTURE filename description
Picture must be of JPG (allowed extensions: JPG, JPEG, JFIF) or PNG type (allowed extension: PNG only). Description should be one of the following (and doesn't have to be quoted):
Description may be omitted (meaning "OTHER"). Multiple pictures may be added to a tag. Avoid adding large pictures, adding pictures of the same type or with the same description, and exceeding total tag size of 1 MB.

Notes on ID3V2.* commands:
The first one initiates the tag. Any existing tag will be erased. Type of the tag (id3v2.2, id3v2.3 or id3v2.4, unsynchronised or not) and padding are determined in the options menu.

Using a token *y, *m or *d in filename will result in writing the current year, month or date.
Although all commands are uppercase in this document, they don't have to be. Script interpreter is not case sensitive.
Spaces may be used as separators as well as commas (i.e. COPY 0 30). If extra parameters exist, they are ignored if sufficient parameters are already supplied. If invalid command is encountered, or an error of any sort happens, user is prompted whether he wants the script execution continued or not (in case script is ran in normal, not silent mode). Script interpreter will consider a line starting with any of the following characters a comment and ignore it: / \ { [ ( < : ; @ # . ' ! $.
Silent mode: run the program from the command line and add slash and script filename as parameter. No messageboxes are displayed, and the program closes upon executing the script. Example:
"c:\...path...\mp3FrameEditor.exe" /"c:\...path...\script1.txt"
Should you omit the slash, the program would attempt to open the script as mp3 file.