Help us keep the list up to date and submit new video software here.

Software Home »

Complete Version history / Release notes / Changelog / What's New for fmedia

"+" - new feature
"*" - change, update or a small improvement
"-" - bugfix
"!" - broken compatibility

fmedia v1.29.1 - Sep 26, 2022

* GUI: "Analyze & Show PCM Info" supports .cue tracks
+ GUI/Windows: Record dialog: "Enable Dynamic Audio Normalizer" setting
- GUI/Windows: Record dialog: audio format settings didn't work
* GUI/Windows: save/restore the settings for Record & Convert dialogs
- GUI/Windows: couldn't set an empty setting value in Record & Convert dialogs
- GUI/Windows: Convert: seeking on .mp3 didn't work (v1.28 bug)
- core: user config settings from fmedia-user.conf didn't work (v1.25.3beta bug)
* "--until" now works with radio stream sources
- .aac read: fix crash

fmedia v1.29 - Sep 5, 2022

+ new "fmedia.conf" settings:
+ "remove_if_unknown_format":
Auto-remove playlist item if the file format is not supported
+ "remove_if_no_source":
Auto-remove playlist item if source doesn't exist
* --random: logically split playlist into 2 chunks for better UXP
(now the next song is likely further from the current one in playlist)
- HTTP: couldn't play some radio streams
(previously we relied at least on "Connection:close")
- "--mix" didn't work
- .flac read: couldn't complete seek request in some cases
- .ogg --stream-copy: fix incorrect positioning
- .ogg/.opus write: corrupted data (v1.28 bug)
(some packets were being skipped)
- GUI: fix Next/Prev on inactive playlist

fmedia v1.28 - Jun 20, 2022

+ TUI: new commands:
E: Remove "dead" items from playlist
L: Save current playlist to the system's temporary directory
r: "Choose random track" setting: on/off
x: Remove the track from playlist and play next track
* UI: react faster to seek requests
* GUI: use separate language files
+ GUI: Italian language
- GUI: "List->Read Meta Tags" didn't work
* Windows: minimum required version is now Vista
* .mp3 --stream-copy: improve seeking accuracy
* .cue: support for all containers (except .avi and .caf)

fmedia v1.27.4 - Jun 5, 2022

* support "--include/--exclude" when creating playlist from directory
- .avi(AAC, PCM), .mkv(MP3) read didn't work
- .ogg read: some packets could be skipped
- .ogg(Opus, Vorbis) write: correct output data and granule position for the first packets
* .ogg(FLAC): support seeking
* .caf(PCM) read: faster processing
- FLAC decode: fix crash after seek on bad .flac files

fmedia v1.27.3 - May 15, 2022

* playback: faster audio device open (reuse) on track switch
with Next/Previous commands for ALSA, PulseAudio, WASAPI
* support playback with '--dynanorm'
- ALSA playback: some data could be skipped when seeking or starting next track
* PulseAudio: don't hang after broken connection with server
- PulseAudio playback: fix crash after Stop/Next/Previous commands
- mp3 seek didn't work sometimes
- mp3 with --stream-copy: fix; enable ".mp3 --stream-copy --meta=..."
- vorbis playback: skipped some data for network stream input
- playback with --random: playback could be incorrectly stopped by "too many consecutive errors" protection
- recording: try to open audio device with the user-specified format
(--format/--rate/--channels options) and apply audio conversion only if it fails
* GUI/GTK: Explorer tab: add and play only 1 selected file on double-click

fmedia v1.27.2 - Apr 20, 2022

- .cue read: fix
- mp3 read: couldn't parse Xing tag sometimes
- mp3 decode: fix audio glitches after seek
- mp3 with --stream-copy: improve accuracy
*! disable ".mp3 --stream-copy --meta=..."

fmedia v1.27.1 - Apr 2, 2022

- fix crash on file conversion

fmedia v1.27 - Mar 31, 2022

+ '--edit-tags': Add/Modify file's meta tags in-place
Supported formats and tags: .mp3(ID3v2+ID3v1)
fmedia --edit-tags --meta='artist=ARTIST;title=TITLE' ./file.mp3

+ '--meta-from-filename=TEMPLATE': Specify template for auto-tagging from input file name
Example how to set artist, track number and title meta tags from file name:
fmedia --edit-tags --meta-from-filename='$artist - $tracknumber. $title' './Cool Artist - 04. Best Song.mp3'

+ GUI/Linux: edit .mp3 tags via "File"->"Edit Meta Data"
+ GUI/Linux: "List"->"Scroll To Current"
* TUI: "delete file": move to Trash by default
New configuration setting: "tui.file_delete_method"
- Windows: fix wildcard input
- fix .mp3 format detection in files without ID3v2 tag
- MPEG/Layer3: fix audio glitches on seek

fmedia v1.26.1 - Mar 14, 2022

- fix complex filter chain use-cases such as "--start-dblevel/--stop-dblevel"
and possibly some other cases
- GUI/Linux: fix file drop

fmedia v1.26 - Mar 6, 2022

Includes all changes from v1.25beta

fmedia v1.25.3beta - Jan 28, 2022

- "-o @stdout.wav"
- core: "codepage" config option
- core: pcm channels conversion
- .mp3 encode: mono/interleaved source

fmedia v1.25.2beta - Dec 20, 2021

* GUI(Linux): parallel conversion; display the progress
*! Rename --out-copy=cmd -> --out-copy-cmd. A command-line switch with an optional value was a design mistake.

fmedia v1.25.1beta - Nov 28, 2021

* audio capture: don't delete the recorded file after audio device failure
* WASAPI playback: switch to new default device after the current device goes offline
* playlist: don't activate next track after audio device error
- audio playback: "--dev=N" didn't work when format conversion is necessary
- WASAPI capture: exclusive mode didn't work
- GUI(Linux): close subprocesses correctly
- Windows: finalize the file being recorded after Ctrl+C

fmedia v1.25beta - Nov 16, 2021

+ GUI(Linux): file explorer tab: explore files on disk directly from fmedia
and add files to playlist without drag-n-drop from file manager app
+ GUI(Linux): "gui.editor_path" conf option
* GUI: on exit, don't rewrite m3u playlist files unless necessary
- .ogg(FLAC): couldn't read some files
- .aac read: "--stream-copy -o .mp4" produced unreadable mp4 file

fmedia v1.24.1 - May 17, 2021

- capture stream didn't work with "--dev-capture=0 --dev-loopback=N"

fmedia v1.24 - Apr 11, 2021

+ .mkv: support Opus; support .webm; support seeking (slightly inaccurate)
+ .mkv(Opus) -> .ogg copy: "fmedia f.mkv -o f.ogg --stream-copy"
+ .cue: support .mp4/.mkv/.mp3
+ .avi: support "pcm" codec
+ GUI(Linux): "File->Delete From Disk": move to Trash by default
- .mkv: crash when reading tags
- Opus decode: fix "clicks" on tracks changing; accurate positioning

fmedia v1.23.1 - Mar 4, 2021

- .ogg read: fix (v1.23 bug)
- GUI (Linux): youtube downloader: save/restore settings for format and output directory

fmedia v1.23 - Feb 26, 2021

+ Windows: record from capture and loopback device in parallel into separate files:
"--record --dev-capture=N --dev-loopback=N -o rec$counter.wav"
+ GUI (Linux): Help->QuickCommand: dialog with all menu commands in one list
+ GUI (Linux): File->RenameFile: rename/move a file on disk
+ .caf read: support pcm-le data
* .mkv read: couldn't read some files
- .mp4 read/write: fix (v1.22 bug)
- GUI (Linux): Convert: didn't copy meta data from source
- core: --mix didn't work
- core: didn't work on old Windows (v1.19 bug)
- core: didn't truncate output files when '--overwrite' is used (v1.16 bug)

fmedia v1.22 - Jan 30, 2021

+ GUI (Linux): "Convert" dialog with editable conversion properties and hotkeys for marking Start/Stop position
+ GUI (Linux): window for log messages
+ .mp4 read: support .mov
+ detect input file format from file data

fmedia v1.21 - Dec 31, 2020

+ GUI (Linux): File->"Download from YouTube" (via /usr/bin/youtube-dl)
- core: --gain didn't work (v1.20 bug)

fmedia v1.20 - Oct 11, 2020

+ --auto-attenuate: Automatically reduce the volume of loud tracks
+ new --globcmd commands: next, pause, unpause
+ tui: ability to pause/unpause recording with 'Space' key
+ GUI: "Repeat: None/Track/All"
+ help.txt: Indonesian translation
- GUI-GTK: fix incorrect behaviour on Play/Pause event

fmedia v1.19 - Aug 30, 2020

+ Pulse: support recording
+ OSS: support recording
* --capture-buffer argument: all audio modules now support it
- "-o .ogg" command line didn't work (v1.13 bug)
- .m4a write: couldn't create file from source file with an invalid frame

fmedia v1.18 - Jul 5, 2020

+ Pulse: support 8-bit playback
+ help.txt: Spanish translation
* core: skip unknown modules in fmedia-user.conf
*, file.out: can use thread pool for asynchronous I/O
- --split: .mp3 output: corrupted first frame
- .raw: reading didn't work
- ID3v2 read: fix parsing frame data with 'unsync' flag
- .flac read: couldn't skip corrupted meta block
* use BSD 2-Clause License

fmedia v1.17 - Apr 30, 2020

+ GUI: remember the current active track and playlist scroll position
+ GUI (Linux): mark the currently playing track
+ --capture-buffer argument - Length (in msec) of the capture buffer (WASAPI, ALSA)
- Linux: don't use glibc 2.29

fmedia v1.16 - Mar 11, 2020

+ GUI: new command: List -> Read Meta Tags
+ GUI (Windows): "file_delete_method" configuration setting
+ queue: stop playback after many consecutive errors
* cue: support INDEX value with 'minutes' value 100 and higher
- GUI (Windows): invalid filename was added to playlist after recording (v1.11 bug)

fmedia v1.15 - Feb 4, 2020

+ Linux: support JACK capture
+ Linux: disable system sleep timer while playing
* Linux: automatically use ALSA output when Pulse isn't installed
e.g. "" is not found

* --listdev is more reliable
Show capture devices list even if playback devices list couldn't be shown

- .m4a write: .m4a(AAC) files created by fmedia couldn't be opened
by other players, e.g. VLC (v1.10 bug)
fmedia can read those files with no problems.

*! config: don't override "output" if it's already initialized
e.g. for this configuration:

output "pulse.out"
output "alsa.out"

Pulse (the first one) will be used.

fmedia v1.14 - Jan 7, 2020

+ .caf reader (AAC, ALAC) (no seeking)
+ @stdin: support seeking forward, which is required by several file formats
- GUI: Windows: "Sort: Random" didn't work

fmedia v1.13 - Nov 9, 2019

+ Create a playlist file (.m3u8) from directory
+ GUI: "Sort: Random"
+ GUI-GTK: support multiple tabs
- GUI-GTK: drag'n'drop didn't work in Ubuntu

fmedia v1.12.1
@stsaz stsaz released this Oct 12, 2019

+ help.txt: French translation

fmedia v1.12 - Sep 16, 2019

+ GUI: "Show Media Info": add file size, file date, audio info
- GUI: redraw items after tab switch for a large playlist
- GUI: "Show File in Explorer" didn't work if the entry was selected by "Selection Follows Cursor"
- GUI: crash on closing playlist (v1.2 bug)
* ID3v1 read: skip spaces at the end of tag fields
- --dynanorm: crash or error on stop command during playback
- core: fix crash or mono->stereo channel conversion (v1.11 bug)
* queue: play next track after read/decode error
+ file.stdout: add "buffer_size" config setting
- file input: random seek error (v1.9 bug)
- Linux: don't use glibc 2.29
* log: print input file name for error/info messages

fmedia v1.11

+ support multi-channel (5.1, 7.1) conversion
+ FLAC-OGG: read FLAC in OGG container (radio streams are also supported)
+ --split=TIME: Split audio by equal time intervals (.wav input only)
+ file output: new "$counter" variable for file name
* queue: playlist save: write to a file safely
- GUI: Linux: update UI on radio meta change
* Linux: don't use glibc 2.29 (fix binary compatibility with older OS)
- Windows: opening wildcard file names didn't work (v1.10 bug)

fmedia v1.10.1

- GUI: windows: convert: empty text in 'output' combobox (v1.10 bug)
- GUI: windows: convert: couldn't add files for conversion (v1.10 bug)
- GUI: linux: auto-apply volume for the next track
- queue: crash on parallel conversion (v1.3 bug)
- file: random crash (v1.9 bug)
- "--channels=left" didn't work (v0.34 bug)

fmedia v1.10 - Jul 9, 2019

+ GUI: restore list's column width on startup
+ GUI: Windows: convert.output is a dropdown list; restore on startup
+ GUI: Linux: "Convert" command (no custom settings)
+ GUI: Linux: "Show Media Info" command
+ GUI: Linux: support several settings from fmedia.conf (seek_step, seek_leap, autosave_playlists)
* GUI: Linux: multi-select "Open File" dialog
- GUI: Linux: drag-n-drop didn't work if a filename contained special characters
+ TUI: print information about video codec and resolution: .mp4 (H.264), .mkv (H.264, H.265)

+ --help: Added German translation
* queue: shrink memory usage of playback items by 70%
- Pulse, DirectSound: some audio data could be lost after playback is paused
- Pulse: playback could hang after track has finished

fmedia v1.9 - June 8, 2019

* GUI-GTK: show meta info in playlist properly
+ GUI-GTK: "Show File in Explorer"; more commands in Help menu

+ --help: translated some text into Russian
* net: support "audio/ogg" Content-Type
* TUI: Windows: determine terminal window width and adjust playbar
- direct-sound: fix --dev= and --dev-capture= arguments
- core: crash after decoder has failed to parse audio info
- Pulse: crash on --list-dev

fmedia v1.8 - May 1, 2019

* .aac read: Don't decode audio while seeking (almost instant seeking)
+ .aac write with --stream-copy from .aac source
+ GUI: Windows: "Show Favorites", "Add to Favorites", "Selection Follows Cursor" commands
+ GUI: Windows: Save/restore "Random" and "Selection Follows Cursor" checked state
+ GUI: Linux: New commands, save/restore window position

fmedia v1.7 - Apr 5, 2019

+ GUI: linux: a simple GUI based on GTK+v3
* linux: use Pulse Audio output by default
ALSA can't be used out-of-the-box on some linux distributions
where PA service prevents the device from opening by fmedia

fmedia v1.6 - Mar 17, 2019

+ set process exit code after a track is finished with an error
- crash on opening directory from disk (v1.5 bug)
- AAC decode: incorrect audio position of the first block (v0.30 bug)
- --dynanorm: crash on trying to use empty configuration (v1.1 bug)
- TUI: 'mute' setting was reset on track change

fmedia v1.5 - Feb 12, 2019

+ HLS client
+ .mp4: support --stream-copy
+ WASAPI: --list-dev: Mark default device
+ WASAPI: --list-dev: Print default format for shared mode
+ ICY: support UTF-8 meta
- Recording with --until produced a file with less audio length than expected

fmedia v1.4 - Jan 9, 2019

+ net.http: config: "proxy" - Connect via HTTP proxy server
+ GUI: Restore user-selected theme on startup
+ GUI: Playback -> "Select Audio Device" - Select playback audio device
+ GUI: Help -> "Edit GUI Themes..."
- GUI: Help -> "Edit User Settings": Set the correct path for portable mode
Set the path to application directory for this command if fmedia is
configured in portable mode.
+ Load "fmedia-user.conf" in portable mode
*! Moved "gui.gui.portable_conf" -> "core.portable_conf"
- ICY: Couldn't play radio streams with "Content-Type: audio/aac"
- file.out: Invalid characters in filename when using auto-naming (v0.22 bug)
If the value of $-variable ends with a space, then it might result in
corrupted output filename.

fmedia v1.3 - Dec 9, 2018

+ GUI: Parallel conversion (fmedia.conf::workers) (Windows only).
+ Parallel conversion from command line ('--parallel' switch) (Windows only)
- .m4a write: Couldn't convert from broken .mp3
- GUI: Conversion progress didn't update (v1.2 bug)
- .flac read: Unsynchronized output from .cue files (v1.0 bug)
Audio positioning could be incorrect for the tracks in .cue file.

fmedia v1.2 - Nov 17, 2018

+ GUI: support custom themes (theme.conf file)
+ GUI: 'File'->'Theme: Dark' - a simple dark theme
* GUI: instant playlist switching
- GUI: button text could be empty if no icon is set (FF v18.10 bug)

fmedia v1.1 - Oct 14, 2018

+ GUI: use icons on playback control buttons
+ GUI: load multiple playlists from previous session on startup
* GUI: faster playlists (show 1000 items 5x faster)
- GUI: 'Add URL' command didn't work for radio stream URLs (v0.23 bug)
+ GUI: 'List' -> 'Random' - Choose the next track randomly
+ --random - Choose the next track randomly
+ TUI: show track number
+ core: on-demand modules loading (all except UI)
Now the modules don't affect fmedia startup time.
+ core: "prevent_sleep" config setting - Don't allow the system to put
itself to sleep after some time of inactivity

fmedia v1.0 - Sep 10, 2018

+ macOS: CoreAudio playback & capture
+ delay modules loading (alac ape avi mkv mp4 mpc soxr wav wavpack)
+ --stop-dblevel=DB[;TIME][;MINTIME] - If MINTIME is specified,
stop only after MINTIME time has passed
- file: windows: reading from EOF position doesn't result in an error

fmedia v1.0 - Sep 10, 2018

+ macOS: CoreAudio playback & capture
+ delay modules loading (alac ape avi mkv mp4 mpc soxr wav wavpack)
+ --stop-dblevel=DB[;TIME][;MINTIME] - If MINTIME is specified,
stop only after MINTIME time has passed
- file: windows: reading from EOF position doesn't result in an error

fmedia v0.37 - Aug 5, 2018

+ --include='WILDCARD[;WILDCARD]' - Only include files matching a wildcard (case-insensitive)
+ --exclude='WILDCARD[;WILDCARD]' - Exclude files & directories matching a wildcard (case-insensitive)
+ --until=playback-end - Stop recording when the last playback track is finished
+ net.http: connect_timeout config setting
+ net.icy: support OGG stream
*! queue: start the next track in list after an error has occurred with the current track
+ queue: next_if_error config setting
- mixer: --mix didn't work
- .m4a write: support conversion from .mp3 (inaccurate audio length)

fmedia v0.36 - May 5, 2018

+ "--start-dblevel=DB" - Skip initial audio until input signal level goes above DB
+ "--stop-dblevel=DB[;TIME]" - Stop processing if input signal level goes below DB for TIME time
+ "--meta": support "@file:FILENAME" - Read meta from file
+ "--flist=FILE" - Read filenames from FILE
- "--flac-compression": named as "--flac-level" in help info (v0.16 bug)

+ GUI: File->"Analyze & Show PCM Info" command
- GUI: queue: the next track is played in the same playlist (v0.35 bug)
- GUI: List->Filter: segfault on use (v0.34 bug)
- TUI: recording: "max dB" value could be incorrect

+ .flac: write picture block (via --meta="picture=@file:FILENAME")
+ .cue: support REM in TRACK context
- PulseAudio: fix hanging

fmedia v0.35 - Apr 7, 2018

+ --prebuffer: Start recording by a command from user ('T' key),
saving the previously bufferred seconds of audio
+ gui convert: aac_bandwidth conf option
* gui convert: create/use just 1 playlist
* flac: support variable-length frame stream
- --seek, --until: time greater than 24h couldn't be used

fmedia v0.34.1 - Mar 14, 2018

- --dynanorm: couldn't be used with --record for short length recordings
- --dynanorm: couldn't be used with --format/--channels/--sample-rate

fmedia v0.34 - Mar 9, 2018

+ Dynamic Audio Normalizer filter (--dynanorm switch)
* gui: don't stop playback when starting conversion
- windows: --aac-profile didn't work
- .flac write: segfault on recording (v0.32 bug)

fmedia v0.33 - Feb 13, 2018

+ core: add --globcmd.pipe-name command line argument
(can easily start and control many instances in parallel)
+ wasapi: recording audio in loopback mode is now continuous
(record silence if nothing else is playing)
+ gui: new command: Help -> "Check for Updates"
- icy: --out-copy: segfault on exit

fmedia v0.32 - Jan 15, 2018

- winXP: fix startup (unsupported imported function in core.dll and unsupported GUI behaviour)
* --print-time: show more detailed info

fmedia v0.31 - Dec 10, 2017

+ ICY: save tracks from AAC radio stream into .m4a (with --stream-copy)

+ .aac reader: support --stream-copy to .mp4
- .mpc decode: an "AP" block could be skipped
- ICY: reset HTTP response headers on reconnect
* net: don't reconnect if server closed connection gracefully
- WASAPI: exclusive mode: hanging after starting the next track (v0.29 bug)
- TUI: apply volume on track change
* TUI: linux: remove separate thread for reading from stdin
* is loaded dynamically from mod/
all modules were moved to mod/

fmedia v0.30.2 - Nov 8, 2017

- core: Linux,FreeBSD: couldn't run fmedia executable from $PATH (v0.30 bug)
- ICY: corrupt data (MP3) or error (AAC) in some cases (v0.30 bug)

fmedia v0.30.1 - Nov 7, 2017

- core: Linux,FreeBSD: couldn't run fmedia executable from symlink (v0.30 bug)
- core: Linux: timer restart failed with an error "File exists" (v0.30 bug)

fmedia v0.30 - Nov 5, 2017

+ .aac (ADTS) file input (no seeking)
+ ICY: support shoutcast AAC streams

* AAC decode: detect real audio format (support implicit SBR, SBR+PS)
+ AAC encode: choose profile between AAC-LC, HE-AAC or HE-AACv2 (--aac-profile option)
* AAC,ALAC,APE: linux:,, don't depend on the system libstdc++
- .flac write: segfault on large meta (FF v16.08 bug)
- MPEG decode: data from .mkv was skipped (v0.29 bug)
- WASAPI: segfault or hanging when playing a network stream (v0.29 bug)
- ICY: don't start playing a network stream if its content type isn't supported
- ICY: reconnect to the original server after redirected request fails
- core: freebsd: file reading didn't work on some file systems
- core: segfault on several quick commands from TUI (v0.18 bug)

fmedia v0.29.2 - Sep 13, 2017

- wasapi.out: segfault after WASAPI sys error (v0.29 bug)
- net.icy: --out-copy: file-writing track didn't stop after reconnect
- net.icy: invalid data in buffers after reconnect
- .cue read: the last track was added as the first one (v0.28 bug)

fmedia v0.29.1 - Aug 19, 2017

- MPEG decode: invalid output frame after seeking (v0.29 bug)

fmedia v0.29 - Jul 31, 2017

+ support FreeBSD
+ OSS playback

* FLAC: split flac.encode module into flac.encode and flac.out
- .m3u parse: handle empty lines
- .pls parse: skip entries with empty URL
- MPEG decode: correct positioning
- .mp3: invalid bitrate value could be shown for some CBR streams

* WASAPI: using timer for shared mode playback/capture,
don't use event notifications (80% less kernel/userspace context switches)
* WASAPI: more audio formats can be used in exclusive mode
- WASAPI: exclusive mode capture: fix duplicate buffers output

+ TUI: add Mute command ('m')
+ net.icy: timeout network I/O operations

fmedia v0.28 - Jun 24, 2017

+ --out-copy=cmd: save currently playing track from Internet radio by command ('T')

* ALSA: don't use "plughw" unless necessary (try "hw" first)
- ALSA: show available devices for each soundcard
- ALSA: use the first available device by default (not hw:0,0)

- MPEG: .mp4 seek didn't work
- MPEG decode: accurate position reporting (delay)
* .mp4: report seek error
- .m3u,.pls: handle last lines without LF
+ net.icy: reconnect on I/O error
- net.icy: fix sending request after HTTP redirect

fmedia v0.27 - May 21, 2017

* .mp3: show correct bitrate for CBR streams
* .mp3: --meta works with --stream-copy
- .mp3: accurate total length for streams without Xing frame
- MPEG decode: accurate seeking and audio position (v0.23 bug)
- .m4a stream output didn't work reliably
- .opus output: "-o .opus" didn't work
* .ogg input: support Opus
- Vorbis,Opus: print the correct stream length in TUI when using --stream-copy
- Vorbis,Opus output: write correct AUDIO_TOTAL when --seek is used

- GUI: "Invert Selection" didn't work (v0.23 bug)

+ run in background (--background switch). Supports --globcmd.
* add --globcmd=quit
- --seek & --until didn't work (v0.26 bug)
* modules check for supported input data formats
* better caching of file buffers
Buffers at offset 0 and 64k aren't wasted after seeking to file end.
* net.icy: support --meta

fmedia v0.26 - Apr 20, 2017

* ALSA,Pulse,WASAPI: deferred initialization
- OGG Vorbis: fix playback of cut files
- .wav read: skip unneeded data at the end of "data" chunk
- ID3v2 parse: COMM: correctly handle short description
- net.icy: --out-copy: create output file for empty meta data

fmedia v0.25 - Mar 27, 2017

+ Linux: Pulse Audio playback
Must be enabled manually in fmedia.conf, because ALSA is used by default.
+ Musepack seeking

*! core: Windows: fmedia can run from %APPDATA%/fmedia directory
Rename optional configuration files:
fmedia-user.conf -> fmedia-ext.conf
%APPDATA%/fmedia/fmedia.conf -> %APPDATA%/fmedia/fmedia-user.conf

+ GUI: add Record -> "Select Audio Device" command
* GUI convert: add more codec settings
- plist.dir: fix segfault on auto-expanding sub-directories
- plist: fix segfault on parsing large .m3u/.pls files
- net.icy: "--out-copy" didn't work if server doesn't send ICY meta data
- net.icy: "--stream-copy" & "--out-copy" didn't work (v0.22 bug)

fmedia v0.24 - Feb 25, 2017

+ Musepack input (no seeking)

- MPEG: ID3v2 write: invalid COMM frame was generated
- core: --out=.EXT didn't work (v0.22 bug)
* complete build for i686

fmedia v0.23 - Jan 24, 2017

+ GUI: save/load current playlist on exit/start ("autosave_playlists" config setting)
+ MPEG stream copy: copy ID3 tags
* MPEG: use separate filters and mpeg.decode
* MPEG: ID3v2.3 parse: support extended header
* MPEG: ID3v2.4 parse: support 'data length indicator'
+ plist.dir: expand sub-directories
* core: move soxr convertor to a separate module
fmedia can run without any 3rd-party libraries. Remove all unneeded modules from fmedia.conf if you need a tiny package with core functions only.
* fmedia can be built for i686 CPU without 3rd-party libraries

fmedia v0.22 - Dec 25, 2016

+ WASAPI: support loopback mode (record from playback)
+ fmedia: add "--dev-loopback" argument
+ core: support reading from stdin (@stdin.EXT) (WAV) (synchronous)
+ core: support writing to stdout (--out=@stdout.EXT) (WAV, FLAC, OGG)
*! fmedia: --outdir argument was removed. Use --out instead.

+ GUI: new command "Filter" to search/filter tracks in playlist
+ GUI: global hotkeys can be assigned to fmedia commands ("global_hotkeys" setting in fmedia.conf)
+ GUI: show icon in tray while recording ("status_tray" config setting)
* GUI: record: support "Stop after" setting
* GUI: record: add "Capture Device Number" setting
* GUI: Open/Add modal dialog doesn't block main thread
- GUI: recording: correctly update GUI if recording was finished with an error

* WAV: support "data" chunk with unknown size
- WavPack: APE tags weren't recognized
- MPEG read: unknown ID3v2 tags were skipped
- MPEG read: segfault on unknown APE tag
- WASAPI playback: the first block of mono audio data was skipped

+ conf: support "include" keyword to include additional configuration files
User settings may be stored in fmedia-user.conf
- conf: when using a setting from user conf file, the module's other settings were reset to default (v0.17 bug)
- net.icy: 2nd opened track didn't work
- net.icy: "--out-copy": didn't recover from errors properly
- queue: meta data from file has higher priority than artist/title from .m3u
- queue: "Next" after "Clear" didn't work

fmedia v0.21 - Dec 11, 2016

+ GUI: add "To Next Playlist" command into popup menu
- GUI: "instance_mode clear_play" didn't work: playlist wasn't updated properly

- FLAC encode: the last block of data wasn't written (FF v16.08 bug)

* file output: support $year variable (album year)
* file output: $-vars: replace more bad characters; trim trailing whitespace
- queue: fix segfault on "Previous" command if track being played is inside inactive playlist
- fmedia: --track argument didn't work if multiple tracks are specified out of order

fmedia v0.20 - Dec 3, 2016

+ MKA/MKV input (no seeking)
+ AVI input (no seeking)
* MP4 read: support MPEG input
- MP4 read: fix AAC, ALAC seeking (v0.18 bug)
- MP4 write: the first entry in stsz or stco might be corrupted when writing in streaming mode
* ALAC decode: truncate last audio frame to match container's total audio length
- encoders: accurate total samples estimation when sample rate conversion is used
- OGG read: handle pages with granule position = -1
- MPEG read: fix inaccurate seeking

* GUI: add AAC quality setting for recording
- GUI: segfault on trying to open empty/corrupted file

- plist: CUE/M3U/PLS: filenames with spaces didn't work (v0.19 bug)

+ fmedia: add --globcmd argument for controlling fmedia running in another process
* file output: new variable $timems can be used while naming files
- core: fix filters chain mem leak
- core: segfault on stopping active track whose queue was cleared
- core: bad output for mono->stereo channel conversion (FF v16.08 bug)
- core: fix segfault on processing unknown $-variable when --record is used (v0.16 bug)
- core: arbitrary block of data could be skipped after a command is sent to core (v0.18 bug)

fmedia v0.19 - Nov 7, 2016

+ GUI: conf: add "minimize_to_tray", "portable_conf", "seek_step", "seek_leap" settings
+ GUI: add "Leap Forward", "Leap Back" commands
- GUI: seek to the beginning when requested to seek to <0 target sample
- GUI: play next track on inactive tab doesn't set main window caption
- GUI convert: channels and rate settings didn't work (v0.18 bug)
- GUI: "Quick Start" recording didn't work until window with recording settings is initialized (v0.16 bug)
- TUI: don't show playback bar of another track while recording

* MP4 write: support recording to MP4/AAC
- MP4 write: write "mdat" size in non-streaming mode
- Vorbis: support stream copy (v0.18 bug)
+ Opus: support stream copy
- Opus decode: fix segfault on Opus packet decoding error
- Opus decode: too much memory was allocated for decoding buffer
- OGG read: handle the last page with granule position = -1

+ plist: support .pls playlist input
- plist: M3U read: support URLs in playlist

- DirectSound: TUI wasn't updating on recording
* DirectSound: --until can be used together with --record

+ fmedia: add --conf command line argument
* core.rtpeak: support int24 and int32 for peak metering while recording
- core: Ctrl+C or Q command didn't stop recording properly (v0.17 bug)
- queue: recording while playing couldn't save output file properly in some cases

fmedia v0.18 - Oct 27, 2016

+ Opus decode/encode
*! OGG: "ogg-vorbis" module is split into "ogg" and "vorbis"
fmedia: rename "--ogg-quality" to "--vorbis.quality"
OGG stream copy is disabled in this version
- OGG read: couldn't parse the last page in small OGG files

+ GUI: add "Reset Volume" command
* TUI,GUI: print audio format (e.g. "int16" instead of "16 bit")
- TUI: print error when audio format isn't set

- fmedia: TUI commands didn't work while converting files in synchronous mode
- fmedia: conversion with --rate didn't work
* fmedia: support Windows XP
- core: fix potential segfault on exit
- core: queue: segfault on song end if its playlist was closed
- core: conf: fix segfault after trying to add module that doesn't exist (v0.17 bug)
- core: command line arguments didn't work with wildcard input files on Windows (v0.17 bug)
- core: encoding arguments didn't work with --record (v0.17 bug)

fmedia v0.17 - Oct 3, 2016

* GUI: move playlist menu items from File to List
* GUI convert: add "stream_copy" setting
- GUI: support DPI settings for listview columns width
- GUI: volume setting wasn't active on the first audio data (v0.16 bug)

* MP4 write: write bitrate value into esds box
+ MP4 write: write trackno/tracktotal
+ MP4/AAC write: preallocate output space
+ MPEG write: preallocate output space
- MPEG stream copy: fix double Xing tags
- MPEG read: fix invalid current sample number by accounting for encoder/decoder delays
- PCM int24, FLAC write: fix invalid negative 24-bit integer handling
- WAV read: fix bad PCM format parse from wave file with extended header (FF v16.08 bug)
+ ALSA out: add config setting "notify_rate"

- queue: fix segfault on stopping track whose playlist has been closed before
+ file read: "direct_io" config setting
* file write: preallocation size can grow as output file grows
* file write: delete file if an error has occurred in track chain
- core: module data could be initialized twice, resulting in mem leak and slower startup time

fmedia v0.16 - Aug 24, 2016

+ TUI: "pause" command
+ GUI: new window with recording settings
+ GUI: store recording settings in config
* GUI: preserve artist/title info on tab switching
* GUI: convert: add tracks into a new tab
* GUI: config: add convert.output setting
- GUI: fix potential segfault while initializing controls with invalid names

+ WAV input: support meta tags
+ MP4 output: support meta tags
* MP4 AAC output: support more input audio formats (not just int16) and non-interleaved input
* MP4 AAC: support AAC encoder delay and padding
- MP4 AAC: default setting for --aac-quality switch didn't work
+ MPEG: support stream copy without re-encoding
* MPEG decode: support VBRI tag
* FLAC output: support other input audio formats with dynamic conversion
* OGG decode: sample-accurate seek
- OGG decode: fix invalid audio position of the target page after seeking
- OGG encode: flush OGG page with 255 segments

+ net.icy: write audio data to a file while playing
- mixer: setting output format in config didn't work
+ fmedia: command line switches --format, --rate and --channels are used for both audio input and output
*! fmedia: rename --silent to --notui
+ fmedia: add --stream-copy, --out-copy command line switch
*! fmedia, WAV: --mono, --wav-format are removed. Use --channels and --format instead.
*! core: conf: "input module" directive doesn't accept audio format settings
Add "record_format" directive for this purpose
*! core: conf: audio format string has changed: e.g. 16le -> int16
* soundmod.conv: support immediate format conversion
* soundmod.conv: left/right mono conversion doesn't require additional processing
- soundmod.conv: conversion mono->stereo produced too quiet output
* WASAPI input: support format/channels conversion
+ file: support "$date" and "$time" variables

fmedia v0.15 - Jul 28, 2016

+ MP4 AAC output

* GUI: fmedia-gui.exe shows message dialog on startup error
+ GUI: read conversion settings from config
+ GUI: add "Go To" command
+ GUI: convert: new commands "Set Seek Position", "Set Until Position"

* OGG decode: support partial packets
* MPEG decode: skip parse errors and continue from the next frame
* MP4: more descriptive error messages
- MP4: esds: support larger AAC config data
- MP4: stsc: fix segfault on invalid data
- MP4: parser stopped on reaching empty box which is supposed to have children

- core: fix segfault when converting audio using --mono
* file: create path for output file

fmedia v0.14 - Jul 9, 2016

- GUI: fix more potential threads races
+ TUI: new command "Show Tags"
- MPEG decode: fix hanging on ID3v1 tag parsing after ID3v2 was not found (FF v16.05 bug)
- MPEG decode: last samples in file were not decoded (FF v16.05 bug)
- MPEG encode: ID3v2: fix adding "track number" and "total tracks" if padding is enabled (FF v16.04 bug)
- ID3v2: better handling of short description for a comment with UTF16 BOM
- FLAC, WavPack: seek to the beginning didn't work
- APE tag: fix input data offset if tag is small (FF v16.05 bug)
- OGG: no-decode mode: 2nd page wasn't returned (FF v16.03.31 bug)

fmedia v0.13 - May 26, 2016

+ ICY: support shoutcast input (MPEG)

+ GUI: new window "Add URL"
* GUI: "Copy Filename to Cipboard": support UTF-8
- GUI: dialog title string wasn't NULL-terminated
- GUI: fix segfault on using "Convert" command (v0.12 bug)
- GUI: convert: meta data from .cue file wasn't copied (v0.12 bug)
* GUI: convert: add "gain", "mono", "meta" settings

* WASAPI, ALSA capture: --until can be used together with --record

* FLAC: skip junk data (e.g. ID3v2) before FLAC header
* APE, WavPack: more effective APE tag parsing
+ MPEG decode: support APE tag
- MPEG decode: fix segfault when there are no first 2 complete consecutive MPEG frames in the first chunk of input data
- MPEG decode: compare the first 2 MPEG frame headers and skip the first frame if they don't match

* fmedia: "--meta=clear" skips transient meta tags
* fmedia: windows: support --key="value with space"

fmedia v0.12 - Apr 26, 2016

+ MP4: support AAC decoding

+ GUI: support multiple playlists
+ GUI: menu commands for editing config files
* GUI: much faster remove from queue
* GUI: save position of all windows on close
* GUI: preserve track position within queue when expanding directory/m3u/cue
* TUI: Windows: support seeking and volume change using arrows
* TUI: Linux: new config setting "echo_off"
- TUI: don't react on volume change or seeking while converting
- TUI, GUI: accurate bitrate value

* MPEG encode: ID3: support tag padding ("min_meta_size" config setting)
* MPEG decode: ID3: support null-terminated tag value
- FLAC decode: support int24 audio format
- FLAC encode: fix segfault on writing large meta
* MP4: support multi-track .mp4 files
* MP4: don't fail if box with the same name occurs more than once
* soxr: support non-interleaved output
* WASAPI capture: auto-detect supported audio format
* ALSA,WASAPI playback: support more audio formats, not just int16

* fmedia: windows: support wildcards when opening input files (without bash auto-expansion)
+ fmedia: windows: new commands to fmedia.exe: --install and --uninstall
* fmedia: new arguments --flac-compression, --rate
- rtpeak: real-time peaks didn't work while recording with ALSA
- queue: couldn't overwrite meta tags with --meta argument

fmedia v0.11 - Mar 30, 2016

* MPEG decode: use libmpg123 instead of libmad
* OGG, FLAC encode: support larger Vorbis comments

- OGG: seek didn't work on files with pages copied from another file
- OGG decode: "current sample" value for the first page was invalid
- GUI: tags info: support large text
- fmedia: --gui switch didn't work without input files
- core: --wav-format=float didn't work (v0.7 bug)
- file: fix segfault when using unknown $-variable with --out switch
- file: using $filename with --out switch didn't work for filenames without slash

fmedia v0.10 - Mar 15, 2016

+ OGG: support copying OGG stream without re-encoding
- OGG: seeking is more accurate (the target OGG page is located)

- FLAC,OGG,MPEG: the formats couldn't be used with --record
- MP4: get average file bitrate from MP4 if bitrate value in ALAC header isn't set
- MP4: ALAC: accurate seek to an audio sample
- ALAC: windows: libALAC-ff.dll doesn't require libstdc++-6.dll anymore (fmedia couldn't startup with mp4.decode module enabled)

* GUI: save text of output conversion file in fmedia.gui.conf
* GUI: remove "convert_*" config settings
- GUI: fix main window flicker on startup (v0.4 bug)

- fmedia: windows: Ctrl+C didn't work (v0.9 bug)

fmedia v0.9 - Feb 29, 2016

+ MP4 (ALAC) input
+ ALSA capture
+ MPEG encode: write ID3v1 and ID3v2 tags

+ TUI: show real-time PCM peak value in dB while recording
* TUI: "Stop", "Quit" commands can stop recording
+ GUI: save playlist to M3U file
+ GUI: add commands "Jump To Marker" and "Set Marker"
- GUI: main window position wasn't preserved on File->Exit command
- GUI: show the first fmedia instance after executing the second instance without input files
- GUI: "Play Mixed and Record" command didn't work
- GUI: record: stop all playing tracks before starting playback of new tracks
- GUI: issuing the second seek command to the same position didn't work (v0.8 bug)

- APE, WavPack: don't pass binary meta (e.g. cover picture)
- OGG: support padding in Vorbis comments
* Vorbis comments: support "TotalTracks"
- OGG: fix invalid audio position if page granulepos is not set
- MPEG decode: fix inaccurate bitrate value if there's a large ID3v2 tag present

* --pcm-peaks: print peak values as dB
- fmedia: linux: fix potential threads race when SIGIO event from ALSA device fd is received in TUI command processing thread
- fmedia: windows: Unicode input arguments were not supported
- ALSA, WASAPI: reset audio device after system error
- WASAPI, core: playback of mono audio didn't work in shared WASAPI mode
- queue: don't start playing the first track in queue after playback of the last track has failed with "unsupported format" error (v0.7 bug)

fmedia v0.8 - Jan 27, 2016

+ APE decode

+ fmedia-gui: support single instance mode
+ GUI: add playback control buttons
+ GUI: "Stop After Current" command
* GUI: show playback/total time info at the top
* GUI: add settings for audio conversion
- GUI: don't react to seek or volume changes while converting audio
- GUI: prevent hanging when too many seek requests are made
- GUI: 2 seek requests were made if Right key is pressed while seek trackbar is focused
- GUI: "convert" window: "..." button didn't work (v0.7 bug)

* TUI, GUI: reduce delay after seek request
- TUI, GUI: progress bar wasn't shown right after a track is started

+ OGG encode: new config option "page_size", "min_tag_size"
* OGG: "quality" config setting type is now "float"
* OGG encode: allocate disk space for the whole output file
- OGG encode: audio samples could be lost if input data is very small
- OGG: prevent hanging in case no eos page is found or unexpected data exists after eos page

+ CUE: support non-Unicode text
- CUE: use track PERFORMER value even if global PERFORMER value exists (v0.7 bug)

+ file.out: support $filepath and $filename variables for naming output file
+ core config settings can be stored in user config file
+ fmedia: new argument --mono: convert stereo to mono
* fmedia: new config option "codepage"
* MPEG.decode: "meta_codepage" option is removed, use global "codepage" config option
- TUI: fix FP exception when total_samples is 0
- queue: the next track is started after the current track has been removed
- ALSA: fix segfault on starting the next track
- core: fix segfault when invalid keyname is used in user config file
- near forward seek didn't work if target position is larger than buffer size (v0.4 bug)

fmedia v0.7 - Dec 24, 2015

+ TUI: support real-time user commands: "Play/Stop/Next/Previous", "Seek", "Volume", "Remove from playlist", "Delete file from disk"
* TUI: always print currently playing position (e.g. while recording)
+ GUI: show error messages in a separate window
* GUI: user settings file is now located in user directory, not application directory
- GUI: fix potential threads race when sending commands to a track

* FLAC, OGG, WavPack: faster "--info"

+ FLAC encode: support generating seek table, MD5 checksum
* FLAC encode: preallocate disk space for the whole output file
* FLAC decode: improved speed of seeking

* WavPack: improved speed of seeking
- WavPack: decoding might not work if APE tag is present
- WavPack: program could hang if a large APE tag is present

+ CUE: value for --track argument may contain a list of track numbers, not just one number
+ CUE: support one more option for --cue-gaps argument
* CUE: skip tracks with invalid duration (i.e. if from >= to)
* CUE: don't skip unknown meta tags
- CUE: fix potential errors with global CUE meta (those before "FILE" keyword)
- CUE: fix meta array memory leak

+ fmedia: new command-line arguments "--meta", "--tags", "--preserve-date"
- fmedia: "--until" command didn't work for a track in .cue file
* queue: don't remove track from queue on transient or system error unless the error is "unsupported format"
* queue: don't play next file if error occurred, unless --silent mode is active
* file: support user-specified meta tags while auto-naming output file (--out)
* fmedia: --outdir is "." by default
- core: Windows: user configuration settings didn't work

fmedia v0.6 - Oct 31, 2015

+ support Linux
+ ALSA playback

+ core: support per-user configuration settings
* queue: quit when Ctrl+C is pressed
* mpeg, ogg, flac: support "meta_tracktotal"
+ mpeg.decode: support configuration setting "meta_codepage" via fmedia.conf

* flac.encode: support PCM float input
- fmedia: don't hang if no input files were specified
- core: --list-dev command didn't work (v0.3 bug)
- flac, wavpack: meta info from .CUE file has a higher priority than meta from media file itself
- plist.m3u: absolute filenames inside M3U file were not supported
- conv-soxr: "pause" command from gui didn't work correctly
- wasapi: eliminate potential race during playback
-, fix segfault on starting sound capture (v0.5 bug)
- mixer: fix segfault when using mixer (v0.5 bug)

fmedia v0.5 - Sep 29, 2015

+ WavPack decode
+ MPEG encode
+ soundmod.soxr: convert PCM sample rate

* fmedia: --seek and --until accept variable length time string of format ""
* fmedia, core, wav.out: --pcm-format -> --wav-format

+ gui: new menu commands: "Select All", "Invert Selection", "Copy to Clipboard", "Copy Filename to Clipboard", "Delete From Disk", "Play and Record", "Mix and Record"
+ gui: simple sorting by "filename", "artist", "title" columns
+ gui: convert multiple files
- core, gui: fmedia didn't exit after error in GUI loader
- gui: STOP didn't work after PAUSE
- gui, wasapi.out, dsound.out: quicker reaction to "pause", "seek" command
- gui: meta from flac.cue wasn't passed to output file when "Convert" command is used
- gui: "Open Folder" didn't work for filenames with spaces

+ mixer: buffer size can be configured in fmedia.conf
+ mixer: support mixing PCM 16le with PCM float
- mixer: output could hang in some cases

- file.out: flush memory buffers to a file before seeking
- file: seek=0 didn't work

* wasapi: request sample rate conversion if soundcard doesn't support input sample rate
* wasapi: output: don't reopen output buffer on each file, unless audio format or device has changed

- queue: the next item in queue wasn't played after directory or playlist was opened (v0.4 bug)
- plist.cue: invalid track_duration was set (v0.4 bug)
- soundmod.until: tracks from .cue files could hang when stopped from GUI (v0.4 bug)

fmedia v0.4 - Aug 21, 2015

+ gui: fmedia-gui binary supports command-line arguments
+ gui: synchronize queue with the playlist view
+ gui: accept files dragged and dropped from explorer
+ gui: support recording audio
+ gui: save into a file wmain.position and tvol.value on exit
+ gui: convert 1 selected media file
* gui: use filename as a title if there's no title in media meta info
* gui: use config options
* gui: "show directory" command selects the file in explorer
* tui: print total samples

+ plist.cue: control track pregaps (--cue-gaps=VAL)
* plist.cue: don't skip pregaps by default, but add them into the previous track
- plist.cue: precise (to a sample) seek positioning and track duration

- mixer: fix unsynchronized output (v0.3 bug)
- mixer: the first output chunk might contain invalid PCM data
- mixer: output to OGG Vorbis didn't work

- core: fix track's dictionary entries memory leak
- core: command line options "--out=.EXT --outdir=DIR" didn't work (v0.2 bug)
+ plist.dir: open directory (find files in a directory and add them to the queue)
* queue: delete the item from queue if there was an error while processing track
+ soundmod.peaks (--pcm-peaks, --pcm-crc)
- soundmod.until: the first chunk of PCM data was skipped (v0.3 bug, affects all audio processing)
+ mpeg.decode: support ID3v1 tag (note: track number and genre aren't supported)

fmedia v0.3 - Jul 25, 2015

+ added GUI
+ support M3U playlist
+ FLAC: support per-track playback of CUE files
+ file: ability to automatically name output file from meta info
+ OGG: support playing files with no eos page
+ FLAC: support FLAC-to-FLAC convertion
- conf: multiple media file extensions didn't work
- core: fixed module name memory leak
- conf: media file extension matching is now case insensitive
- FLAC: couldn't play flac files if header size matches input file buffer size

fmedia v0.2 - June 20 2015

+ FLAC input/output
+ OGG output
+ MPEG decode
+ WASAPI input with latency auto-correction
+ "live" capture mode
* --record switch is now boolean, may be used with --out=FILE
+ --outdir - Set output directory
+ --pcm-format - Set output PCM format
+ --gain - Set output gain in dB
+ --overwrite - Overwrite output file
+ conf: output_ext
+ conf: "mod_conf": modules can be configured via fmedia.conf
* OGG: more precise "current_position"
- WASAPI: don't hang if input data is too small
- correctly handle read() from eof position
- mpeg: support ID3v2 tags with "unsync" flag

fmedia v0.1 - May 23 2015

+ OGG input
+ WAV input/output, raw input
+ MPEG input (meta only)
+ file input/output
+ Direct Sound input/output
+ WASAPI output
+ mixer

Search   Contact us   Privacy Policy   About   Advertise   Forum   RSS Feeds   Statistics   Software   

Site layout: Default Classic Blue