mirror of
https://github.com/clangen/musikcube.git
synced 2024-12-27 21:14:08 +00:00
267 lines
10 KiB
Plaintext
267 lines
10 KiB
Plaintext
0.9.1
|
|
|
|
* added proper support for using and switching between different audio sample
|
|
formats. 24/192k works across all platforms now.
|
|
* fixed `DirectSoundOut` pause to work properly again
|
|
* added support for statically linking dependencies. for now we can supply
|
|
macOS binaries that don't require homebrew! let's try to keep it that way.
|
|
* updated some defaults -- rescan metadata on startup by default, and restrict
|
|
to two processing threads.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.9.0
|
|
|
|
user-facing:
|
|
|
|
* added new `musikdroid` android remote control! super userful with a Raspberry
|
|
Pi. run musikbox in the background and control it from your phone.
|
|
* added a new `websocket_remote` plugin that allows any client capable of
|
|
communciating with websockets the ability to control playback and query
|
|
metadata!
|
|
* added settings UI for enabling/disabling plugins within the app!
|
|
* added more granular volume control when adjusting below 10%
|
|
* fixed a crash on shutdown while in track search view
|
|
|
|
low-level:
|
|
|
|
* added new sdk interfaces:
|
|
- `ISimpleDataProvider`: can be used to query tracks, albums, artists, genres
|
|
- `IMetadataValue` and `IMetadataValueList`: lists of metadata values and ids
|
|
- `IMetadataMap` and `IMetadataMapList`: maps of values for resource ids
|
|
- `IPreferences` for reading and writing preferences
|
|
* updated sdk interfaces:
|
|
- `ITrack`: added `getId()`
|
|
- `IPlaybackService`: the ability to modify or replace the play queue
|
|
- `ITrackList`: added const correctness
|
|
- renamed `IMetadataWriter` to `ITrackWriter`
|
|
* added the ability for plugins to register to receive `IPreferences` and
|
|
`ISimpleDataProvider` interfaces via `SetPreferences()` and
|
|
`SetSimpleDataProvider`, respectively. see `websocket_remote` for an example
|
|
* fixed up `PluginFactory` to store and provide more metadata about plugins
|
|
when querying them.
|
|
* fixed a deadlock in `PlaybackService` when changing tracks from
|
|
`IPlaybackRemote` plugins.
|
|
* fixed another WASAPI audio endpoint routing bug
|
|
* fixed some win32 project settings to allow profile guided optimizations (was
|
|
broken for some plugins)
|
|
* fixed 'deprecated' compiler warnings on macOS
|
|
* seed the random number generator at startup
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.8.0
|
|
|
|
user-facing:
|
|
|
|
* added support for Raspberry Pi running Raspbian!
|
|
* added preliminary support for playlist editing. all editing is currently
|
|
in the play queue view.
|
|
- `ALT+s`: save the current play queue to a named playlist
|
|
- `ALT+l`: load a previously saved playlist
|
|
- `ALT+x`: delete a playlist
|
|
- `ALT+r`: rename a playlist
|
|
* added the ability to delete (BACKSPACE on mac, DEL on win32/linux) and reorder
|
|
(ALT+UP/ALT+DOWN win32/mac, CTRL+UP/CTRL+DOWN linux ) selected items in the
|
|
play queue.
|
|
* added better color fallback for non-mutable 256 termianl color palettes
|
|
* added the ability to enqueue selected tracks, albums, artists, or other
|
|
resources to the play queue by pressing ALT+ENTER.
|
|
* fixed a crash when trying to play a track that has been removed from the
|
|
database
|
|
* fixed (maybe) an impossible-to-reproduce bug in PulseAudio where the output
|
|
volume was not getting properly initialized
|
|
* removed "esc focuses shortcut bar" setting. no longer useful.
|
|
|
|
low-level:
|
|
|
|
* fixed cursespp child view coordinates to be relative to their parents
|
|
* cleaned up global focus model in cursespp
|
|
* added IPlaybackService::GetPlayingTrack() to get an IRetainedTrack pointer
|
|
to the currently playing track; bumped SdkVersion to 2.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.7.3
|
|
|
|
reduce CPU usage during playback in macOS CoreAudioOut
|
|
include the null output plugin in macOS and Linux builds.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.7.2
|
|
|
|
mostly performance and architecture changes:
|
|
|
|
* created new 'src/glue' package that contains code that can be optionally
|
|
included and reused by other applications, but is too high-level for
|
|
src/core
|
|
* cpu reduction and code simplification in 'Stream' and 'Player'
|
|
* cpu reduction in 'MessageQueue'
|
|
* reduced locking in 'Player' and 'MessageQueue'
|
|
* tweaked music library interface to optionally deliver results to a specified
|
|
'IMessageQueue'
|
|
* moved 'PlaybackService' and 'TrackList' into 'core'
|
|
* optimized floating point sample scaling in the 'nomad' mp3 decoder
|
|
* reduced cpu overhead when redrawing the transport view
|
|
* added bare-bones, 'proof of concept' win32 application that includes 'core'
|
|
and 'glue' to present a very basic music player in just a few lines of code.
|
|
* added a NullOut, an output plugin that doesn't write to the sound card. useful
|
|
for development and testing purposes.
|
|
|
|
bug fixes:
|
|
|
|
* fixed default output plugin selection logic
|
|
* fixed a crash in WASAPI stream routing
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.7.1
|
|
|
|
user-facing:
|
|
|
|
* fixed the flac decoder. oops.
|
|
* changed focus behavior in search view -- pressing return in the edit field
|
|
will now focus the tracklist after starting playback
|
|
* added sdk and plugin versioning. the plugin loader will only load plugins
|
|
with a supported version.
|
|
|
|
low-level
|
|
|
|
* removed pre-buffering code from Player, let Stream worry about that
|
|
* moved from boost to std for most threading (boost still used in the indexer)
|
|
* removed some unused boost dependencies from CMakeLists.txt
|
|
* various small optimizations to help reduce CPU overhead in MessageQueue and
|
|
Player.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.7.0
|
|
|
|
a big release with lots of changes to low-level machinery.
|
|
|
|
user-facing:
|
|
|
|
* added a new "crossfade" playback mode that can be used instead of "gapless".
|
|
users can change this functionality in the settings view.
|
|
* fixed audio artifacts in WasapiOut and DirectSoundOut when pausing and
|
|
resuming playback multiple times very quickly.
|
|
* fixed a really bad bug where dialogs could not be easily dismissed in some
|
|
cases. this included the first-run dialog! yikes.
|
|
|
|
low-level:
|
|
|
|
* added Latency() and Drain() methods to the IOutput interface
|
|
* reduced CPU load in some output plugins by being less aggressive about keeping
|
|
the output buffers 100% full all the time. 75%+ fill rate should be
|
|
sufficient.
|
|
* generalized MessageQueue and moved it out of app, and into core so it can be
|
|
reused for other functionality (e.g. crossfading)
|
|
* added support for "mix points" in Player -- get a callback as soon as a
|
|
specific playback position is hit!
|
|
* fixed DirectSoundOut to fall back to software mixing if hardware mixing is
|
|
unavailable
|
|
* fixed DirectSoundOut to start playback immediately, instead of sometimes
|
|
requiring the buffer to be completely full
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.6.2
|
|
|
|
* added a DirectSound output plugin for the win32 build.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.6.1
|
|
|
|
* replaced mpg123 decoder with MAD. gapless playback for a much wider variety of
|
|
mp3s!
|
|
* optimized indexing process by maintaining an in-memory database id cache. uses
|
|
a bit more memory (temporarily, during indexing) but improves indexing speed.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.6.0
|
|
|
|
* added the ability to have multiple output plugins, and the ability switch
|
|
between them in settings
|
|
* added a new default output plugin for win32 (WASAPI) and linux (PulseAudio)
|
|
* changed a bunch of low-level ui code to substantially reduce layout passes and
|
|
redraws
|
|
* made a few small changes to the main ui, including basic listview headers if
|
|
the window grows large enough
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.5.0
|
|
|
|
user-facing:
|
|
|
|
* remember volume and repeat settings across app launches
|
|
* improved visualizer quality
|
|
* reduced download size by a couple megabytes
|
|
|
|
low-level:
|
|
|
|
* optimized Stream and Player communication. more direct, less locking. no more
|
|
weird deferred cleanup
|
|
* removed fftw3 dependency in favor of kiss_fft. much smaller download now
|
|
* added a proper windowing algorithm to audio samples before they are handed to
|
|
the fft process
|
|
* fixed audio de-interleaving issue which lead to funky fft results in some
|
|
cases
|
|
* included a new spectrum visualizer sample called GdiVis (win32 only for now)
|
|
* overhauled some parts of the audio engine to ensure buffer size is consistent
|
|
during playback. this makes visualization quality better, and should make it
|
|
easier to integrate with things like JACK and PulseAudio.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.4.1
|
|
|
|
* fixed the transport readout to be more legible
|
|
* fixed a crash in NowPlayingLayout when the window became too small
|
|
* improved the IPlaybackService and IPlaybackRemote interfaces, and introduced a
|
|
new IRetainedTrack type.
|
|
* upgraded build environment to visual studio 2017
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.4.0
|
|
|
|
* updated transport focus behavior to be less confusing -- it was previously too
|
|
easy to accidentally focus the transport.
|
|
* added mute functionality. focus the volume control and press enter or just
|
|
press m while browsing your library.
|
|
* added new IPlaybackRemote and IPlaybackService sdk interfaces to support
|
|
writing plugins that can control playback and be notified of playback events.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.3.5
|
|
|
|
* various small visualizer-related fixes.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.3.4
|
|
|
|
* visualizer support! press v to show the picker! a couple samples (Milkdrop2
|
|
and projectM) are included below. unzip these to your musikbox\plugins
|
|
directory.
|
|
* fixed a nasty unicode conversion bug.
|
|
* various other small fixes
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.2.2
|
|
|
|
* small improvements to the transport view, including the display of the volume
|
|
percentage next to the volume slider.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
0.2.1
|
|
|
|
* initial "public" release
|