Revision [744]
This is an old revision of IDfile made by AdminUser on 2015-04-18 10:27:36.
Configuration File sections
Table of Contents
Purpose of configuration files
A configuration file contains the instructions to sync your foobar2000 stuff to ONE target. Therefore it is a good idea to store a configuration file in the root folder of the target it belongs to.Using Comments in configuration files
Lines that begin with an Apostrophe are ignored. So you can put comments in your files. Also any line that does not start with a sectionname followed by equal-sign is ignored.' This line is just a comment Because this line does not begin with a sectionname it is ignored to.
Configuration File Sections
Below explanations each contain a table with following information:
Header | meaning |
---|---|
Name | is the section name in a configuration file. It is always followed by '=' (equal-sign) and it ends with the end of the line. |
optional | means that you may omit the section. Best to do this is to place an Apostrophe right before it. |
array | tells you if this section name can be used multible times. Best example is the section SyncRules, which defines the rules (plural!) for your synchronization. |
items | tells the number of arguments, seperated by the seperator (below). |
sperator | is used to seperate the arguements. Most times it is an asterisk ('*') but space and comma are also used. |
status | should always be 'ok'. Maybe future functionallity or issues are signed here. |
MediaName
Simply gives your target a name that is shown at some places.Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
MediaName | yes | no | 1 | none | ok |
MediaName=Mom's 60 GB Ipod with Rockbox-Player |
MaxItemsOnTarget
If your target is limited to a maximum number of items it can manage you can use this to give a warning if the maximum is exceeded. If the anaylisis is finished and there would be more than MaxItemsOnTarget on the target, you will be promptet to continue. If there is no maximum just enter 0 or comment that line.Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
MaxItemsOnTarget | yes | no | 1 | none | ok |
MaxItemsOnTarget=1000 |
ReserveFreeSpace
You may want to reserve a given amount of free space on the target for other stuff then audio. You can do so by useing ReserveFreeSpace. When the anaylisis is finished and the estimation would cause less free space after sync, you will be prompted to continue.Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
ReserveFreeSpace | yes | no | 1 | none | new, ok |
'simply specify the amount of space in MB that should be preserved. ReserveFreeSpace=1000 |
MLsyncFlag
is used to identify the items in your Medialibrary, that will be synced to a target. As you can see MLsyncFlag is a foobar2000 query syntax, which is explained here.Normaly you will use one tag (e.g. SYNCTAG) in foobar2000 in combination with Tagger Panel Component, to select the Medialibrary-items, you like to have on a target easily.Below example will sync all audio-files from your MediaLibrary which have 'Ipod_Mom' in the tag 'SYNCTAG' or which have a rating of 4 or above.
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
MLsyncFlag | no | no | 1 | none | ok |
MLsyncFlag=("%SYNCTAG%" HAS "Ipod_Mom") OR ("%RATING%" GREATER 3) |
PLRegExExclude
By default any playlist in your foobar2000 will get sychronized to your target (if you specified option 'P' in parameter 'Tasks' - see command line parameters. This section gives you the chance to exclude playlists.Each playlist in your foobar2000 will be checked against the comma-seperated list of RegExp search-patterns. Please note that the script will add an asterix in front of and at the end of every playlist name. Therefore the below example will exclude any playlist, that starts with '#' and any playlist which contains 'SQL'. It will exclude playlist 'Rock' but will not exclude 'Good Rock'.
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
PLRegExExclude | yes | no | 1 | <comma> | ok |
PLRegExExclude=\*#,SQL,\*UPnP,\*Rock,\*tmp |
PLRegExInclude
This section gives you the chance to include playlists. This is done after PLRegExExclude. Each playlist in your foobar2000 will be checked against this comma-seperated list of RegExp search-patterns. Please note that the script will add an asterix in front of and at the end of every playlist name; same as above with PLRegExExclude.Useful scenario: Exclude all playlists with PLRegExExclude and choose only specific playlists to sync with PLRegExInclude.
Below example will include playlist 'Rock', even it it was excluded before by matching a RegExp search of section PLRegExExclude.
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
PLRegExInclude | yes | no | 1 | <comma> | ok |
PLRegExInclude=\*Rock\* |
MLSyncBaseDir
Is the base path, starting at the root-folder of your target, where the audio files from your Medialibrary will be synced to (defined by MLsyncFlag).BE AWARE THAT NO OTHER FILES OR FOLDERS ARE IN HERE! THEY WILL GET DELETED!!
Below example means 'G:\_AudioML' if your target is a drive with letter 'G:'.
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
MLSyncBaseDir | no | no | 1 | none | ok |
MLSyncBaseDir=_AudioML |
PLSyncBaseDir
Is the base path, starting at the root-folder of your target, where the audio files from your playlists will be synced to. Can be the same as MLSyncBaseDir but for technical reasons you then have to sync Medialibrary and playlists at once.BE AWARE THAT NO OTHER FILES OR FOLDERS ARE IN HERE! THEY WILL GET DELETED!!
Below example means 'G:\_AudioPL' if your target is a drive with letter 'G:'.
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
PLSyncBaseDir | no | no | 1 | none | ok |
PLSyncBaseDir=_AudioPL |
MLSyncTargetDir
Defines the structure for files and folders for files which are synced from your Medialibrary to your target.Every array-item of MLSyncTargetDir creates a folder - except the last item, which defines the filename. Formatting is done by useing Foobars TitleFormat-Language. Don't forget to add .$ext(%path%) to the last item!
Below example may generate following path: ....\Mainstream\! Disco\ArtistXY - AlbumZ\02.01. Title1AtDisc2.MP3
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
MLSyncTargetDir | no | yes | 1 | none | ok |
[! $meta(genre,1)]\Test funktioniert? Beim %Title% wird \ entfernt??
MLSyncTargetDir=$replace($meta(genre,0),'Pop','Mainstream') MLSyncTargetDir=[! $meta(genre,0)] MLSyncTargetDir=[! $meta(genre,1)] MLSyncTargetDir=[! $meta(genre,2)] MLSyncTargetDir=[! $meta(genre,3)] MLSyncTargetDir=$if($strcmp($meta(Album Artist),'Various'),'_'%album%,%artist% - %album%) MLSyncTargetDir=[$num(%discnumber%,2).][$num(%tracknumber%,2). ]$if($strcmp($meta(Album Artist),'Various'),[%track artist% - ]%title%,%title%).$ext(%path%) |
PlaylistDir
Tells FoobarSync where your playlist-files (*.m3u) are stored on the target.Take care! All m3u-files in this folder will get deleted and afterwards rebuilt, even if you specify 't' in the command line parameter 'task' !!
'\' means root folder.
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
PlaylistDir | no | no | 1 | none | ok |
PlaylistDir=Playlists |
PlayListFormat
Defines the format of your playlist-files (m3u).0 = simple format (default, paths only)
1 = extendet format (definition here)
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
PlayListFormat | yes | no | 1 | none | ok}} |
PlayListFormat=0 |
PLSyncTargetDir
Defines the structure for files and folders for files which are synced from your Playlists to your target.Every array-item of PLSyncTargetDir stands for a folder except for the last item, which defines the filename. Formatting is done by useing Foobars TitleFormat-Language. Don't forget to add and .$ext(%path%) to the last item!
Below example may generate following path: \PLSyncBaseDir\Mainstream\! Disco\ArtistXY - AlbumZ\02.01. Title1AtDisc2.MP3
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
PLSyncTargetDir | no | yes | 1 | none | ok |
PLSyncTargetDir=[%Genre% - ][%if2(%track artist%,%artist%) - ][%title% - ][%album% - ][$num(%discnumber%,2).][$num(%tracknumber%,3)].$ext(%path%) |
PLregExRepl
Gives you the power to do one or more search&replace operations with the file-paths inside your m3u-files on the target. Again, a RegEx expression is used for this job.If your target device is based on Android or Linux, you MUST convert the Windows-like paths to Linux/Unix-conform paths before your target can play any playlist. Example below shows how to do so: First it replaces tmpfolder\external_sd with \storage\sdcard1\synced and then replaces all '\' with '/'. As result, a file path could look like this: /storage/sdcard1/synced/Pop/an title.mp3
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
PLregExRepl | yes | yes | 2 | * | ok |
' \\ because it's a regular expression ! PLregExRepl=tmpfolder\\external_sd*\storage\sdcard1\synced PLregExRepl=\\*/ |
ReplaceChrs
Does a case insensitive search&replace for one or more sets of characters in the destination paths of your audio-files on the target. Useful if e.g. your car audio does not support special charcaters like german umlauts.Replacement is done before WhiteListChrs-filtering happens. As you can see it is possible to replace single characters with words ('$' -> 'Dollar'). But because the seperator is the space character you can not replace space or use space in the replacement.
Below example replaces umlauts ä, Ä, ö, Ö, ü and Ü with '#' and '$ ' with 'Dollar'.
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
ReplaceChrs | yes | yes | 2 | <space> | ok |
ReplaceChrs=äöü # ReplaceChrs=$ Dollar |
WhiteListChrs
Contains all allowed characters for the paths on your target as RegExp expression. So any file/folder will get filtred and all characters which are not listed here will be omited.Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
WhiteListChrs | no | yes | 1 | none | ok |
WhiteListChrs=[A-Z 0-9-+#@.=!_ÖÄÜßöaöäü(){}&§$\[\]]+ |
SyncRules
Any source item (Medialibrary or playlist item) is matched against the rules to decide if it should be copied or converted (and which format). Rules cover items format, codec details and bitrate but also any TitleFormat-Expression can be used.See detailed documentation here: SyncRules
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
SyncRules | no | yes | 3 | none | ok |
'Tracker Formats SyncRules=IT*0*ignore SyncRules=MOD*0*copy SyncRules=669*0*copy SyncRules=XM*0*copy SyncRules=S3M*0*copy ' anything else SyncRules=*<115*copy SyncRules=*>115*VORBIS_96 |
MaxFFMPEGThreads
Defines how many parallel encoding tasks are allowed.Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
MaxFFMPEGThreads | yes | no | 1 | none | ok |
MaxFFMPEGThreads=3 |
ConvertFormats
contain the instructions for the formats you wish to use on your target.See extra documentation here: ConvertFormats
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
ConvertFormats | no | yes | 4-5 | * | ok |
' DEFAULT ConvertFormats=Vorbis_Q2*OGG*-vn -c:a libvorbis -ac 2 -ab 96k*96*_q2 ' MP3 ConvertFormats=MP3_256*MP3*-vn -ac 2 -ab 256k*256 |
preCMD
Invokes a command line before analysis is started.Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
preCMD | yes | yes | 1 | none | not jet implemented! |
preCMD=attrib "%1\%2\*.*" -h%*%& |
Parameter | meaning |
---|---|
%1 | will be replaced by the driveletter of your target, for example 'G:' |
%2 | will be replaced by MLSyncBaseDir of your target, for example 'G:' |
%3 | will be replaced by PLSyncBaseDir of your target, for example 'G:' |
%4 | will be replaced by PlayListDir of your target, for example 'G:' |
%* | will make FoobarSync tell to hide the cmd-window |
%& | will tell FoobarSync tell to not wait for completion of the command |
postCMD
Invokes a command line at the end of synchronization.Parameters are the same as preCMD.
Name | optional | array | items | sperator | status |
---|---|---|---|---|---|
preCMD | yes | yes | 1 | none | not jet implemented! |
- This page belongs to category ConfigurationFiles
- Check out the other Pages, that belong to the wiki-category Documentation !
- Ask and discuss at the FoobarSync discussion thread on Hydrogenaudio Forums