foobar2000 Nostalgie

Begonnen von grimes, 20. Juli 2010, 10:43:33

Vorheriges Thema - Nächstes Thema


Setzt euch in die Zeitmaschine...

foobar2000 v0.586 (15. März 2003)

- fixed problems with adding files from commandline
- option to disable WM_APPCOMMAND stuff (multimedia keyboards etc)
- fixed unicode in rar reader
- Case added bitrate display for wavpack files


Süüüß. :)

Ich kann aber noch drunter. Das älteste, was ich anzubieten habe, ist 0.3.5.a - kein changelog verfügbar ;):


Hier kommt:

changelog v0.31 bis v0.586

- fixed problems with adding files from commandline
- option to disable WM_APPCOMMAND stuff (multimedia keyboards etc)
- fixed unicode in rar reader
- Case added bitrate display for wavpack files
0.58c [hotfix]:
- fixed more problems with restoring main window position
0.58b [hotfix]:
- fixed problem with $if2()
- fixed problem with remembering window position
- note: remembering minimized state of main window now needs "remember window position" enabled
- fixed problem with error handling in inputs
- fixed problem with window resizing
- more title formatting functions - $directory(), $greater(), $longer(), $progress(), $select()
- fixed UTF-8 in $strchr and some others
- console component for outputting error/info/warning messages
- new config page with list of components
- new interfaces in SDK for console and components page
- updated SSRC resampler
- added WM_APPCOMMAND handlers, thanks for danbee for sending me #defines from latest windows headers
- "open directory" rightclick
- cleanedup playback menu
- %_time_elapsed% / %_time_remaining% in title formatting
- completely redesigned status bar, now supports right-aligned text and colors
- fixed glitch with sorting by path and multiple playlist entries in one file
- workedaround libflac bug with freeze when seeking past end of file
- major changes in title formatting (some weird [] sections containing functions will be broken, beware), see title formatting help for info on new features
- new title formatting config page
- "-" prefix on remaining time
- fixed problem with "reload info from file" in infobox
- added handlers for mouse4/mouse5 buttons
- some new options in albumlist
0.56b [hotfix]:
- fixed crash with $upper()/$lower() on empty string
- fixed autoreplaygain
0.56a [hotfix]:
- fixed minor glitch with cleartype in playlist
- fixed glitch with new systray features
- fixed glitch in keyboard shortcuts config page
- workedaround bloody WM_ENDSESSION handling problem, settings etc should now get saved on windows shutdown
- tweaked response to clicking on empty playlist area
- some changes in directsound output prebuffering logic
- improved system tray functionality
- fixed problems with URLs containing '?' character confusing function extracting file extension from file path
- changed "follow cursor" behavior
- changes in albumlist component, now uses titleformatting for hierarchy
- workedaround problems with certain shortcut keys
- seeking keys are now customizable
- added "write id3v1 only" for mp3
- mpc tag updater kills id3v2 tags now
- vorbis tag updater kills id3v2 tags now
- mp3 tag updater optionally kills id3v2 tags now
- id3v2 death ist know me now
- more intelligent responses to doubleclicking status bar
- "restrict filenames when adding directory" option
- fixed some problems with directsound output
- "reload info" button in infobox
- new "STFU plugin" for all yuor seekbar needs
- fixed major akrip bug with cd speed limiting
- fixed more akrip bugs, cdda input now uses native NT SCSI calls on NT systems
- removed history hacks, prev/next just move around playlist, new "play random" command
- improved dithering, no longer affects playback of lossless formats when output bit depth matches input bit depth
- "stop playlist on file error" option, disabling it replaces bad files with 1 second of silence
- diskwriter can now use replaygain
- added shortcut for "add location"
- improved CDDA input: no longer gives errors when performing multiple operations on the same drive, simple config, can now parse .cda files
- improved tone input, now supports tone://<freq>,<duration>
- silence "input", silence://<duration>
- hopefully fixed some ugly behaviors of equalizer
- fixed (?) weird vorbis comment updating bug (?) - wtf, it never happened on my machine, and when it was reported it turned out that current build wasn't doing it for other people anyway. bleh.
0.51a [hotfix]:
- fixed common ugly behaviors of new cdda input
- fixed glitch in "remove dead entries" command
- added option to send 32bit floats directly to output
- fixed crash when wavpack files fail to open correctly
- fixed playlist display glitch with italic fonts
- added prototype CDDA input, based on akrip source
- some internal cleanups
- bumped API version number, old components no longer load
- %_isplaying% in title formatting (only playlist)
- database callbacks in API
- file:// stuff is no longer visible in %_path% and most of user interface (%_path_raw% returns "full" url)
- database page in config
- removed "allow multiple instances" option to prevent tards from enabling it then wondering why it does what it says
- changed some behaviors of playlist search
- replaygain info editor
- "show/hide main window" shortcut command
- some tweaks in keyboard shortcut config UI
- modeless file info box
- copy command in playlist - goodbye IRC spam plugins
- fixed various junk related to sort-by-path operations and rar/zip files
- album list component
- fixed some problems with KS output
- fixed minor glitch in wav input
- option to disable dithering, now possible to get bit-identical output from lossless formats
- "show file info" shortcut, some improvements in file info box code
- WavPack input
- fixed glitch with clipping and 24bit output
- diskwriter
- improved masstagger, can now mass-rename (without breaking database/playlist)
- added 8bit output option. got sbpro ?
- some technical changes in the way title formatting works (for shoutcast mostly)
- moved limiter and volume control to DSP
- improved startup speed with big database file
- workedaround repainting glitch with moving other windows above foobar2000 main window (actully microsoft's bug with BeginPaint()/EndPaint() validating wrong region with slow repainting operations)
- some other playlist/database-related speedups
- output error messages
- ability to use album field to separate albums when scanning replaygain
- reworked the way "remember window position" works
- new components config page
- fixed some rare mpglib death
- updated to flac 1.1.0
- updated title formatting manual
- tracked down weird cpu usage problem with ks output
- right-aligned track times are now a part of playlist formatting (use tab to separate)
- can apply current playlist font to playlist search listbox
- fixed relative path handling in playlist loaders
- tone input
- added option to use replaygain peak info (ugly, doesn't know current preamp/volume info, makes sense only if you dont use preamp/volume/dsp)
- fixed even more mpglib death, figured some fuct mp3s made with old gogo
- got tired of libflac msvc project problems, moved the POS to separate dll
- playlist total time display
- speed hacks in stricmp_utf8
- fixed some problems with certain http urls
- added playlist search limit
- added simple DSP to play stereo on rear channels
- new async http/ftp reader, no longer causes ui to freeze
- improved handling of multiple instances (you can launch separate instance from different path)
- now has crc checks
- added 32bit output option
- more speed / memory usage tweaks in playlist / database
- %_filename%, %_path% and %_subsong% in title formatting. %filepath%/%filename% goes away.
- increased garbage tolerance in mp3 resync code from 128k to 1meg
- added mastagger component
- added kernel streaming output (NT only)
- rewritten keyboard shortcut stuff, components can now add their own shortcut actions
- .pls playlists now handled correctly
- strcmp/stricmp in title formatting - usage: "$if($strcmp(%__bitrate%,128),bleh,blah)"
- improved "remove dead entries" command
- major changes in mpglib
- improved playlist search
0.41b [hotfix]:
- tracked down another bloody static variable in mpglib, replaygain-scanning-while-playing should be less broken now
- some memory usage tweaks in database
- Case fixed flac tag updater (broke with 0.4)
0.41a [hotfix]:
- fixed id3v2 tag skipping with mpc (was broken in 0.41)
- some tweaks/cleanups in user interface
- moved title formatting config page to display category
- reduced mem usage with huge playlists
- made it possible to totally disable database / metadata processing
- added helper class for performing short seek back operations on unseekable sources, mp3 streaming now works
- fixed some bugs in mpc file info reading introduced in 0.4
- bumped api version number, pre-0.4 components no longer load
- replaced playlist listbox with hand-coded window class
- "remove duplicates" no longer applies sort to playlist
- fixed dll unloading safety with playlist_entry pointers returned by components (use playlist_entry_creator)
- added simple api interfaces for modifying / querying playlist
- fixed titleformatting help not showing with custom sorting dialog
- new hackfix for window-remaining-visible-on-win9x, confirmed working this time
- added vorbis_vendor to tech infos
- added resuming playback after restart
- major changes in file reader stuff
- nuked database format again (new way of storing file paths)
- simple internet file reader (foo_read_inet.dll), nonseekable, supports http/https/ftp, works only with vorbis and mpc so far
- some changes in directsound output to prevent "repeating" when input lags
- config window no longer blocks main window
- dsound.dll now loaded on demand, so foo_output_std.dll loads if theres no dsound.dll present (got win95a ?)
- cleaned up metadb interface in sdk
- %_playlist_number% and %_length_seconds% in titleformatting
0.39a [hotfix]:
- fixed problem with temp files being left by vorbis tag updating
- fixed some minor ui glitches
- changed "previous" command behavior when history is empty
- added "mpc_encoder" to tech infos (need to reload info from files to take full effect)
- id3v1 tag writer for mp3 (optional), added config page for standard inputs
- added OS detection, directsound is default on NT5+ (win2k/xp), waveout everywhere else
- added /? commandline switch
- changed function used for comparing strings in playlist sorting, international stuff should sort correctly now.
- customizable playlist colors, ascii color codes in playlist title formatting
- more separate title formatting options
- new title formatting help window
- "add directory" remembers last added directory
- fixed some random mpglib death with broken mp3s
- kode54 fixed id666 tag handling in spc input
- fixed some problems with previous button
- added "buttons" to menu
- various changes in tag writing/reading
- "previous" button.
- Case added FLAC metadata writing
- new commandline switches: /stop /play /next /prev /playpause /pause /hide /show
- component banlist
0.36b [hotfix]:
- removed replace windowproc flame from 0.36
- fixed missing file (initquit.cpp) in sdk
0.36a [hotfix]:
- fixed problems with WAV files (and possibly other cases where there are multiple inputs that support same file extension)
- contextmenu services. finally. phew.
- hackfixed win9x "window remaining visible bug"
- fixed weird behaviors with clicking below last playlist entry
- improved playlist loading speed
- "legal" interfaces for controlling playback and stuff
- fixed more utf8 problems in title formatting
0.35a [hotfix]:
- fixed broken stricmp_utf8 from 0.35
- various misc fixes
- apev2 tags are removed if there are no fields to write
- made numbers in playlist optional
0.34b [hotfix]:
- fixed apev1 tag reading
0.34a [hotfix]:
- fixed broken scrolling in 0.34
- added some tricks to prevent autosorting playlists being added
- fixed pause with waveout
- fixed various "standard" windows shortcut keys (eg. alt+space)
- major changes in the SDK, converted UCS16 to UTF8 everywhere (database eats less memory now), broken database compatibility with previous versions; prepare for international characters not working in random places (report if you find any)
- added id3v2 skipping to mp3 input (thanks to Case)
- added "play/pause" command to keyboard shortcuts
- fixed various minor glitches
- fixed systray in win9x
- made systray icons configurable
- changed some things in playlist loading logic (you no longer can refer to playlist inside a playlist, not a bug)
- fixed main window going to the end of z-order in certain conditions
0.32a [hotfix]:
- fixed replaygain scanner being activated when it shouldn't
- fixed weirdness with stop-after-current
- fixed problem with database saving and multiple fields of the same name
- cleanedup waveOut (no longer creates threads)
- "remove replaygain info" command
- added "reset stop-after-current when stopping" switch
- added "start playback on startup" switch
- dropping items into playlist inserts to drop point instead of adding (can be disabled with "old drag&drop behavior" option)
- converted page list box in preferences to tree control
- made it possible to add new outputs via component interface
- volume control is now processed in core by default, scaling floatingpoint data before sending to output, does much nicer job avoiding clipping (at cost of slight lag); you can still use directsound volume control
- added waveOut output (NT4 should be happy now)
- made waveOut default
- moved outputs away from main exe
- moved standard DSPs away from main exe
- configurable output buffer sizes
- added separate win9x executables (may or may not work)
- added playlist entry numbers in playlist
- cleanedup SDK
- adding big amounts of files no longer freezes UI
- fixed some crashes in playlist loading
- improved speed of some playlist operations
- fixed crash with starting playback from commandline
- fixed stop-after-current
0.31c [hotfix]:
- mpc profile in tech infos (needs nuking database / re-reading infos from files to work)
- fixed writing RG tags with pre-sv7 mpc
- added peak scan to replaygain scan
- fixed repeat mode
0.31b [hotfix]:
- fixed replaygain scan with mono input (thanks dev0)
- fixed %tracknumber% with cue
- added option to skip tracks already having replaygain_track_gain when scanning replaygain in track mode
0.31a [hotfix]:
- core preferences page fixed (thanks Benny.X)
- replaygain scan in track mode now stores info immediately so aborting it doesn't lose results acquired so far
- added replaygain scanner (both rightclick menu and in background while playing)
- moved replaygain processing away from inputs
- made replaygain configurable
- hard limiter is now optional
- added tagz-scripted bitrate display
- added volume slider to preferences window
- converted mpglib to C++ and fixed various problems in it (now fully multiinstance-safe)
- added apev2 tag writer for SPC format (so replaygain info gets stored)
- note: you can't replaygain-scan SPC files while playing SPC, SPC input isn't multiinstance-safe yet
- fixed various minor problems





foobar2000 v0.667 (31. Mai 2003)

- fixed issue with playlist repainting and tabbed columns with different colors, introduced in 0.666
- corrected bitrate calculation in monkeyaudio input
- added %__codec% for monkeyaudio files
- moved replaygain scanner into separate dll, now opensource
- added handling of double-width characters in title formatting (needs to be enabled on display page in preferences)
- improved speed of advanced limiter DSP
- added "copy" and "edit" buttons in file info box
- fixed minor issue with playlist string cache not being erased when minimizing in certain conditions
- removed replaygain-scan-while-playing
- fixed some playlist repainting glitches
- due to extreme abuse, preamp DSP is no longer included in compiled form
- moved dithering config to playback page
- added debug info about metadb_handle leaks when shutting down
- workedaround glitch with multiple "open file" dialogs being open through systray
- fixed "add directory" with network drives
- improved diskwriter progress display
- track info display updates are now properly sync'd with output lag, no more track info displayed ahead of actual sound
- improved handling of invalid data in apev2 tags
- improved albumlist speed
- added ABX component
- corrected FLAC seeking glitch
- separate win9x/winnt versions of diskwriter (for proper display of file names)
- CD burning component (uses Nero libraries)
- added reading length from MP3 files with VBRI headers
- fixed database issues with "readonly" mode
- improved performance with really huge playlists (tested with ~800k entries)
- state of "show all formats" in playback settings is no longer saved between instances (read warning message to see why)
- option not to reset DSP between tracks in diskwriter
- fixed issues with directory names ending with dots in masstagger
0.62a [hotfix]:
- fixed clipping error messages flooding console
- removed useless flat dither mode
- some user interface tweaks in equalizer, thanks to Garf
- full file buffering option in diskwriter (for decoding speed tests)
- fixed system tray not being updated when currently played file is edited
- clipping is now reported through console (one-time, needs playback to be restarted to trigger again)
- added progress bars in masstagger
- changed handling of corrupted ogg streams (will display error message and try to play them instead of refusing to open)
- added option to prevent any tag writing operations in database settings
0.61a [hotfix]:
- corrected user interface glitch with incorrect dithering method names
- some more user-friendly explanations in preferences
- one-time warning when trying to run win9x build under winnt
- made %_ispaused% work in playlist
- dithering now uses noise shaping, thanks to Garf
- apparently there's no single thing intel compiler can do right, msvc6 build of foo_dsp_extra.dll is included again
- fixed handling of double-wchar character codes for unicode characters above 0xFFFF
- changing playback thread priority now takes immediate effect
- added %__codec% for WAV files
- added some n00b faq in metadb_handle.h to prevent idiots from using APIs in the wrong way
- replaygain scanner attempts to resample files with unsupported sample rates (requires resampler DSP installed)
- added "split multiple artist tags" in masstagger
- updated voc input
- bumped component version, pre-0.6 components no longer load
- fixed time-display-on-seek-while-paused
- added new statusbar options
- improved speed of database operations
- redesigned database, default config no longer permanently stores info, you need to configure it to get albumlist stuff to work
- added new DSP helper classes in SDK
- added reset button on titleformatting page, resets only one of strings
- improved diskwriter & replaygain, they no longer block main window
- added $rgb(), $progress2(), $transition()
- added new playlist format (.fpl)
- fixed rare crash with querying for currently selected file
- added configurable file info reading logic
- "restrict added files" now affects more actions
- ported dithering routines from SSRC with tweaked parameters; dithered output is no longer bit-identical to source lossless format
- added one-time reminder in foo_out_ks
- added file type recognition based on mime
- switched internal data format from 32bit floatingpoint to 64bit floatingpoint
- VBR extrainfo on MP3 files is back, more reliable now
- changed API for archiver support, now much nicer to work with, shared code handles boring tasks such as file path parsing
- added user profile support
- new mp3 seeking code, slower but sample-exact
- added full file buffering option
- increased size of preferences window
- positions of playlist search and file info box are now remembered if "remember window position" is enabled
- added "sort only selection" in playlist
- moved diskwriter to a separate dll
- added command to reset total playback time counter
- following Xiph's recommendations, Ogg files containing garbage at the beginning no longer play
- vorbis streaming should now update title on track change
- updated Vorbis decoder to latest CVS
- various config options now use dropdown lists
- reverted to old "remove duplicates" code, faster with big playlists
- made infobox font configurable
- %_ispaused%, $rand()
- added startup console messages about dlls that failed to load
- metadb_handle technology ™
- reduced playlist memory usage (uses metadb_handle instead of storing file paths)
- improved speed of various playlist-related operations
- added VOC input, thanks to kode54
- more resampler options (older machines dont like new 64bit resampling)
- foo_dsp_extra now compiled with ICL7.1 (meh, it doesn't make any difference on my new XP2200+)
- fixed some problems with cue input
- more %__codec% fields with various formats
- user-friendly KS output device names, thanks to kode54
- added playback thread priority control


Die Anfänge von foobar2000 bevor es überhaupt da war. Der Fileinfo-Dialog von Peter Pawlowskis Ogg-Decoder für Winamp 2.91 (2001 - 2002):

Kommt Euch da was bekannt vor? ;)

Bild reaktiviert - grimes


So sah das Default User Interface (DUI) früher foobar2000-Versionen aus:

Classic User Interface (dargestellt in foobar2000 1.3.1)

Im Vergleich dazu, heutzutage sieht das User Interface so aus:

Default User Interface (DUI)

Screenshot 2023-04-27 093425.png

Default User Interface (DUI), Dark Mode

Columns User Interface (CUI)


Evolution des foobar2000-Logos:


Woher kommt der Name foobar2000?

Die beiden Wörter foo und bar werden in der Informationstechnik als Platzhalter für Variablen und Funktionen verwendet.

#include <stdio.h>

int main()
   char *foo = "foobar";
   char *bar = "2000";
   fprintf(stdout, "%s %s\n", foo, bar);

   return 0;

C++-Code (foobar2000 ist in C++ programmiert)

2000 bezieht sich auf die Jahreszahl.


Ich habe gerade meinen Rechner aufgeräumt, daher:

Die meisten Betas und RCs   8)

Man könnte ja denken, der Sprung auf 1.0 sei mit einer großen Anzahl an Betas vor sich gegangen. Aber nein, er kam für uns alle fast schon überraschend. Die größte Umstellung war wohl die von 0.8 auf 0.9 - und die ging einher mit der bis heute unerreichten Zahl von 14  Beta-Versionen und dann noch zwei so genannten "Release Candidates", bevor die finale Version erschien. Das war das letzte mal, dass es "Release Candidates" überhaupt gab, beim Sprung von 0.6 auf 0.7 fanden sich derer noch ganze 16 bei nur 9 Betas. (Alle Angaben ohne Gewähr)


Entwicklung der Größe des foobar2000 Installers:

  • 0.7: 0.95MB 23.09.2003
  • 0.8: 1.17MB 26.02.2004
  • 0.9: 1.54MB 19.03.2006
  • 1.0: 2.99MB 10.01.2010
  • 1.3: 3.57MB 31.12.2013
  • 1.6.2: 4.58MB 22.10.2020
  • 2.0: 5.76MB 27.04.2023

Sehr viel Programmcode ist in der 0.9er Reihe dazugekommen. Gefühlt hat diese Phase ewig gedauert und es wurde heftig spekuliert, wann endlich 1.0 erscheint. 2.0 hatte 35 beta Versionen.