====== Foobar 2000 ====== o-> **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|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: -s-[[#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 [[aur>foobar2000]] in the AUR was a help! o-> **Okay so I just accidentally deleted some [[playlists|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: [[aur>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 [[arch>noto-fonts-cjk]], and [[aur>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]], [[archw>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 ([[arch>lib32-alsa-lib]], [[arch>lib32-alsa-plugins]]) and ALSA ([[arch>lib32-libpulse]]) / JACK (?).\\ See: [[archw>Wine#Sound]]. ===== Mobile ===== nbjp 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 [[https://www.foobar2000.org/components/view/foo_ows|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. * [[github>reupen/columns_ui]] ==== 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 === {{ media:image:foobar_ows.png?200}} '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 === {{ media:image:foobar_ows_devices.png?200}} 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 === {{ media:image:foobar_ows_tasks.png?200}} 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//. [[http://wiki.hydrogenaud.io/index.php?title=Foobar2000:Title_Formatting_Reference|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 :) * [[https://hydrogenaud.io/index.php/topic,73910.0.html|foo_playlist_revive ]] ==== 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'. * [[http://foosion.foobar2000.org/components/?id=utils|Utilities (foo_utils) 0.6.2 beta 6]] ===== 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'' or ''Library > Search''. - Enter your query (see 'Examples' and 'Syntax' sections) - From ''Album List'' you make the search by right clicking on the results, from ''Search'' 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. * http://wiki.hydrogenaud.io/index.php?title=Foobar2000:Query_syntax * http://wiki.hydrogenaud.io/index.php?title=Foobar2000:Title_Formatting_Reference * http://www.tinkafoo.com/log/foobar/titleformat_help.html ==== Examples ==== === Newest === * //Requires [[https://www.foobar2000.org/components/view/foo_playcount|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%,)[ / %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. FIXME((Add screeshots)) ==== 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 [[playlists|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|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|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 ''Pop;Live;Australian'', whereas ''Pop Live Australian'' 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 [[arch>lib32-libpulse]] and [[arch>lib32-libpulse]]. See [[#Linux|§Linux]]. {{tag>fixes guide software audio}}