The first half of andTunes, a music player for the Rabbit R1. Auxio re-reads Android's MediaStore on every launch, which is the "your songs will show up here" hang — so the answer isn't a faster scanner, it's not scanning at all. LinTunes already knows the artist, album and year of every file it just copied, so it writes them into Music/andTunes/library.json and the app reads one file instead of indexing a filesystem. New lintunes/andtunes/: layout.py (a de-duplicated Media/<Artist>/<Album>/ tree, so a song in three playlists is stored once), manifest.py (pure, Qt-free), art.py (one 480 px cover per album via QImage, cached and invalidated by the audio file's mtime — which is exactly what embedding new art moves), and sync.py, a third sibling of plan_export/ExportWorker. Three rules the code depends on: planning never renders art (a mutagen open per album, and planning runs on the GUI thread); the index is written last and after a cancel lists only tracks whose files actually landed; and every delete goes through layout.assert_inside, which is why the old Music/<Playlist>/ folders are structurally unreachable rather than merely un-referenced. Connections gains "Sync to Rabbit" and "Rabbit Sync Settings…" — the ticked set is the device's contents, so unticking is how a playlist comes off, which nothing could do before. The selection rides preferences.json so both machines agree. The old per-playlist sync stays, renamed "(Auxio)": removing it now would leave the device full of files and nothing able to open them until the app exists. The app itself is rounds 48-50; its board is andtunes/TASKS.md, including the measured screen facts (480x640 px at density override 160 — one dp is half its usual physical size on a 2.88" panel). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015wrTys5U1fLb4pBD2LKWzV
28 lines
3.5 KiB
Plaintext
28 lines
3.5 KiB
Plaintext
ok, so right now we have the 'sync playlist to rabbit' menu. I have been using an android app called 'auxio' but everytime I reopen it it seems to reindex all the audio, takes a long time and doesn't always work? It sits on "your songs will show up here" and then they don't. First of all, can you do some solid research to see if there is an existing app that would work well to deliver this spec? We don't need to reinvent the wheel. If we ARE going to reinvent the wheel let's call this app 'andtunes' (get it?).
|
|
|
|
My needs are basic. I want to be able to sync playlists like we have now. I want the android app to open really, really quickly.
|
|
|
|
It opens to a main menu:
|
|
- playlists
|
|
- artists
|
|
- albums
|
|
- songs
|
|
- search
|
|
- now playing (if nothing is playing it should instead say "shuffle all" which shuffles all songs it knows about)
|
|
|
|
playlists button goes to a list of playlists, artists button goes to a list of all artists. andTunes only needs to sync with lintunes so maybe we can rebuild the andTunes music database when we sync to the phone. The 'sync playlist to rabbit' button can instead be 'sync playlist to andtunes'. Are we able to install the andTunes app right from linTunes? If so that could be another menu item from connections menu, 'install andtunes'. To think of it, we will probably want a way to choose which ones get synced. So instead of "sync playlist to rabbit" there need to be 2 menus, 'sync rabbit' which syncs all the playlists we've decided we want to sync. And another menu like 'rabbit sync settings' where we can check/uncheck playlists that we want synced. This is the method for removing synced playlists.
|
|
|
|
We only need compatibility with the rabbit r1! This is important. We should optimize UI for this device's small screen. The screen is really dim so we should maximize contrast and use black and white. The main screen buttons (playlists, artists, etc) should be buttons. Each one should be a fraction of the size of the screen. I'll need you to make standard images stored in an easy spot that I could then replace with my own button images if I want.
|
|
|
|
At the top of the songs page it should show "shuffle all" and then all songs sorted alphabetically.
|
|
|
|
tapping on an artist in the artist view brings us to albums from that artist but also an option for "all songs". "all songs" shows an alphabetical list of all songs from that artist with a 'shuffle all' (for that artist) button at the top. On the albums list for an artist, next to each album should be a little icon of the album art.
|
|
|
|
If something is playing, or playing but paused, there should be a button at the bottom of the screen that says "now playing" that the user can tap to go to the now-playing screen.
|
|
|
|
The now-playing screen should have a white background, show the album art square at top, below that a slim scrubber for current place in song, and transport buttons (back, play/pause, next). Below that we can have a shuffle button as well as a 'back' button that brings us to the last screen we were at (gotta keep track of that somehow?).
|
|
|
|
are there any basic features of a phone music app you can think of that I'm missing? This app can be the BARE minimum to start, I'll add features later as I find that I need them. But if you think of some blaring obvious stuff that I forgot feel free to suggest, thanks.
|
|
|
|
sorry this spec is a HUGE jumble. Probably the first task for you, after researching if this exists already, is to make a separate andTunes task list to build all this. Totally ok if we can't build the whole thing in one session! Feel free to break up the work however makes sense.
|