Table of Contents
Foobar 2000
☞ 2021 Note: I'm finally moving to Quod Libet. Got sick of relying on Wine, sick of bad support for not-Latin alphabets, sick of it being not open-source, sick of some not-standard ways it handles metadata … I'm sure I'll miss some features though
I've written a little bit about the process of transitioning to different software below: §Switching Away From Foobar
Foobar 2000 is my favourite Music Player, even after switching to Linux, which is a bit of a pain, because it's Windows-only. Running it in Wine means you miss out on being able to use it to sync with stuff via USB, but that's no longer necessary for me anyway. Still, I mostly just use it when I boot into Windows 7 I finally have a nice Wine setup. Fonts have continued to be the biggest pain. The foobar2000 in the AUR was a help!
☞ Okay so I just accidentally deleted some playlists because Ctrl+w
is set to just delete playlists without any confirmation. Weird key choice I have now disabled!
Linux
Like I say in the intro, there's no Linux version, so here're some tips to get it running under Arch Linux with Wine:
- Use the AUR package: foobar2000. A default Wine prefix will hog resources a bit and may lag, so if you want to skip the AUR package you'll have to learn a bit about prefixes, or use something like playonlinux maybe?
- Font troubles: Make sure you have the fonts you need installed in Wine. The tricky thing is that I can't just run it in say the JP locale, because I have music from different places that use different character sets. I know noto-fonts-cjk, and noto-fonts-cjk-otf didn't help. Nor did installing the Takao font with WineCFG, but selecting the option that installs a bunch of CJK fonts seems to work‽ For Arabic font installing Tahoma works.
See: wine#fonts, Wine#Fonts.- Still, I've never had luck getting fonts to work for Arabic, Japanese, Khmer, Amharic … to all work at once. Wine's supposed to handle fallback properly, but maybe (probably) Foobar's doing its own weird thing.
- Sound troubles: Make sure you have libraries installed for the sound stuff: Pulse (lib32-alsa-lib, lib32-alsa-plugins) and ALSA (lib32-libpulse) / JACK (?).
See: Wine#Sound.
Mobile
※ I now have a different phone, so just stream the music from my NAS. I'll leave this stuff here in case it helps people though!
Foobar 2000 Mobile is still very much a work-in-progress, but I find it does what I want. I haven't actually looked into any other music players for my Android phone, yet.
I first tried using the One Way Sync component to get my music on there, but have since been using good ol' rsync. I have a big enough SD card to hold all my music, so I just use Rsync to keep it the same asd what's on my computer.
Playlists can be easily export from Foobar by just right clicking a playlist and selecting 'Save All As' to spit them all out as .M3U8 files (otherwise non-Roman characters get mucked) to a folder. Then using either a bash script or text editor to fix the strings so they point to where my music files are on my phone.
The only little tricky thing is accessing the music location via
/run/user/$UID/gvfs/mtp*
and running Rsync command from there, instead of via the mounted phone shortcut that appears in my file browser. The Rsync command I use is:
rsync --verbose --progress --omit-dir-times --no-perms --recursive --inplace --ignore-existing --delete-after --exclude='*.txt' /mnt/shared/Music/ ./
Gleaned from: https://askubuntu.com/questions/343502/how-to-rsync-to-android
Components
Columns UI
This is one of Foobar's best features. It enables really detailed UI customisation. This is what allows you to put panels where you want, and put whatever you want in those panels, basically.
Masstagger and Tag Box
Good utilities for tagging files in batches, including the ability to auto-assign tags based on file-name. Both do the same job indifferent ways.
One Way Sync
One Way Sync is pretty straight forward, but was a little intimidating and not well explained when I first looked at its settings. There are three pages of settings from
File > One Way Sync > Configure
Components > Tools …
(click images to open full-size)
One Way Sync
'Encoder Settings' is just the commands that are passed along when a file needs to be converted from a format like FLAC to MP3. I don't really need this, so just left it as-is, apart from changing the location of lame.exe (the default is in the Foobar folder). Sometimes in these kinds of fields I had trouble editing existing options, so I'd have to copy and paste the info into a new field. You can have multiple, which one is used is setup on another page.
I also uncheck 'Create subfolder for each task, which was making a new folder with a new set of files for each playlist. I prefer to have all the music in one place and have all the playlists point to there.
One Way Sync > Devices
The 'Destination Devices and Folders' should automatically list you hardware. I had to rename my phone to 'Android', because spaces or brackets or something were stopping music getting copied over.
The 'To Android' in the pulldown is the name of my preset. You have two different kinds you can save, one for 'Devices' and one for 'Tasks'. Multiple 'Tasks' ones can be included within the 'Devices' ones. The 'Devices' ones (IE 'To Android') are what you select to start coping stuff over, so give 'em a useful name!
I unchecked 'Covert lossless files', becaues I don't think I have any. You can also set it to convert stuff like OGG if your player doesn't handle them. The 'lame' in the pulldown is referencing the settigns from the first page.
You'll also want to check 'Linux Compatible playlists' if you're sending things to Android. I think everything else is default.
One Way Sync > Tasks
I changed the 'Titleformatting Scripts' a little. The default stuck things in an extra folder called 'files', and I've been using %album artist% instead of %album%, because that's how I roll. This syntax is the same as elsewhere in Foobar.
I think the rest probably makes sense‽
Playlist Revive
Handy thing for when you move files around or want to setup on a different computer or disk structure. Puts a menu item in edit
which will go through a playlist and fix broken links. So if say the playlist thinks a file is at C:\Music\…
but it's now at /mnt/music/…
and it's in your media library Playlist Revive will find it and fix the link for you :)
Utilities
Something I find useful for it's ability to easily move things to/from/between playlists.
You access the features through the right-click menu, under 'Legacy Commands'.
Auto Playlists
You can do some neat things with this feature, but I've barely touched it. The most useful thing I use them for is automatically generating a playlist of the newest things I've added to Foobar.
Creating autoplaylists is a bit unintuitive (I wrote this section because I just had to look it up again). You:
- First have to make your query via either
Library > Album List
orLibrary > Search
. - Enter your query (see 'Examples' and 'Syntax' sections)
- From
Album List
you make the search by right clicking on the results, fromSearch
You click on the…
button. From both of these you can select the 'Create Autoplaylist' option.
Syntax
Syntax used for things such as autoplaylists, autotagging.
Examples
Newest
- Requires Playback Statistics.
Query Pattern | %added% DURING LAST 4 WEEKS |
---|---|
Sort Pattern | SORT DESCENDING BY [%added%] |
This will take a while to work. Depending on the value you use to define 'new'. In my example it will take four weeks till it starts working, because it only counts from when you add the component was installed. Still!, a handy way to keep track of new stuff.
Untagged
Query Pattern | %genre% MISSING |
---|---|
Sort Pattern | if2(%album artist%,<no artist>)[ / %album%] |
Checks for empty tags (in this case genre) so you can fix them up when needed. Sorted by album / artist.
Unlistened
Query Pattern | %play_count% MISSING |
---|---|
Sort Pattern |
Sorta a combination of what's used above, this one lists things you haven't listened to yet.
Useful Tidbits
- You can create multiple screen layouts, and then define hotkeys to switch to them! For example I have one for organising my music, one for listening, and one for listening in a small window. 1)
Exporting files for the 3DS
For me, the easiest way to get music ready for putting on a Nintendo 3DS is to export it from playlists to their own directories.
In Foobar:
- Right click on a playlist.
- In that menu go
Contents > File Operations > Copy to
- If you save your 'Copy to' preset you can do
… > Copy to > [preset name]
. You will still get a prompt and opportunity to change things before it runs.
- Select a 'Destination folder'
- Select a 'Filename pattern'. There's an easy-to-use dialogue, so you don't have to memorise the syntax.
- I like
%list_index% - %title%
, which names the files with the number they are in the playlist and the track name. - Can't seem to find any syntax for adding the name of the playlist, so it can stick it in a subdir with that name :( You'll have to do this manually, either in your file manager, or when you export.
- Uncheck the box 'Copy entire source folder content'.
- Click 'Run'!
Fonts
In preferences:
Display > Columns UI > Colors and Fonts
Display > Default User Interface > Colors and Fonts
Switching Away From Foobar
- The first step was identifying what I wanted out of the software, test as many programs as I could, and work out what formats and stuff I needed. I've been transferring my notes over to: music_player§notes. Ended up deciding on Quod Libet as the main software I want to use for organising and playing music on my computer, and running an MPD server to make it easy to play music elsewhere in the house (though mostly I just play records tbh).
- Next I went and tidied up my library, using Foobar's built-in in file management tools to move and rename all my music. I wanted to do this in FB so that links in playlists would be in tact. Took advantage of Picard a few times to get tags on some stuff with shitty metadata.
- After exporting playlists as
.m3u8
files (that I then renamed.m3u
for MPD's sake) I found out that the links weren't in tact, but I'll fix that later.
- Use Ex Falso (it comes with of Quod Libet) to fix some tags. FB will combine multiple tag entries into one instance of the tag instead of the more standard way of using separate instances of the tag. So FB does
<genre>Pop;Live;Australian</genre>
, whereas<genre>Pop</genre> <genre>Live</genre> <genre>Australian</genre>
is the standard way. With Ex Falso you can easily split a tag. - …
Troubleshooting
Invalid parameter. (0x80070057)
If you get the error 'foobar 2000 Unrecoverable playback error: Invalid parameter. (0x80070057)' when trying to play files and you're running Foobar through Wine make sure you have the 32-bit audio stuff installed. In Arch Linux's case lib32-libpulse and lib32-libpulse. See §Linux.