Commit graph

78 commits

Author SHA1 Message Date
Christopher Snowhill
8d851e5bda [Input API] Change input readAudio method
readAudio now returns an AudioChunk object directly, and all inputs have
been changed to accomodate this. Also, input and converter processing
have been altered to better work with this.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-10 15:22:04 -07:00
Christopher Snowhill
8ee4a04f3b Experimental tag support redesign
This redesign completely changes how tags are stored in memory. Now all
arbitrary tag names are supported, where possible. Some extra work will
be needed to support arbitrary tags with TagLib, such as replacing it
with a different library.

Translation pending for a couple of strings.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-08 16:35:34 -07:00
Christopher Snowhill
5d7a9798fe [Synthesizers] Implement default overrides
Default time, fade, loop count, and sample rate may now be overridden.

Synchronized preferences strings tables. Spanish translation of new
options pending, new releases won't be pushed until they're complete.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-02 01:27:01 -07:00
Christopher Snowhill
f696dc2205 [Highly Complete Input] Reject unsupported systems
Reject system identifier numbers that aren't supported, outright, rather
than waiting until the decoder is initialized.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-17 06:39:46 -07:00
Christopher Snowhill
39f4d09c1a Use NSNumber Literals as much as possible
Replaced a bunch of [NSNumber numberWith...] with NSNumber Literals.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-17 06:39:02 -07:00
Christopher Snowhill
67f6c931bb [Highly Complete / MIDI] Fix numeric tag reading
The new Core Data interface is especially stringent with receiving
NSNumber for the numeric types rather than NSString as was mistakenly
allowed before. Fix that to prevent exceptions.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-17 05:48:03 -07:00
Christopher Snowhill
8cf37cadf3 Unicode metadata: Change most logic to use guesser
Most file formats the player supports may or may not have UTF-8 safe
strings in their metadata. This should not be assumed to be UTF-8, and
when it is assumed, it results in nil NSString objects, which results in
inline initializers crashing due to uncaught exceptions.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-05-24 01:07:55 -07:00
Christopher Snowhill
6741151423 Highly Complete / USF: Enable HLE again
Enable HLE processing for USF playback, based on previous commit filling
out the HLE operations list. It should be safe to enable it again now.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-03-05 20:44:41 -08:00
Christopher Snowhill
a618073203 Highly Complete: Keep USF RSP HLE disabled for now
There is a missing effect in the relevant tracks from Conker's Bad Fur
Day, an overdrive effect.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-12 07:45:10 -08:00
Christopher Snowhill
1df166b060 Updated lazyusf2, and disabled RSP HLE warnings
The warn logging was preventing working USFs from playing due
to warnings occurring during the playback that didn't otherwise
affect the ability to play the files.
2022-02-12 03:29:43 -08:00
Christopher Snowhill
68c3f3b1d8 Highly Complete: Disable USF HLE
The HLE is incomplete, and sometimes buggy. Disable it for now.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-10 20:57:44 -08:00
Christopher Snowhill
b927f4c02b Replace more NSDictionary use with literals
Use literals to initialize fixed NSDictionary objects in various places.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-08 19:56:04 -08:00
Christopher Snowhill
85c7073649 Reformat my own source code with clang-format
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-06 21:49:27 -08:00
Christopher Snowhill
0c4d5002f6 Metadata: Now supports storing cuesheet tags and encoding quality status properties 2022-01-21 22:38:54 -08:00
Christopher Snowhill
2165d37144 Metadata: Now supports disc number field where possible 2022-01-21 21:49:17 -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
39a5ee8ab7 Utility: Add stubs to regenerate Info.plist with file type associations 2022-01-18 03:07:32 -08:00
Christopher Snowhill
fdae7eec21 File info: Implemented support for Album Artist and Codec fields 2021-10-01 19:18:42 -07:00
Christopher Snowhill
bdd02c76d3 PSF/PSF2: Set harsh compatibility mode, so emulator behaves more like actual hardware, which fixes a few PSF and PSF2 rips 2021-03-28 12:49:34 -07:00
Christopher Snowhill
dce400435e Fix #89 by encoding paths correctly I hope 2021-01-30 19:37:10 -08:00
Dzmitry Neviadomski
832fa6dbd0 Even more deprecations fixes. 2021-01-27 05:45:02 +03:00
Christopher Snowhill
a23085082a Switch back to lazyusf2, and enable JIT entitlement for it 2019-10-15 14:32:18 -07:00
Christopher Snowhill
67495009ff Updates for new build system. 2018-06-28 04:03:37 -07:00
Christopher Snowhill
aebbef593f Updated Highly Quixotic to include new, more accurate sound emulation. 2018-05-22 00:53:00 -07:00
Chris Moeller
baf8e574cf Update mGBA, including a fix for PSG volume. 2018-05-11 19:21:42 -07:00
Christopher Snowhill
01b91961ff Fix HighlyComplete for new mGBA header arrangement. 2017-03-12 21:38:46 -07:00
Christopher Snowhill
5a3e8005ea Finished updating mGBA. 2016-11-03 22:43:12 -07:00
Christopher Snowhill
a95280626f Fix Projects. Fix a major deadlock introduced by previous commit. Introduce new mGBA based GSF player. 2016-09-04 12:49:43 -07:00
Chris Moeller
592d6a6a30 Fix for double free with new code. 2016-07-02 02:58:21 -07:00
Chris Moeller
03b825ced3 Hopefully fix the last of the Automatic Reference Counting issues that remained. 2016-06-19 12:57:18 -07:00
Chris Moeller
2f60cb42db Activated ARC for HighlyComplete plug-in, and made necessary fixes to it. 2016-05-03 00:32:28 -07:00
Chris Moeller
d62a6463af Updated vio2sf. 2015-03-14 17:30:00 -07:00
Chris Moeller
b73c20985c Changed USF player to resample using lazyusf2 2015-03-01 23:04:22 -08:00
Chris Moeller
4d8ec1960f Switched from lazyusf to lazyusf2 2015-03-01 21:28:09 -08:00
Chris Moeller
e89bc870ad Oops, forgot a macro change in SSEQ player 2014-11-04 18:39:14 -08:00
Chris Moeller
fea1b147a6 Enabled lazyusf HLE support by default 2014-10-14 22:33:05 -07:00
Chris Moeller
0fb8aa57bb Update LazyUSF and increased silence detection threshold for USF files to 10 seconds, which fixes Majora's Mask - Staff Roll 2014-04-07 17:42:09 -07:00
Chris Moeller
52e8c8f07d Updated vio2sf with multiple configurable resampling modes 2014-03-31 20:38:24 -07:00
Chris Moeller
9059e8f308 PSF/PSF2 playback now obeys refresh tags on .psflib files 2014-03-24 18:37:10 -07:00
Chris Moeller
704f04b8ce Fixed stupid errors compiling with Xcode 5.1 2014-03-10 22:06:48 -07:00
Chris Moeller
ec40c5041c Updated LazyUSF 2014-03-08 18:36:59 -08:00
Chris Moeller
5f88c6d882 Fixed 2SF and USF to read emulator setup tags from nested library files for playback 2014-02-26 16:37:56 -08:00
Chris Moeller
5c4a4602db Added error logging to LazyUSF, player now stops on errors. 2014-02-20 17:07:57 -08:00
Chris Moeller
c438cc7ed1 Decreased xSF silence detection threshold to 5 seconds for all formats except for PSF and PSF2, improved USF sample rate detection, and fixed USF leading silence removal 2014-02-19 16:59:06 -08:00
Chris Moeller
f086d8c9bf Imported lazyusf in its new library form and removed the external app 2014-02-15 01:37:59 -08:00
Chris Moeller
6e234756c1 LazyUSF input now ignores SIGPIPE, so the lazyusf process terminating abnormally won't cause Cog to terminate 2014-02-13 21:37:35 -08:00
Chris Moeller
9cd138384d Setting Repeat One will now direct all synthesizing decoders to run forever, rather than merely restarting repeatedly. Playptmod now cuts off length detection after half an hour, in case some files' loops are not detected. 2014-02-13 21:16:18 -08:00
Chris Moeller
7531b3324f Improved the robustness of the lazyusf communication process to terminate cleanly if the external process crashes or otherwise terminates improperly. Also updated lazyusf to terminate if its input pipe is broken during decoding. 2014-02-13 20:21:44 -08:00
Chris Moeller
f2b981acba Rewrote and enabled lazyusf support, now working properly 2014-02-12 23:34:52 -08:00
Chris Moeller
a614cc17b9 Added support for a pipe-fed console lazyusf player, currently disabled because it's horribly unstable 2014-02-05 17:35:02 -08:00