Alexander Capehart
9fe508a906
all: fix formatting
2025-01-04 17:51:40 -07:00
Alexander Capehart
710e279d8f
musikr: tweak api
2025-01-04 17:43:09 -07:00
Alexander Capehart
32b152e155
musikr: reformat
2025-01-04 15:57:03 -07:00
Alexander Capehart
a4d7b54db7
musikr: add back tag whitespace fixes
...
Requires me to rejig the JNI integration, but it's overall good since
it allows me to strip away a lot of the logic.
2025-01-04 15:56:19 -07:00
Alexander Capehart
fddd527975
musikr.tag: handle compilation flag
2025-01-04 13:42:28 -07:00
Alexander Capehart
b0faad6380
build: bump to version 4.0.0-beta1
2025-01-04 12:14:37 -07:00
Alexander Capehart
c3ccb8519e
musikr: add empty library check
2025-01-01 16:10:34 -07:00
Alexander Capehart
a2e6bcbb7f
musikr: separate immutable/mutable subclasses
...
This makes it easier for me to centralize certain DI.
2025-01-01 14:37:01 -07:00
Alexander Capehart
62e214039f
all: reformat
2025-01-01 13:59:40 -07:00
Alexander Capehart
75455b1b90
musikr: make cover files more concrete
...
This should allow me to implement a solid ContentProvider.
2025-01-01 13:58:52 -07:00
Alexander Capehart
04e81916f7
all: fix formatting
2025-01-01 13:14:06 -07:00
Alexander Capehart
68098b97ed
music: move automatic reloading to musikr
2025-01-01 13:08:53 -07:00
Alexander Capehart
7497ff2514
musikr: fix crash when no mbids used
2024-12-28 15:11:28 -07:00
Alexander Capehart
d964df4616
musikr: fix broken cover cleanup
2024-12-27 15:49:26 -05:00
Alexander Capehart
b05d668b5e
musikr: close cover output streams
2024-12-27 15:39:31 -05:00
Alexander Capehart
292ea9d8a1
musikr: fix broken siloed covers
...
Caused by a missing param equality.
2024-12-27 15:38:49 -05:00
Alexander Capehart
ebcedb49eb
musikr: fix broken cache pruning
2024-12-27 15:38:23 -05:00
Alexander Capehart
8b3d7cae9c
musikr: handle missing covers on recaching
...
Now that we have effectively two caches (The main cache and the covers),
we have to handle the case where we have cached data, but the cover data
is missing. This is a real-world edge case once album covers are made
configurable as they were previously.
2024-12-27 15:11:09 -05:00
Alexander Capehart
32156f23b2
music: introduce siloed covers
...
Will allow me to dynamically configure cover quality by user settings.
2024-12-27 10:38:38 -05:00
Alexander Capehart
8b58f357cb
musikr: introduce cover cleanup
...
Helps reduce overall memory use.
2024-12-27 10:06:04 -05:00
Alexander Capehart
0dc72b67af
musikr: introduce cover params
2024-12-26 20:26:04 -05:00
Alexander Capehart
80c97cbea1
musikr: separate cover files/format
2024-12-26 19:54:31 -05:00
Alexander Capehart
b8178056f5
musikr: simplify cover storage boundaries
2024-12-26 19:23:48 -05:00
Alexander Capehart
5e7d575efd
build: fix cpp formatting
2024-12-26 18:53:24 -05:00
Alexander Capehart
75612dd1eb
all: cleanup
2024-12-26 14:04:15 -05:00
Alexander Capehart
61fd11fe04
musikr: refactor cache api
...
To make the pruning system more agnostic and "extendable"
2024-12-26 13:58:23 -05:00
Alexander Capehart
3f364dc5c6
musikr: add cache pruning
...
Helps remove dead entries, and additionally makes date added values more
accurate over time.s
2024-12-26 13:36:56 -05:00
Alexander Capehart
4f920e922d
musikr: add date added support w/cache
...
This allows me to replicate something resembling date added
support while reducing query load.
2024-12-26 10:33:50 -05:00
Alexander Capehart
da76a03298
Revert "musikr: add date added support"
...
This reverts commit ca6388b28d
.
2024-12-26 09:04:18 -05:00
Alexander Capehart
ca6388b28d
musikr: add date added support
...
Through a new `Tracker` interface.
Tracker is kind of a generic name. It's set up in the case that I have
to wind up associating more post-extraction metadata with songs.
2024-12-24 15:24:29 -05:00
Alexander Capehart
c42ac644eb
musikr: compute uid on presong creation
2024-12-24 15:08:49 -05:00
Alexander Capehart
7768d98632
musikr.cover: refactor cover
...
Instead of using a weird sealed class, instead go for a
Cover/CoverCollection system instead that removes some implicit
design dependence in musikr.
2024-12-24 14:43:48 -05:00
Alexander Capehart
8409a93c4e
musikr: reformat
2024-12-23 20:53:01 -05:00
Alexander Capehart
258418578a
musikr.tag: parse artist sort name
2024-12-23 17:13:45 -05:00
Alexander Capehart
bdce83f047
musikr.tag: fix incorrect artist name placeholder
2024-12-23 17:04:12 -05:00
Alexander Capehart
75ca315b9b
musikr.tag: fix broken tag field
2024-12-23 17:01:07 -05:00
Alexander Capehart
518b80bdf2
musikr.metadata: add missing log header
2024-12-23 16:50:54 -05:00
Alexander Capehart
c379174ffe
musikr.metadata: wrap exceptions into log
...
Not ideal, but avoids a total catastrophic crash on failed metadata
extractions.
2024-12-23 16:48:32 -05:00
Alexander Capehart
b6bc065a4a
musikr.tag: parse mp4 fields
2024-12-23 16:46:56 -05:00
Alexander Capehart
6652e351cf
musikr.metadata: uppercase internal atoms
2024-12-23 16:46:35 -05:00
Alexander Capehart
6ccae5f0d2
musikr.metadata: fix mp4 parsing
2024-12-23 12:52:33 -05:00
Alexander Capehart
e56e290451
musikr: make nativeinputstream internal again
2024-12-23 11:27:34 -05:00
Alexander Capehart
77f97ef656
all: cleanup
2024-12-23 11:04:51 -05:00
Alexander Capehart
07118a5ff1
musikr: link correct taglib jni lib
2024-12-23 11:03:17 -05:00
Alexander Capehart
44696424a9
musikr: build taglib sequentially w/more threads
...
This is probably better since locality can be leveraged more.
2024-12-23 10:53:44 -05:00
Alexander Capehart
a888d09a2c
musikr: link private libraries
...
This is what the ffmpeg extension does, it probably does something
good.
2024-12-23 10:53:33 -05:00
Alexander Capehart
787a78f845
musikr: shrink end taglib jni size
...
Use some magic linker flags that @Tolriq found over in
https://github.com/taglib/taglib/issues/1212#issuecomment-2326456903
that somehow reduced linked so size by ~2mb.
2024-12-23 10:46:53 -05:00
Alexander Capehart
b6cbf97df9
musikr: rename taglib jni cmake project
2024-12-23 10:05:33 -05:00
Alexander Capehart
6fd0bd411b
musikr: fix broken iostream jni integration
2024-12-23 09:59:23 -05:00
Alexander Capehart
001db620e3
all: reformat
2024-12-21 11:52:28 -05:00
Alexander Capehart
9a38877c2e
musikr: hide cache database
2024-12-21 11:52:28 -05:00
Alexander Capehart
503a4854c3
musikr: hide playlist database
2024-12-21 11:52:28 -05:00
Alexander Capehart
a4cca0ca79
all: remove log.d calls
2024-12-21 11:52:28 -05:00
Alexander Capehart
2ec3bbbe8c
musikr: hide unstable internals
...
Hypothetically I'd open these up into a broader API once I can confirm
they are safely extensible.
2024-12-21 11:35:14 -05:00
Alexander Capehart
c4a4b69cd1
musikr.pipeline: parallelize cache writes
2024-12-20 22:21:24 -05:00
Alexander Capehart
0f0b7a4a7d
all: reformat
2024-12-20 22:17:08 -05:00
Alexander Capehart
6bad9e719d
musikr.pipeline: parallelize cache reads
2024-12-20 22:12:01 -05:00
Alexander Capehart
9f68f59504
musikr.pipeline: disable extraction shuffling
...
No longer needed now that jpeg writes are extremely quick. Will
re-introduce in the case that I introduce webp parsing again.
2024-12-20 22:06:41 -05:00
Alexander Capehart
a598f39dea
musikr.cover: use jpeg for covers
...
Way faster to encode and the artifacts are minimal at 1kx1k and 100
compression.
Still not fully ideal, but webp is so flow to encode.
2024-12-20 22:05:51 -05:00
Alexander Capehart
1843986f75
music: implement revisioned covers
2024-12-20 21:57:16 -05:00
Alexander Capehart
8b69042288
Revert "musikr: bundle cover resolution with key"
...
This reverts commit 8cc939b58d
.
2024-12-20 15:28:25 -05:00
Alexander Capehart
8cc939b58d
musikr: bundle cover resolution with key
...
This is a partial refactor, I'm still trying to find a good approach to
a revisionable system.
2024-12-20 12:41:14 -05:00
Alexander Capehart
249d2fad67
musikr.pipeline: shuffle songs to extract
...
This helps avoid the entire tag parsing flow from getting blocked up
by several tracks that are blocking trying to write a single cover.
2024-12-19 16:13:16 -05:00
Alexander Capehart
a77dd3ff7a
musikr.pipeline: redo extract pipeline
...
Try to separate opening FDs, extracting metadata, parsing tags/writing
covers, and cache writes.
This makes it slower, but now I know the bottleneck is covers. Gotta
figure out how to offload that work.
2024-12-17 20:31:04 -05:00
Alexander Capehart
7e8764d6d4
musikr.metadata: dont expose file name
...
Not needed.
2024-12-17 20:03:35 -05:00
Alexander Capehart
c431e90af8
musikr: output stack trace in pipeline error
2024-12-17 16:30:53 -05:00
Alexander Capehart
03ee8d299d
musikr: dont produce tag maps w/empty values
2024-12-17 16:27:25 -05:00
Alexander Capehart
7b1ccfc3fb
all: reformat
2024-12-17 16:05:13 -05:00
Alexander Capehart
acd4dab74c
musikr: include context in pipeline errors
2024-12-17 16:01:44 -05:00
Alexander Capehart
93da4a69a9
musikr: re-add playlist deletion
2024-12-17 12:19:36 -05:00
Alexander Capehart
7e45812411
all: reformat
2024-12-17 12:18:18 -05:00
Alexander Capehart
3ad2fd2fc0
musikr: fix playlist graphing
2024-12-17 12:17:28 -05:00
Alexander Capehart
b3a598c558
musikr: re-add playlist rewriting
2024-12-17 12:12:09 -05:00
Alexander Capehart
744097694f
musikr: re-add playlist adding
2024-12-17 12:11:20 -05:00
Alexander Capehart
f4822a4e40
musikr: re-add playlist renaming
2024-12-17 12:04:24 -05:00
Alexander Capehart
9f657adf94
musikr: re-add playlist creation
2024-12-17 11:48:17 -05:00
Alexander Capehart
bdfd9d6e23
musikr: move storage/interpretation dependence to construction
...
This makes some testing and certain code more ergonomic.
2024-12-17 11:45:04 -05:00
Alexander Capehart
8bbb7497a6
musikr: fix stuck evaluate step
2024-12-17 11:27:14 -05:00
Alexander Capehart
50b7c24c03
musikr: expose bitrate and sample rate
2024-12-17 10:42:54 -05:00
Alexander Capehart
880967f8be
all: fix formatting
2024-12-16 20:47:17 -05:00
Alexander Capehart
7fab7f7eeb
musikr: add full playlist evaluation
2024-12-16 20:45:26 -05:00
Alexander Capehart
3d94ab67cf
musikr: re-implement playlist graphing
2024-12-16 20:13:08 -05:00
Alexander Capehart
11a4d6a720
name: fix name token constructor
2024-12-16 19:07:50 -05:00
Alexander Capehart
b6f6213ac4
all: reformat
2024-12-16 18:46:54 -05:00
Alexander Capehart
6e3b03d4c6
musikr: re-implement playlist loading
2024-12-16 18:46:06 -05:00
Alexander Capehart
50bfe9926b
musikr.model: use genre core
2024-12-16 15:50:10 -05:00
Alexander Capehart
4421f4f56d
musikr.graph: dont simplify size-1 clusters
...
Creates very hard to trace bugs.
2024-12-16 15:47:59 -05:00
Alexander Capehart
9d1978850b
musikr: update classpaths in native code
2024-12-16 15:20:46 -05:00
Alexander Capehart
00520f7fda
musikr: api fixes
2024-12-16 15:15:30 -05:00
Alexander Capehart
5a65a6aa25
musikr: additional api cleanup
2024-12-16 14:49:24 -05:00
Alexander Capehart
0d5abb6407
musikr: cleanup api
2024-12-16 14:33:31 -05:00
Alexander Capehart
14355a1005
musikr: extract out shared parse fns
...
Into the util module
2024-12-16 13:41:57 -05:00
Alexander Capehart
ed102d3414
all: format
2024-12-16 13:34:49 -05:00
Alexander Capehart
d4d00249df
musikr: move tag tests away from auxio
2024-12-16 13:27:45 -05:00
Alexander Capehart
71667f378d
musikr: merge ktaglib into musikr.metadata
...
No longer makes sense as an independent module.
2024-12-16 13:18:13 -05:00
Alexander Capehart
ae44abc35a
musikr: reduce taglib build parallelism
...
Likely unhealthy to run maximum thread count 4x over
2024-12-16 13:15:47 -05:00
Alexander Capehart
e908d0e102
all: break off musikr
2024-12-16 13:09:08 -05:00