Commit Graph

245 Commits (97b8ad0949613ed40041f05490ac6c6deeb37515)

Author SHA1 Message Date
Christopher Snowhill e7b78085ca New feature: Implemented headphone virtualization
This new virtualizer uses the Accelerate framework to process samples.
I've bundled a HeSuVi impulse for now, and will add an option to select
an impulse in the future. It will validate the selection before sending
it to the actual filter, which outright fails if it receives invalid
input. Impulses will be supported in any arbitrary format that Cog
supports, but let's not go too hog wild, it requires HeSuVi 14 channel
presets.
2022-01-25 16:50:42 -08:00
Christopher Snowhill ec7009f3fc Equalizer: Instances of GraphicEQ AU are now relinquished to the main thread for destruction instead of being destroyed by the Core Audio Output shutdown 2022-01-24 19:49:43 -08:00
Christopher Snowhill fe4e17a4a0 Equalizer: Remove equalizer from window, thus saving settings, on stop or shutdown
Fixes #204
2022-01-23 20:25:42 -08:00
Christopher Snowhill 2165d37144 Metadata: Now supports disc number field where possible 2022-01-21 21:49:17 -08:00
Christopher Snowhill a743f914e9 HDCD Indicator: Made this less janky too 2022-01-21 15:00:44 -08:00
Christopher Snowhill 26e0e0cead HDCD Decoding: Add HDCD indicator 2022-01-20 23:53:45 -08:00
Christopher Snowhill f2feb3bcd7 Equalizer: Fix applying equalizer presets on automatic track change 2022-01-19 01:23:59 -08:00
Christopher Snowhill 5c17dc9207 Notifications: Only send position notifications periodically 2022-01-19 00:41:12 -08:00
Christopher Snowhill 684951bdc0 Change a bunch of NSArray declarations to const collection literals 2022-01-18 18:12:57 -08:00
Christopher Snowhill e70efdaa5a Donate options: Re-launched my Patreon page, so added the link back 2022-01-18 00:07:40 -08:00
Christopher Snowhill 7a0c1d230e Volume control: Make preamp optional, defaulting to a limit of 100% volume 2022-01-17 22:41:26 -08:00
Christopher Snowhill 83ad969d9b Equalizer: Add option for presets to track the music genre tags 2022-01-17 20:43:08 -08:00
Christopher Snowhill dbc0698cee Equalizer: Implemented stock presets 2022-01-17 06:37:38 -08:00
Christopher Snowhill 87c771c67c Equalizer: Add option to toggle the equalizer on or off 2022-01-17 01:22:15 -08:00
Christopher Snowhill 71b2f7a4f2 Implement graphic equalizer 2022-01-16 07:32:47 -08:00
Christopher Snowhill d3548d77e7 Hide current artist from dock context menu when not playing or when there is no artist set 2022-01-15 23:41:02 -08:00
Christopher Snowhill 7da599fe3c Remove stale function declarations 2022-01-15 23:30:43 -08:00
Christopher Snowhill 602facf31a Move feed and downloads back to S3 2022-01-15 19:04:26 -08:00
Christopher Snowhill 3b62842021 Playback Notifications: Prevent crash when notifying a track with unusable album artwork 2022-01-11 20:39:10 -08:00
Christopher Snowhill c4c9a741ef Replaced AudioToolbox converter process with homebrew solution, using the RetroArch sinc resampler 2022-01-11 04:09:19 -08:00
Christopher Snowhill 87ebca5e03 Really fix saving track position on quit 2022-01-09 03:17:43 -08:00
Christopher Snowhill 6e9266e194 Fix track position storage on quit 2022-01-09 03:06:36 -08:00
Christopher Snowhill 3e72087a41 Play position is stored every 10 seconds, and status is stored every time playback is started, paused, stopped, or seeked 2022-01-09 02:34:29 -08:00
Christopher Snowhill 7fe67b1630 Implement dock icon progress bar indicator for many processing operations, including adding tracks, removing tracks, and loading or reloading track metadata 2022-01-09 02:10:08 -08:00
Christopher Snowhill 917b7457b6 Made resume playback on startup so that seeking operation is entirely atomic with starting playback, so the new seeking behavior doesn't have the potential to crash the player 2021-12-26 04:35:54 -08:00
Christopher Snowhill 2445cc94a9 - Retrieve profile paths properly instead of hard coding
- Display playlist total duration in units up to weeks and down to just seconds, and only pluralize units as necessary
- Major change: Implemented a SQLite disk backed playlist, track data, and queue storage system, which will be synchronized from the player in real time, and will hopefully survive system or app crashes. Existing plist playlist will be imported on first run, and removed on shutdown.
2021-12-24 01:01:21 -08:00
Christopher Snowhill 91bd653b55 Fading: Hopefully fix fading being broken after fading in once, possibly a rounding error that depends on the volume level set before fading in 2021-11-17 21:12:25 -08:00
Christopher Snowhill 71dd68036b Remove obsolete donation methods 2021-10-02 18:42:19 -07:00
Christopher Snowhill fdae7eec21 File info: Implemented support for Album Artist and Codec fields 2021-10-01 19:18:42 -07:00
Calvin Buckley d18c9c9bb0 Why was this commented out? 2021-08-08 17:57:42 -03:00
Calvin Buckley cdde55004a Send metadata so that NPIC can receive stop events at end of playback
Otherwise, the NPIC will just show the last track stuck at the last second.
There may be a better place to put this.
2021-08-08 17:55:51 -03:00
Christopher Snowhill fc70e0e8b4 Notifications: Fix so it supports external artwork, and also fix a crash where invalid embedded artwork would cause it to crash 2021-08-07 15:09:36 -07:00
Calvin Buckley 0e6747c21a Provide more information to MPNowPlayingInfoCenter, including album art
NPIC can ask for a lot of metadata, but for now, provide it only what (at least I know) PlaylistEntry can provide. The biggest missing one was album art, so this change should be appreciated by those who do use it.

I don't know what it can do with the other metadata though, seeing at least on macOS, it can only do album/artist/track title/artwork.
2021-06-21 19:45:46 -03:00
Dzmitry Neviadomski 9c58f67c48 Fix Info button sizing when album art not present. 2021-05-05 02:03:55 +03:00
Christopher Snowhill 4cf76dd7e3 MIDI: Replaced BASSMIDI with FluidSynth 2021-05-03 19:18:55 -07:00
Christopher Snowhill 13bd399b31 Clean up most warnings and update some dependencies 2021-04-29 18:16:24 -07:00
Christopher Snowhill 5c6b145f9a Update playback position 5 times per second instead of once, increasing smoothness of seekbar on shorter tracks, and hopefully solving jitter on some tracks 2021-04-19 23:51:31 -07:00
Christopher Snowhill d06eec4ff0 Set allowed extensions for the save picker when saving a playlist 2021-04-09 11:16:12 -07:00
Christopher Snowhill cadb54b454 Fix shutdown action so it removes the playlist filter before saving the playlist 2021-04-09 11:09:18 -07:00
Dzmitry Neviadomski 3a3694d78b Add option for Mini Player to appear on top. 2021-03-03 00:04:59 +03:00
Christopher Snowhill 483b8d6647 Don't load metadata for stream URLs 2021-02-28 18:48:21 -08:00
Dzmitry Neviadomski 8105b9e2b2 Modernize PlaybackEventController. 2021-02-26 23:01:48 +03:00
Dzmitry Neviadomski 604edc8099 Update playback control tooltips. 2021-02-21 01:38:52 +03:00
Dzmitry Neviadomski 97cc1e9845 Remove Apple Remote leftovers. 2021-02-19 07:32:33 +03:00
Dzmitry Neviadomski 18896dcc3e Rework Titlebar.
Show Album art in info button.
2021-02-19 02:58:57 +03:00
Dzmitry Neviadomski b08263159e Show Now Playing bar only when needed.
Fixes #101
Fixes #105
2021-02-19 01:07:05 +03:00
Dzmitry Neviadomski a07d07c9f9 Fix Mini window restoring.
Fixes #99
2021-02-14 03:10:03 +03:00
Dzmitry Neviadomski a64f5e08e6 Use GitHub issues for reporting feedback. 2021-02-09 03:12:31 +03:00
Dzmitry Neviadomski 899152db49 Add ability to change toolbar style.
Fixes #86
2021-02-07 01:15:12 +03:00
Dzmitry Neviadomski e313cdac14 Reflect playback status in log correctly 2021-02-07 00:39:19 +03:00