PM123 uses a special notation to store playing positions. These strings are used at
A location string defines an exact point inside a playlist or song. In case of playlists it is an entire call stack. A call stack in genera consists of several parts separated by ';' or new-line (if the new-line character is allowed). URLs in the parts may be enclosed with double quotes (") to avoid confusion with special characters.
ormy_nested_playlist.lst my_favorite_song.mp3[2] 3:44
my_nested_playlist.lst;"my_favorite_song.mp3"[2];3:44
The first part navigates to the first occurrence of the file my_nested_playlist.lst in the current playlist.
The second part navigates to the second occurrence of my_favorite_song.mp3
in my_nested_playlist.lst.
It is enclosed with quotes. In this case this is optional because the
relative URL contains neither a semicolon nor square brackets at the
end.
The last part navigates to the offset 3:44 within my_favorite_song.mp3.
Notes:my_playlist.lst +- my_favorite_song.mp3 (1) +- another_song.mp3 +- my_nested_playlist.lst +- my_favorite_song.mp3 (2) +- my_playlist.lst (3) +- another_song.mp3 +- my_favorite_song.mp3 Offset: 3:44 +- song_#3.mp3 +- my_favorite_song.mp3 +- song_#4.mp3 +- another_nested playlist.lst
All the following location strings also navigate to the same location as above.
[3] [4] 3:44
The above utilizes the index navigation. If you omit the URL in a part all items within the particular playlist count. Note that this includes items that are skipped because they would create a recursion as in note 3. However, it is an error to address this item.
*"my_favorite_song.mp3"[3] 3:44
The flat navigation is identified by the leading asterisk. Flat navigation means that all all non-recursive songs in the nested playlists are taken as one linear playlist. Within this context it is the third instance of my_favorite_song.mp3. Therefore the index [3].
my_nested_playlist.lst[-1] my_favorite_song[2] -1:34*my_favorite_song[-2] -1:34
Using negative numbers you may do reverse navigation at some parts which may be applied to playlists as well as to songs. It is assumed that my_favorite_song.mp3 has a length of 5:18 in this case. Reverse navigation may be combined with flat navigation as shown in the second example.
*21:06
Flat time navigation can be used to navigate within all songs of a playlist based on the total playing time. Assuming that another_song.mp3 has a length of 3:23 the total time index of our playing location is 21:06.
To locate a playlist item use one of the following syntax variants:
It is an error to
If relative navigation is used remember that the current location is always a song. So you need at least one '..;' to get to the deep most playlist.
It is valid to specify offsets larger the one minute as seconds and so on.
Using a sufficient number of fractional digits it is possible to address locations with an accuracy of one sample.
However, some decoder plug-ins may bend it.