@clangen clangen released this Jun 10, 2018 · 38 commits to master since this release

Assets 14

musikcube :

  • added last.fm scrobbling support (settings > last.fm)
  • added a built-in hotkey viewer and editor (settings > key bindings)
  • added basic mouse handling support -- click / double click / mouse wheel works mostly the way you'd expect... but it's laggy because it's curses.
  • added an Italian translation (anonik9900)
  • added a Russian translation (adem4ik)
  • added "proportional seek" functionality (benterris)
  • fixed a bug where the "Source Code Pro" font was not being included in the win32 build with milkdrop.
  • added support for Ubuntu Bionic
  • added support for Fedora 28
  • added windows theme support so the menu bar draws nicer
  • updated PDCurses (windows build)
  • retired binary distribution for Raspbian Jessie (Stretch still supported!)

musikdroid:

  • fixed a handful of random crashes that showed up in fabric.io

server:

  • fixed a bug where the same playback overview may be broadcast multiple times.
  • fixed a bug where set_volume was not returning a response
  • fixed a couple bugs where negative limits may be returned

sdk:

  • added a simple HttpClient wrapper around libcurl that can be used by plugins

@clangen clangen released this Feb 20, 2018 · 96 commits to master since this release

Assets 13

important: if you use musikdroid, make sure you update it alongside musikcube!

musikcube:

  • added the ability to browse by directory! add music directories to the list of indexed paths in the settings screen, then press d in browse view to browse.
  • added a new setting to save session on exit. when enabled, musikcube will remember the last selected view and the current playback context, and restore everything on next app start.
  • better first-run experience for new Windows users:
    • included "Source Code Pro Medium" font, and use it by default.
    • updated the default font size to be a bit larger.
    • hid the main menu bar with "Font" and "Paste" buttons; this functionality is still available by clicking the musikcube icon in the upper left portion of the window.
  • added scrollbar support to ListOverlay

musikdroid 0.25.0:

  • added the ability to automatically transfer playback from mobile to server when headset (or bluetooth device) is disconnected.

musikdroid 0.26.0:

  • fixed some crashes on Oreo devices related to streaming audio

musikdroid 0.27.0:

  • fixed a bug where the notification may spuriously re-appear after playback has finished (or was stopped)

@clangen clangen released this Feb 2, 2018 · 137 commits to master since this release

Assets 13

musikcube:

  • ^R now displays an indexer dialog that allows the user to choose between a quick scan and full metadata rebuild.
  • made checkboxes prettier.
  • fixed playlist and play queue track numbers -- they should always be sequential, not pulled from metadata.

musikcubed:

  • NEW! run musikcube as a daemon on macOS, Linux and BSD! musikcubed --help to get started.
    • note: the daemon currently runs independently from the curses app. this will be improved in future releases.

musikdroid:

  • added remote server configuration! users can now change output drivers and devices, ReplayGain and preamp settings, transport type, and schedule the metadata indexer remotely. see: toolbar menu > remote management.
  • added the ability to transfer playback context (play queue, song and position) from the server to the mobile app, and vice-versa. try it out by long pressing the switcher icon in the toolbar.
  • promoted playlists to main screen, and shuffled the play queue button around.
  • added the ability to query albums by extended metadata categories, including "composer", "producer", "year" and more. see: toolbar menu > categories.
  • removed legacy playback engines. only ExoPlayer Gapless is supported now.
  • show a warning if the server is running an older api version.
  • fixed a crash when streaming play queue contains one file, and "random" is on.

musikcore:

  • added the following functionality to IEnvironment:
    • query output devices and drivers
    • select the system's default output device and driver
    • re-index and re-build library metadata
    • get/set preamp and ReplayGain settings
    • get/set transport type (gapless, crossfade)
  • switching output devices, transport, and ReplayGain settings no longer abruptly stop playback. there may generally be a short pause, but playback will continue where it left off.
  • removed musikglue project. move functionalilty into musikcore.
  • bumped sdk version to 14

server:

  • messages for new IEnvironment updates (see above)
    • run_indexer
    • list_output_drivers
    • set_default_output_driver
    • get_gain_settings
    • set_gain_settings
    • get_transport_type
    • set_transport_type
  • play queue snapshotting; remote clients can use this functionality to help
    transfer playback context from server to client.
    • snapshot_play_queue
    • invalidate_play_queue_snapshot
    • play_snapshot_tracks
  • all messages that start playback can now be passed a time parameter, which will seek initial playback to the specified time (in seconds).
  • query_play_queue_tracks now accepts an optional parameter called type; allowed values are live (default) and snapshot.
  • bumped api version to 14
Feb 2, 2018
Fixed the macOS packaging process.

@clangen clangen released this Feb 2, 2018 · 210 commits to master since this release

Assets 13

infrastructure:

  • automated Linux builds via CircleCI! (@dvdmuckle)

musikcube:

  • added ReplayGain support. settings > preamp and replaygain to configure. when support is active, and ReplayGain is applied, a green [rg] symbol will appear in the transport view next to the volume slider.
  • added initial support for FreeBSD using sndio. big thanks to @gregf for the support and troubleshooting.
  • added scroll indicators to list windows (disabled on FreeBSD for now)
  • exposed extended metadata -- browse by new fields like year, composer, language, etc. press 6 in library > browse view.
  • fixed a couple bugs in the metadata indexer -- extended metadata properties were not always getting scanned and stored properly.
  • fixed build paths so app can be built against MacPorts. (@reynhout)
  • fixed a bug where themes were getting clobbered after every reinstall on some platforms. users can now put their custom themes in ~/.musikcube/themes.
  • made overlay title text alignment consistent across (center horizontal).

musikcore:

  • database and query updates to support track, category, and album queries with multiple predicates. (e.g. all artists with composer=X AND year=Y).
  • new sndio output plugin. this is the default output for FreeBSD, and is optional (disabled by default) on Linux.
  • new ffmpeg_decoder plugin. not enabled by default, but will probably eventually replace nomad, ogg, mp4, and flac plugins.

server:

  • api support for multi-predicate queries.

musikdroid:

  • fixed bug where non-transcoded audio would not always play properly.

@clangen clangen released this Dec 4, 2017 · 311 commits to master since this release

Assets 10

windows users: do not unzip the new build over an existing install -- please use a new directory. data is not stored in the installation directory, so your libraries will remain intact.

android users: you also need to upgrade your musikcube installation to 0.31.0, otherwise new features will not work (and some old features may not function properly).

api users: documentation has been updated here.

0.31.0 is a big release, focusing on the following:

  • first-class playlist editing support in the server layer, and and on the Android client
  • the introduction of audio encoders into main app and SDK
  • gapless playback on Android (experimental)
  • a massive overhaul of the Android code
  • a cleaned up C++ SDK

a more detailed list of changes as follows...

musikcube:

  • added support for Ubuntu Artsy
  • added preliminary support for audio encoder plugins.
  • added stockencoders plugin with support for encoding MP3 (lame) and OGG/Vorbis audio.
  • fixed and exposed album-level artwork. previously it was track-only.

musikdroid:

  • gapless playback (for supported media)! enable in settings > playback engine > "ExoPlayer Gapless (experimental)"
  • playlist create / rename / update / delete support
  • album art is now displayed in album rows when browsing content (e.g. albums by this artist, artists in this genre, etc)
  • fixed a really bad bug that could cause locally cached media to become corrupted in a very specific scenario (unreliable connectivity while the server is performing on-demand transcoding)
  • added a simple "spotlight" tutorial for new users that explains switching between remote and streaming playback modes.
  • major refactor to the entire code base, including the following:
    • a brand new data layer interface based on RxJava. this should position the app for lots of new, fun stuff in the future.
    • a new dependency injection implementation
    • a view component layer for sharing functionality across screens
  • updated Glide from v3 -> v4
  • updated to Android Studio 3.0.1 and related tooling
  • fixed notification icon color

sdk:

  • removed all Destroy() methods, standardized on Release() across the board
  • added the following to ISimpleDataProvider:
    • QueryCategoryWithPredicate()
    • SavePlaylistWithIds()
    • SavePlaylistWithExternalIds()
    • SavePlaylistWithTrackList()
    • AppendToPlaylistWithIds()
    • AppendToPlaylistWithExternalIds()
    • AppendToPlaylistWithTrackList()
    • RemoveTracksFromPlaylist()
    • RenamePlaylist()
    • DeletePlaylist()
  • added new interfaces:
    • IValue
    • IEncoder
    • IEncoderFactory
  • removed interfaces:
    • IRetainedTrack
    • IRetainedTrackWriter
  • renamed interfaces
    • IMetadataMap -> IMap
    • IMetadataMapList -> IMapList
    • IMetadataReader -> ITagReader
    • ITrackWriter -> ITagStore
    • IMetadataValue -> IValue
    • IMetadataValueList -> IValueList

server:

  • renamed project from websocket_remote to server, and promoted to a top-level component in the workspace
  • added correct LAME headers after transcoding to fix gapless playback of encoded files.
  • added the following messages to the websocket server:
    • save_playlist
    • rename_playlist
    • delete_playlist
    • append_to_playlist
    • remove_tracks_from_playlist
    • query_tracks_by_external_ids
  • renamed the following track fields:
    • visual_genre_id -> genre_id
    • visual_artist_id -> artist_id
  • added the ability to query album art by id
  • fixed HttpServer to ignore non-GET verbs
  • added "predicated category queries", e.g. "all the albums for this artist" or "all the artists in this genre", etc.
  • added artist and artistId to album response (previously it was only return albumArtist and albumArtistId)
  • fixed bugs related to HTTP "Range" header parsing and generation
  • fixed a bug in the websocket functionality that was returning invalid invalid_request responses... yeah.

@clangen clangen released this Sep 9, 2017 · 414 commits to master since this release

Assets 9

musikcube:

  • added some missing checks in WideCharToMultiByte (and MultiByteToWideChar) that could result in access violations on windows
  • suppress certain types of errors in the taglib_reader plugin that could lead to crashes in weird edge cases
  • added a hidden setting for enabling indexer logging (set IndexerLogEnabled to true in settings.json)
  • upgraded to a new version of the windows sdk (10.0.15063.0)

musikdroid:

  • added the ability to rename connection presets
  • fixed a crash in SystemService related to unregistered intents
  • upgraded to android studio beta 5

@clangen clangen released this Aug 25, 2017 · 424 commits to master since this release

Assets 9

musikcube:

  • fixed a bug in flac decoder that was causing issues with the real-time transcoder
  • fixed a crash in the m4a decoder
  • updated some linux dependencies
  • added a build for raspbian stretch

musikdroid (0.15.1):

  • fixed a bug that may result in a crash when musikdroid is running in the background.

musikdroid (0.15.0):

  • fixed the playback notification and lock screen controls so they work properly with Android O
  • updated settings ui to include tools for saving and loading connection profiles
  • fixed a couple random crashes that surfaced in fabric
  • removed android-specific dagger cruft; just use vanilla dagger
  • updated support library and build tooling versions
Aug 25, 2017
Recompiled libFLAC_static against the latest VS2017 SDK.