Default repeat mode should now be Repeat All, and the menu items should
now all function, fixed by removing a bunch of pointless attributes from
each affected menu item.
Fixes#371
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This output may prove to have lower latency, but the results are too
glitchy to really be usable. Not even visualization latency is handled
correctly.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This is imported by the player, though it doesn't fail when it's
missing, so that would explain why I didn't spot this error sooner.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
They'll be imported by the plugin on startup anyway, and they don't
really have any exported functions we can use.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Correctly scale the AudioChunk frame counts. This more and more makes me
think I should be scaling this in the AudioChunk code instead, but then
code may not know about the special case of every 8 frames only being
one byte per channel.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
DSD wasn't tracking the correct sample count, because DSD
Audio Chunks store the byte count, rather than the bit count.
This may be changed in the future, so I'll have to remember.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
And default it to disabled. As was pointed out to me by a user, DSD is
apparently mastered to a level of -6 dB, so double its level on output
by default.
Also reorder all preferences dialog controls so they are instantiated in
display order, which should help screen readers, maybe.
Fixes#368
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Resampler flush may indefinitely produce 1 sample if there is a rounding
error with the buffering calculations. Work around this.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
When the clipped sample rate changes, the resampler needs to be
restarted. This was previously failing because the target sample rate
wasn't changing.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
When reading partial chunks, and when returning partial data, it is
essential to maintain this lossless chunk status across either whole or
partial chunk reads. Otherwise, the converter chain sees the lossless
flag constantly changing on lossless files, such as PCM or DSD, and
causes the DSD decimator and/or resampler to be torn down and reset
repeatedly, causing glitches in the audio.
The glitch was not, in fact, with the decimator itself, and was
occurring to a degree without it, as it would be restarting the
resampler repeatedly as well.
Fixes#367
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
The latency is half of the FIFO, or half the filter size, and each byte
is 8 samples, so return the value accordingly.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This comment was in the original sample decimator code, I neglected to
include it in my port over to Cog. Doesn't really serve any functional
change, though. It would have clarified that I needed to reduce the gain
level much sooner, though.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Instead of clear playlist and play. This was confusing people,
apparently. I should have changed it sooner, since this is what
I use normally anyway.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Defaulting to ctrl-cmd-O, though I may change this if
someone has any better ideas for a default.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Also included missing BASS_MPC, which was still being imported
even though it wasn't actually included.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Makes volume slider logarithmic when limited to 100% to allow easier changing of volume towards the bottom of the slider.
The tooltip remains as the slider location instead of the logarithmic value of the actual volume.
Only track new, removed, or renamed files. Tracking Xattr changes was
apparently causing the tracker dialog to crash on things like the user
changing file type associations, which either added or removed a per-
file association xattr, or when clicking Change All, removed this xattr
from all associated files tracked by Spotlight.
Fixes#361
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
AppleScript is apparently such a legacy system, that when it sends URLs
to your app to open, they're in the old Carbon format. So we need to
translate these to proper URL strings for the rest of the app to deal
with them at all.
The format of these URLs is as follows:
/method/::
Followed optionally by:
username/password@
Where the slash and password are optional.
Followed by:
hostname
Followed optionally by:
/portnumber
And finally, followed by:
:path:on:server:filename.ext
So, in hostname field, we must swap slashes to colons. And in the path
field, swap colons to slashes. What a bizarre world.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
If transfer completes quickly, do not hang waiting for it to achieve
reading state. Also add some comments indicating what we're doing.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
* Adds decimal digits to volume slider tooltip
Modifies the volume slider tooltip so that:
-If the volume slider falls below 10%, the volume tooltip will display one decimal digit of precision (e.g. 3.4%).
-Else if the volume slider falls below 1%, display one decimal digit of precision (e.g. 0.34%).
-Otherwise display the volume slider tooltip as normal.
This helps show changes in volume between 0% and 10% where a change in volume isn't shown in the UI but is heard (especially when the "Limit volume control to 100%" option is unchecked in the "Output" Preferences submenu.
* Update VolumeSlider.m
Fix variable declaration
---------
Co-authored-by: Christopher Snowhill <chris@kode54.net>
Merge the existing metadata entry dictionary with new values, because
sometimes, the caller may pass us a dictionary with some fields missing.
Fixes stream metadata for many HTTP streams.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>