[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A. Net MD Protocol

The Net MD protocol specifies the details of the data exchange between the host and the Net MD compatible audio device. This protocol was developed by Sony (Sony is a registered trademark of the Sony Corporation), and proprietary. There is no public information on this protocol provided by Sony. This appendix summarizes what is known about this protocol from reverse engineering efforts.

Many commands, especially those used by prorietary software with Net MD support, are known. Some more commands are known to exist, but we don't know how they look like. Some other features seem desirable, but we don't know if they are available at all in the firmware or even hardware of the audio devices we use.

Of those commands we do know, we understand little about the semantic meaning of each byte. Some patterns reoccur, and lead themselve to a certain interpretation, but there is no homogenous and simple interpretation of all data transfered. Sometimes we don't even know what a certain command does, just that it is used by some proprietary software and/or that it is accepted by the player.

Please note that not all variations of each command has been tested on each audio device. If you notice that your Net MD compliant audio device behaves different than described here, we would like to learn about it.

All numbers in this paragraph are hexadecimal, and typesetted like this: 00, a2, cf, 3b.

A.1 Transferring Data  Using USB to transfer data.
A.2 Command Syntax  The structure of a command request.
A.3 Commands  The available commands.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.1 Transferring Data

The USB port of a Net MD audio device provides one interface (class 255, subclass 0, protocol 0) and three endpoints.

  1. Endpoint 0 is of type interrupt and has the direction input. It is used to send control and query commands to the Net MD device. This is the main interface used for everything except transferring the actual audio data.

  2. Endpoint 1 is of type bulk and has the direction output. It is unknown if this is ever used, but it could possibly used to transfer audio data to the host.

  3. Endpoint 2 is of type bulk and has the direction input. It is used to transfer audio data to the Net MD device.

FIXME More information about the USB communication: Vendor request, polling, etc. Help appreciated!


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.2 Command Syntax

A.2.1 Basic Syntax Rules  Some general information about form.
A.2.2 Backward Compatibility  How to test for features.
A.2.3 Data Types  How to pass various information.
A.2.4 Return Status  How to tell if a command succeeded.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.2.1 Basic Syntax Rules

Every request starts with the byte 00, which is also a placeholder for the return status.

The second byte of every request is 18. The meaning is unknown (someone suggested it is a peripheral index(?)).

The third byte specifies the command or group of commands.

What follows next is different for each command. Most commands seem to belong to one of two different categories, though, and follow one of the following two patterns:

Although many commands follow these patterns at least roughly, some don't. For example, some commands take parameters before and after the ff byte. Because of the lack of a universal rule, each command is defined separately, even though they sometimes share a lot with other commands. We simply lack the semantic interpretation to make a more unified approach feasible.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.2.2 Backward Compatibility

If you don't want to actually perform a request, but only check if a command is supported by the hardware, you can send the command with the first byte being 02 instead 00, and some dummy parameters filled in.

If the device does not support the command, it will return the error status code 08. If it does support the command, it will return the status code 0c.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.2.3 Data Types

Commands and replies are transferred as byte streams. Data types that take up more than a single byte are stored in network byte order (big-endian, most significant byte first).

A.2.3.1 Track Numbers  How track numbers are specified.
A.2.3.2 Times  How times are specified.
A.2.3.3 Encodings  How encodings are specified.
A.2.3.4 Tags  Generic data type identifiers.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.2.3.1 Track Numbers

Track numbers are two bytes long and zero-based. This means that the first track is 00 00, the second track is 00 01 and so on.

Currently the mini disc format only supports up to 254 tracks. It seems that the track 00 ff is special and used to store information about the disc, like the disc title. However, there is no need to make use of this factoid and it is unknown what happens to track 00 ff when it becomes a valid track number.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.2.3.2 Times

Times are specified in the BCD (Binary Coded Decimal) format.(1) It uses one nibble (four bit) for each decimal digit. For example, decimal number 96 becomes the hexadecimal number 96 in BCD format. In fact, the representation of a number is always the same in decimal and hexadecimal BCD format.

The times specified in the NetMD protocol are four bytes long. The first byte specifies the number of hours, the second the number of minutes, the third the number of seconds, and the fourth byte the number of frames. The time 110:43.12 (one hour, fifty minutes, fourty-three seconds and twelve frames) would be encoded as 01 50 43 12.

One frame is 512 ATRAC samples. With a sampling rate of 44.100 Hz this means that one second contains about 86.132812 frames.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.2.3.3 Encodings

The audio data format is specified by a single byte that contains information about the codec (90 for SP, 92 for LP2 and 93 for LP4), followed by a byte that contains information about the number of channels (this byte is 00 for stereo and 01 for mono). The following values are possible:

90 00
stereo SP, ATRAC1 encoded, 292 kbps

90 01
mono SP format, ATRAC1 encoded, 146 kbps

92 00
stereo LP2 format, ATRAC3 encoded, 132kbps

92 01
mono LP2 format, ATRAC3 encoded, 132kbps

93 00
stereo LP4 format, ATRAC3 encoded, 66kbps

93 01
mono LP4 format, ATRAC3 encoded, 66kbps


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.2.3.4 Tags

In the Net MD protocol some byte sequences occur systematically near a parameter that has a specific meaning. For example, the track number is often prefixed by 20 10 01 00. In other cases, we can conclude that certain bytes are length parameters that say how many bytes follow. From this, we can make certain assumptions about the meaning of certain byte sequences.

Please take this list with a grain of salt. There is not sufficient data to verify these assumptions, nor is the existing data strictly in line with them.

10 10 00
"Disc" or "disc-related", "data medium". This occurs in the commands to retrieve disc properties like the capacity or write protection flags.

20 10 01 00 $t
"Track number $t". Almost always track numbers are specified in this way.

30 00 10 00
"Track count" (of a disc).

30 00 0a 00
"Title" (of a disc or track).

30 00 01 00
"Length" (of a track).

30 80 03 00
"Capacity" (of a disc).

30 80 07 00
"Bitrate" (of a track).

This table is not complete, and likely incorrect. We just don't know better. If you have some enlightnment when looking at the command sequences, share your ideas with us, and maybe we can improve the list.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.2.4 Return Status

After sending the command, the Net MD device sends a reply. The reply is usually similar to the request, with some bytes altered and sometimes some bytes appended. The first byte indicates a status code:

08
The command was invalid. This indicates a syntax error or that the command is not supported.

09
The command was accepted and processed successfully.

0a
The command was recognized, but couldn't be executed because of some reason. Possible reasons include that the disc is blank, or that an argument (like a track number) was out of range.

0c
The command is supported (in response to a command starting with 02).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3 Commands

The commands are formatted to make the different arguments and their interpretation more visible, but the formatting is not part of the command of course. The arguments are prepended by a $ sign and repeated as often as the number of bytes they occupate. For example, a track number would be specified as $t $t.

A.3.1 Device Commands  Commands related to device control.
A.3.2 Disc Commands  Commands related to disk properties.
A.3.3 Track Commands  Commands related to track properties.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.1 Device Commands

A.3.1.1 Exclusive Login  Setting up the connection.
A.3.1.2 Get Disc Count  Retrieving information about inserted discs.
A.3.1.3 Get Disc Operating Mode Status  Retrieving the operating mode.
A.3.1.4 Get Play Counter  Retrieve the current playback position.
A.3.1.5 Get Recording Parameters  Retrieving the recording parameters.
A.3.1.6 Play Audio  Set playback operating mode.
A.3.1.7 Stop Play  Stop playback.
A.3.1.8 Set Play Counter By Track  Set play counter to the beginning of a track.
A.3.1.9 Set Play Counter By Time  Set play counter within a track.
A.3.1.10 Search Audio Track  Set play counter to next or previous track.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.1.1 Exclusive Login

Request
00 ff 01 0c ff ff ff ff ff ff ff ff ff ff ff ff

Reply
09 ff 01 0c ff ff ff ff ff ff ff ff ff ff ff ff

Request exclusive access to the device. This is used at the beginning of a session. It is not known how a conflict between two users is recognized.

After using the device, before shutting down the connection, the following command is used to end the session:

Request
00 ff 01 00 ff ff ff ff ff ff ff ff ff ff ff ff

Reply
09 ff 01 00 ff ff ff ff ff ff ff ff ff ff ff ff

Give up exclusive access to the device.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.1.2 Get Disc Count

Request
<00 18 09> 80 01 <02: 30 88 00 00, 30 88 04 00> ff 00 00 00 00 00

Reply
<09 18 09> 80 01 <02: 30 88 00 00, 30 88 04 00> 10 00 00 09 00 00 <00 07: 88 04 <00 03: $x ff 40>>

This function returns the number of discs present. On single-deck players, $x is 40 if a disc is present in the player, and 80 if no disc is present.

Note: If the command fails, send 00 18 08 80 00 01 00 and try one more time. We don't know what that means, though.

Note: Are there any Net MD capable multi-deck players out there? If yes, what does this command do with these?


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.1.3 Get Disc Operating Mode Status

Request
<00 18 09> 80 01 <03: 30 88 02 00, 30 88 05 00, 30 88 06 00> ff 00 00 00 00 00

Reply
<09 18 09> 80 01 <03: 30 88 02 00, 30 88 05 00, 30 88 06 00> ff 10 00 00 08 00 00 <00 06: 88 06 <00 02: $x $y>>

This function returns the disc operating mode status. The bytes $x $y indicate the status as specified in the following table:

56 ff
Recording (over USB)
c2 75
Recording
c2 7d
Recording Paused
c3 3f
Fast Forwarding
c3 4f
Rewinding
c3 75
Playing
c3 7d
Pausing
c5 ff
Stopped

Note: If the command fails, send 00 18 08 80 00 01 00 and try one more time. We don't know what that means, though.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.1.4 Get Play Counter

Request
<00 18 09> 80 01 <04: 30 88 02 00, 30 88 05 00, 30 00 03 00, 30 00 02 00> ff 00 00 00 00 00

Reply
<09 18 09> 80 01 <04: 30 88 02 00, 30 88 05 00, 30 00 03 00, 30 00 02 00> 10 00 00 0d 00 00 <00 0b: 00 02 <00 07: 00 $t $t $h $m $s $f>>

This function returns the current playback position. The current position is in track $t $t, at the time specified by $h:$m:$s:$f. $h is the hours, $m the minutes, $s the seconds, and $f the frames within the track. $h, $m, $s and $f are in BCD format.

Note: If the command fails, send 00 18 08 80 00 01 00 and try one more time. We don't know what that means, though.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.1.5 Get Recording Parameters

Request
<00 18 08> 80 00 01 00

<00 18 09> 80 01 <03: 30 88 01 00, 30 88 05 00, 30 88 07 00> ff 00 00 00 00 00

<00 18 08> 80 00 00 00

Reply
<09 18 08> 80 00 01 00

<09 18 09> 80 01 <03: 30 88 01 00, 30 88 05 00, 30 88 07 00> 10 00 00 0e 00 00 <00 0c: 88 05 <00 08: 80 e0 01 10 $e $m 40 00>>

<09 18 08> 80 00 00 00

This function returns the current active recording parameters. These parameters affect how the Get Disc Capacity function returns the available disk size. $e $m is the encoding (see Data Types) that is used for recording.

Note: We don't know what the embracing commands mean.

Note: The 40 00 also has a meaning and might be variable, but we don't know more about it.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.1.6 Play Audio

Request
<00 18 c3> ff $a 00 00 00

Reply
<09 18 c3> ff $a 00 00 00

This fuction controls the playback operation. The meaning of $a is described in the following table:

39
Fast Forward

49
Rewind

75
Play

7d
Pause


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.1.7 Stop Play

Request
<00 18 c5> ff 00 00 00 00

Reply
<09 18 c5> ff 00 00 00 00

This fuction stops playback and resets the playback status.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.1.8 Set Play Counter By Track

Request
<00 18 50> ff 01 00 00 00 00 $t $t

Reply
<09 18 50> 00 01 00 00 00 00 $t $t

This fuction sets the current playback position to the beginning of track $t $t.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.1.9 Set Play Counter By Time

Request
<00 18 50> ff 00 00 00 00 00 $t $t $h $m $s $f

Reply
<09 18 50> 00 00 00 00 00 00 $t $t $h $m $s $f

This fuction sets the current playback position to the time $h $m $s $f from the beginning of track $t $t.

The actual position will be at the nearest frame that can be positioned by the hardware.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.1.10 Search Audio Track

Request
<00 18 50> ff 10 00 00 00 00 $u $v

Reply
<09 18 50> 00 10 00 00 00 00 $u $v

This fuction sets the current playback position relativ to the current playback position, according to $u $v. Possible values for $u $v are listed in the following table:

00 01
Set the playback position to the beginning of the current track.

00 02
Set the playback position to the beginning of the previous track.

80 01
Set the playback position to the beginning of the next track.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.2 Disc Commands

A.3.2.1 Get Disc Title  Retrieve the title of the disc.
A.3.2.2 Get Disc Flags  Retrieving the disc flags.
A.3.2.3 Get Disc Capacity  Retrieve disc size and available space.
A.3.2.4 Set Disc Title  Set the title of a disc.
A.3.2.5 Get Track Count  Retrieve the number of tracks on the disc.
A.3.2.6 Erase Disc  Turn a disc into a blank disc.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.2.1 Get Disc Title

Request
00 18 08 10 18 01 01 00

<00 18 06> <02: 20 18 01 00 $w, 30 00 0a 00> ff 00 00 00 00 00

[<00 18 06> <02: 20 18 01 00 $w, 30 00 0a 00> ff 00 $r $r $g $g ...]

00 18 08 10 18 01 00 00

Reply
09 18 08 10 18 01 01 00

<09 18 06> <02: 20 18 01 00 $w, 30 00 0a 00> 10 00 $l3 $l3 00 00 <$l2 $l2: 00 0a <$l $l: <data1>

[<09 18 06> <02: 20 18 01 00 $w, 30 00 0a 00> 10 00 $l4 $l4 $g $g <data2> ...]

09 18 08 10 18 01 00 00

This function returns the disc title. However, the full title might be up to 1793 bytes long, and not fit into a single reply. For this reason, you might have to request the whole title in chunks.

The initial reply contains the size of the first chunk of the additional data returned into $l3 $l3. The length of the whole title is returned in $l1 $l1 (while $l2 $l2 is usually $l1 $l1 plus 4 for the type tag 00 0a and title length parameter). <data1> is the title or the initial part of the title and $l3 l3 minus 6 bytes long. If the whole title could be returned at once, $l3 $l3 will be $l1 $l1 plus 6, and thus $l1 $l1 is also the length of <data1>.

If $l3 $l3 was shorter than $l1 $l1 plus 6, you will have to request the next part of the title with the second form of the command. This form takes two additional length parameters. $r $r indicates the number of bytes you still have to read, while $g $g indicates the number of bytes you have just read. Here is an example: In the reply, $l4 $l4 will be changed to the length of the <data2> returned (if this is not $r $r, you have to iterate over this command until you got all bytes of the title).

The title is 01 15 bytes long. In the first reply, $l1 $l1 will be 01 15, $l2 $l2 will be 01 17, while $l3 $l3 might only be 00 d8. In this case, only 00 d8 minus 6, that is 00 d2 bytes of the title are returned in <data>. The next request is done with $r $r being 01 15 minus 00 d2, that is 00 43, and $g $g being 00 d2. The remaining 00 43 bytes of the title will be returned in <data2>.

If $w is 00, the normal disc title is returned. If $w is 01, the wchar title is returned. Both titles are independant strings.

Note: It is unknown how you can detect if the player works with the normal titles and when it works with the wchar titles.

Note: It is unknown what the embracing commands mean.

FIXME: The encoding of characters should be added in a section of its own.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.2.2 Get Disc Flags

Request
<00 18 08> 10 10 00 01 00

<00 18 06> <01: 10 10 00> ff 00 00 01 00 0b

<00 18 08> 10 10 00 00 00

Reply
<09 18 08> 10 10 00 01 00

<09 18 06> <01: 10 10 00> ff 00 00 01 00 0b $f

<09 18 08> 10 10 00 00 00

This function returns the disc flags in $f, which is a bit-wise OR of the following values:

10
The disc is a writable medium. This is not true for pressed, pre-recorded mini discs.

40
The write protection flag is activated.

Note: If no disc is inserted, 40 is returned.

Note: We don't know what the embracing commands mean.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.2.3 Get Disc Capacity

Request
<00 18 08> 10 10 00 01 00

<00 18 06> <02: 10 10 01, 30 80 03 00> ff 00 00 00 00 00

<00 18 08> 10 10 00 00 00

Reply
<09 18 08> 10 10 00 01 00

<09 18 06> <02: 10 10 01, 30 80 03 00> 10 00 00 1d 00 00 <00 1b: 80 03 <00 17: 80 00 <00 05: $h1 $h1 $m1 $s1 $f1> <00 05: $h2 $h2 $m2 $s2 $f2> <00 05: $h3 $h3 $m3 $s3 $f3>>>

<09 18 08> 10 10 00 00 00

This function returns the capacity of the disc, the recorded time and the time left that is available for recording. The times returned are in BCD format. The first time is the time used. It is the actual time of music available for playback, and does already consider the bitrate of each title.

The second time is the total disc capacity if it were recorded in the format that is given by the current recording parameters (see Get Recording Parameters below).

The third time is the available disc size left for recording, if it were recorded in the format that is given by the current recording parameters.

Note: We don't know what the embracing commands mean.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.2.4 Set Disc Title

Request
<00 18 07> <02: 20 18 01 00 $w, 30 00 0a 00> 50 00 $l $l 00 00 $o $o <data>

Request
<09 18 07> <02: 20 18 01 00 $w, 30 00 0a 00> 50 00 $l $l 00 00 $o $o

This function sets the disc title to <data>. $o is the length of the old disc title, $l is the length of the new disc title <data>. If $w is 00, the normal title is set, if it is 01 the wchar title is set.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.2.5 Get Track Count

Reques
<00 18 08> 10 10 01 01 00

<00 18 06> <02: 10 10 01, 30 00 10 00> ff 00 00 00 00 00

<00 18 08> 10 10 01 00 00

Reply
<09 18 08> 10 10 01 01 00

<09 18 06> <02: 10 10 01, 30 00 10 00> 10 00 00 08 00 00 <00 06: 00 10 <00 02: $c $c>>

<09 18 08> 10 10 01 00 00

This function returns the number of tracks on the disc in $c.

Note: We don't know what the embracing commands mean.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.2.6 Erase Disc

Request
<00 18 40> ff 00 00

Reply
<09 18 40> 00 00 00

This function erases all content of the mini disc. The result is a blank disc.

Note: This command does not look out for protected tracks and will just erase the disk unconditionally.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.3 Track Commands

A.3.3.1 Get Track Title  Retrieve the title of a track.
A.3.3.2 Get Track Protection  Retrieve the protection status of a track.
A.3.3.3 Get Track Length  Retrieve the length of a track.
A.3.3.4 Get Track Encoding  Retrieve the encoding of a track.
A.3.3.5 Set Track Title  Set the title of a track.
A.3.3.6 Erase Track  Erase a track.
A.3.3.7 Move Track  Move a track to a different position.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.3.1 Get Track Title

Request
<00 18 06> <02: 20 18 $w $t $t 30 00 0a 00> ff 00 00 00 00 00

Reply
<09 18 06> <02: 20 18 $w $t $t 30 00 0a 00> 10 00 $l3 $l3 00 00 <$l2 $l2: 00 0a <$l $l: <data>

This function returns the title of track $t $t in <data>. The length of the title is $l ($l2 is $l + 4, $l3 is $l + 6, although $l3 seems to overflow at 00 d8). If $w is 02, the normal track title is returned. If $w is 03, the wchar title is returned. Both titles are independant strings.

Note: It is unknown how you can detect if the player works with the normal titles and when it works with the wchar titles.

FIXME: The encoding of characters should be added in a section of its own.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.3.2 Get Track Protection

Request
<00 18 06> <01: 20 10 01 $t $t> ff 00 00 01 00 08

Reply
<00 18 06> <01: 20 10 01 $t $t> ff 00 00 01 00 08 $p

This function returns the protection status for track $t $t in $p. If the track is protected, $p is 03, otherwise it is 00.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.3.3 Get Track Length

Request
<00 18 06> <02: 20 10 01 $t $t, 30 00 01 00> ff 00 00 00 00 00

Reply
<09 18 06> <02: 20 10 01 $t $t, 30 00 01 00> 10 00 00 0c 00 00 <00 0a: 00 01 <00 06: 00 00 $h $m $s $f>>

This function returns the length of the track $t $t in $h $m $s $f. The time returned is in BCD format and constitutes the total playing time of the track.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.3.4 Get Track Encoding

Request
<00 18 06> <02: 20 10 01 00 $t, 30 80 07 00> ff 00 00 00 00 00

Reply
<09 18 06> <02: 20 10 01 00 $t, 30 80 07 00> 10 00 00 0a 00 00 <00 08: 80 07 <00 04: 01 10 $u $v>>

This function returns information about the encoding of the track $t in $u $v (see Data Types, Encodings).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.3.5 Set Track Title

Request
<00 18 07> <02: 20 18 $w $t $t, 30 00 0a 00> 50 00 $l $l 00 00 $o $o <data>

Request
<09 18 07> <02: 20 18 $w $t $t, 30 00 0a 00> 50 00 $l $l 00 00 $o $o

This function sets the title of track $t $t to <data>. $o $o is the length of the old track title, $l $l is the length of the new track title <data>. If $w is 02, the normal title is set, if it is 03 the wchar title is set.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.3.6 Erase Track

Request
<00 18 40> ff 01 00 <20 10 01 $t $t>

Reply
<09 18 40> 10 01 00 <20 10 01 $t $t>

This function erases the track $t $t. The following tracks are renumbered by subtracting 1 from the track number.

The protection status is ignored when erasing a track with this command.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.3.3.7 Move Track

Request
<00 18 43> ff 00 00 <20 10 01 00 $s $s> <20 10 01 $d $d>

Reply
<09 18 43> 00 00 00 <20 10 01 00 $s $s> <20 10 01 $d $d>

This function moves the track $s $s to the position $d $d. Track $d and all following tracks are renumbered to make space for the new track $d by adding 1 to the track number.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Marcus Brinkmann on January, 20 2003 using texi2html