What's new in fmedia 1.31
May 22, 2023
- --http-ctl="<IP>": Enable HTTP server for handling remote commands
- This option allows fmedia to be remotely controlled using web browser.
- Server address is "http://<IP>:7314/".
- Supported commands:
- "POST /api/pause": Pause
- "POST /api/unpause": Unpause
- "POST /api/next": Play next track
- --playlist-heal="": Auto-correct the paths to files inside a .m3u playlist
- TUI: colored output
- GUI: compress auto-loaded playlists with zstd ("listN.m3uz")
- Recording: support --dev=... together with --record
- Restore support for old AMD64 CPU (without SSE4.2 support)
- Recording: finalize the output file while recording after --globcmd=stop
- .mp4(AAC) write: don't write incorrect VBR bitrate & sample rate values
- .ogg write: fix (v1.30 bug)
New in fmedia 1.30 (Feb 20, 2023)
- --playback-buffer=INT: Length (in msec) of the playback buffer
- Move mod/core.so -> core.so (Core isn't really a module)
- Core: optimize fmedia.conf so that it's easier to embed fmedia into other projects (it's no longer required to declare a module in fmedia.conf)
- --print-time: don't require '--debug' to get per-filter timings
- .mp3, .ape, .wv read: id3v1 codepage
- Linux: use libgio directly to trash files
- Vorbis write: skip 'picture' tag
- Update to libFLAC-1.4.2
- PulseAudio: playback could hang if there's a problem with device
- .mp3 copy: copy id3v1 tag (v1.27.2 bug)
- .ogg write: fix hanging on trying to write a large packet (v1.29 bug)
- .ogg read: inaccurate seeking (v1.29 bug)
- GUI/Linux: incorrect audio-conversion settings were written into fmedia-user.conf
New in fmedia 1.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
New in fmedia 1.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
New in fmedia 1.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)
New in fmedia 1.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
New in fmedia 1.27.3 (May 16, 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
New in fmedia 1.27.2 (Apr 20, 2022)
- Fix crash on file conversion
New in fmedia 1.27.1 (Apr 2, 2022)
- Fix crash on file conversion
New in fmedia 1.27 (Apr 1, 2022)
- '--edit-tags': Add/Modify file's meta tags in-place
- Supported formats and tags: .mp3(ID3v2+ID3v1)
- Example:
- 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
New in fmedia 1.26.1 (Mar 14, 2022)
- Fix complex filter chain use-cases such as "--start-dblevel/--stop-dblevel" and possibly some other cases.
New in fmedia 1.26 (Mar 6, 2022)
- Includes all changes from v1.25beta
New in fmedia 1.25.3 Beta (Jan 29, 2022)
- "-o @stdout.wav"
- core: "codepage" config option
- core: pcm channels conversion
- .mp3 encode: mono/interleaved source
New in fmedia 1.25.2 Beta (Dec 20, 2021)
- Rename --out-copy=cmd -> --out-copy-cmd. A command-line switch with an optional value was a design mistake.
New in fmedia 1.25.1 Beta (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
- Windows: finalize the file being recorded after Ctrl+C
New in fmedia 1.25 Beta (Nov 16, 2021)
- 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
New in fmedia 1.24.1 (May 17, 2021)
- capture stream didn't work with "--dev-capture=0 --dev-loopback=N"
New in fmedia 1.24 (Apr 12, 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
New in fmedia 1.23.1 (Mar 4, 2021)
- .ogg read: fix (v1.23 bug)
- GUI (Linux): youtube downloader: save/restore settings for format and output directory
New in fmedia 1.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
- Didn't work on old Windows (v1.19 bug)
New in fmedia 1.22 (Jan 31, 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
New in fmedia 1.21 (Dec 31, 2020)
- GUI (Linux): File->"Download from YouTube" (via /usr/bin/youtube-dl)
- - core: --gain didn't work (v1.20 bug)
New in fmedia 1.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
New in fmedia 1.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
New in fmedia 1.18 (Jul 5, 2020)
- Pulse: support 8-bit playback
- Help.txt: Spanish translation
- Core: skip unknown modules in fmedia-user.conf
- File.in, 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
New in fmedia 1.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: core.so: don't use glibc 2.29
New in fmedia 1.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)
New in fmedia 1.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. "libpulse.so.0" 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.
New in fmedia 1.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
New in fmedia 1.13 (Nov 10, 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
New in fmedia 1.12.1 (Oct 13, 2019)
- help.txt: French translation
New in fmedia 1.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)
- Log: print input file name for error/info messages
New in fmedia 1.11 (Sep 13, 2019)
- 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
- Windows: opening wildcard file names didn't work (v1.10 bug)
New in fmedia 1.10.1 (Jul 19, 2019)
- 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)
New in fmedia 1.10 (Jul 9, 2019)
- GUI: restore list's column width on startup
- GUI: convert.output is a dropdown list; restore on startup
- 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
New in fmedia 1.9 (Jun 9, 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
New in fmedia 1.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
New in fmedia 1.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
New in fmedia 1.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
New in fmedia 1.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.
New in fmedia 1.3 (Dec 10, 2018)
- GUI: Parallel conversion (fmedia.conf::workers).
- Parallel conversion from command line ('--parallel' switch)
- .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.
New in fmedia 1.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)
New in fmedia 1.1 (Oct 16, 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
New in fmedia 1.0.1 (Sep 18, 2018)
- .m4a write: fix segfault (v1.0 bug)
- gui: tray icon disappeared (v1.0 bug)
New in fmedia 1.0 (Sep 11, 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
- Windows:
- Reading from EOF position doesn't result in an error
New in fmedia 0.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)
New in fmedia 0.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
New in fmedia 0.35 (Apr 10, 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
- core: segfault on using channel + sample rate conversion on an ICY stream (v0.34 bug)
New in fmedia 0.34.1 (Mar 15, 2018)
- --dynanorm: couldn't be used with --record for short length recordings
- --dynanorm: couldn't be used with --format/--channels/--sample-rate
New in fmedia 0.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 to FLAC (v0.32 bug)
New in fmedia 0.33 (Feb 14, 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
New in fmedia 0.32 (Feb 14, 2018)
- winXP: fix startup (unsupported imported function in core.dll and unsupported GUI behaviour)
- print-time: show more detailed info
New in fmedia 0.31 (Feb 14, 2018)
- 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
- core.so is loaded dynamically from mod/all modules were moved to mod/