dweymouth / supersonic Goto Github PK
View Code? Open in Web Editor NEWA lightweight and full-featured cross-platform desktop client for self-hosted music servers
License: GNU General Public License v3.0
A lightweight and full-featured cross-platform desktop client for self-hosted music servers
License: GNU General Public License v3.0
Process: supersonic [54683]
Path: /Applications/Supersonic.app/Contents/MacOS/supersonic
Identifier: com.example.Supersonic
Version: 0.0.1 (1)
Code Type: X86-64 (Translated)
Parent Process: launchd [1]
User ID: 501
Date/Time: 2023-03-06 15:58:32.3275 +0000
OS Version: macOS 13.2 (22D49)
Report Version: 12
Anonymous UUID: B2E412A6-D34E-E813-10C3-8DC94A01A63C
Sleep/Wake UUID: 05007720-DFCF-4BCE-BA84-85CA1F9D5B10
Time Awake Since Boot: 1000000 seconds
Time Since Wake: 402 seconds
System Integrity Protection: enabled
Crashed Thread: 0
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: Namespace DYLD, Code 1 Library missing
Library not loaded: /usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/Python
Referenced from: <0AE97375-8222-319B-867D-06D2EEFC00F4> /Applications/Supersonic.app/Contents/Frameworks/libvapoursynth-script.0.dylib
Reason: tried: '/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/Python' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/Python' (no such file), '/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/Python' (no such file), '/Library/Frameworks/Python.framework/Versions/3.10/Python' (no such file), '/System/Library/Frameworks/Python.framework/Versions/3.10/Python' (no such file, not in dyld cache)
(terminated at launch; ignore backtrace)
Kernel Triage:
VM - pmap_enter retried due to resource shortage
VM - pmap_enter retried due to resource shortage
VM - pmap_enter retried due to resource shortage
VM - pmap_enter retried due to resource shortage
VM - pmap_enter retried due to resource shortage
Thread 0 Crashed:
0 Rosetta Runtime Routines 0x10110e9a8 ???
1 0x1011b059c ???
2 dyld 0x2011ebd07 abort_with_payload_wrapper_internal + 82
3 dyld 0x2011ebd39 abort_with_payload + 9
4 dyld 0x2011731e1 dyld4::halt(char const*) + 375
5 dyld 0x201170660 dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*) + 4502
6 dyld 0x20116f281 start + 2289
Thread 1:: com.apple.rosetta.exceptionserver
0 runtime 0x7ff7ffcb0614 0x7ff7ffcac000 + 17940
1 runtime 0x7ff7ffcbc530 0x7ff7ffcac000 + 66864
2 runtime 0x7ff7ffcbdf30 0x7ff7ffcac000 + 73520
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000006 x1: 0x0000000000000001 x2: 0x000000030525e910 x3: 0x00000000000000af
x4: 0x000000030525e510 x5: 0x0000000000000000 x6: 0x0000000000000000 x7: 0x000000202f709000
x8: 0x000000030525e510 x9: 0x0000000000000000 x10: 0x00000000000000af x11: 0x000000030525e510
x12: 0x00000000000000af x13: 0x000000030525e910 x14: 0x0000000000000001 x15: 0x0000000000000006
x16: 0x0000000000000209 x17: 0x0000000000000000 x18: 0x800000010916fb80 x19: 0x0000000101104000
x20: 0x00000000000007ff x21: 0x0000000109174fa0 x22: 0xffffffffffffffff x23: 0x000000010110e97c
x24: 0x00000002011ebd07 x25: 0x000000010110e248 x26: 0x00000001011ae288 x27: 0x0000000000000000
x28: 0x00000002011d2b4a fp: 0x000000002c000000 lr: 0x00000001011b059c
sp: 0x000000010916fb80 pc: 0x000000010110e9a8 cpsr: 0x80001000
far: 0x00000001011b0000 esr: 0x56000080 Address size fault
Binary Images:
0x0 - 0xffffffffffffffff ??? () <00000000-0000-0000-0000-000000000000> ???
0x201169000 - 0x201200fff dyld () <270c4224-a38f-3a22-9ba9-95968f487738> /usr/lib/dyld
0x7ff7ffcac000 - 0x7ff7ffcdbfff runtime (*) /usr/libexec/rosetta/runtime
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
VM Region Summary:
ReadOnly portion of Libraries: Total=562.0M resident=0K(0%) swapped_out_or_unallocated=562.0M(100%)
Writable regions: Total=170.7M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=170.7M(100%)
VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Rosetta Arena 4096K 2
Rosetta Generic 964K 238
Rosetta IndirectBranch 32K 1
Rosetta JIT 128.0M 1
Rosetta Return Stack 20K 2
Rosetta Thread Context 20K 2
Stack 8176K 1
Stack Guard 56.0M 1
VM_ALLOCATE 15.5M 7
VM_ALLOCATE (reserved) 540K 94 reserved VM address space (unallocated)
__CTF 756 1
__DATA 36.9M 514
__DATA_CONST 22.3M 346
__DATA_DIRTY 928K 142
__FONT_DATA 2352 1
__LINKEDIT 183.1M 103
__OBJC_RO 65.4M 1
__OBJC_RW 1987K 1
__TEXT 378.9M 524
dyld private memory 512K 2
mapped file 4.2G 1506
=========== ======= =======
TOTAL 5.1G 3490
TOTAL, minus reserved VM space 5.1G 3490
{"app_name":"supersonic","timestamp":"2023-03-06 15:58:34.00 +0000","app_version":"0.0.1","slice_uuid":"26c33682-6dbc-3770-aaf4-c65dc76cb477","build_version":"1","platform":1,"bundleID":"com.example.Supersonic","share_with_app_devs":1,"is_first_party":0,"bug_type":"309","os_version":"macOS 13.2 (22D49)","roots_installed":0,"name":"supersonic","incident_id":"8BAEFC64-66B1-4873-8524-E3EE5CE0281A"}
{
"uptime" : 1000000,
"procRole" : "Background",
"version" : 2,
"userID" : 501,
"deployVersion" : 210,
"modelCode" : "MacBookAir10,1",
"coalitionID" : 138459,
"osVersion" : {
"train" : "macOS 13.2",
"build" : "22D49",
"releaseType" : "User"
},
"captureTime" : "2023-03-06 15:58:32.3275 +0000",
"incident" : "8BAEFC64-66B1-4873-8524-E3EE5CE0281A",
"pid" : 54683,
"translated" : true,
"cpuType" : "X86-64",
"roots_installed" : 0,
"bug_type" : "309",
"procLaunch" : "2023-03-06 15:58:31.7543 +0000",
"procStartAbsTime" : 25510617796014,
"procExitAbsTime" : 25510631460513,
"procName" : "supersonic",
"procPath" : "/Applications/Supersonic.app/Contents/MacOS/supersonic",
"bundleInfo" : {"CFBundleShortVersionString":"0.0.1","CFBundleVersion":"1","CFBundleIdentifier":"com.example.Supersonic"},
"storeInfo" : {"deviceIdentifierForVendor":"8C09FBF5-06FB-576D-8986-0142E3A48B00","thirdParty":true},
"parentProc" : "launchd",
"parentPid" : 1,
"coalitionName" : "com.example.Supersonic",
"crashReporterKey" : "B2E412A6-D34E-E813-10C3-8DC94A01A63C",
"throttleTimeout" : 2147483647,
"wakeTime" : 402,
"sleepWakeUUID" : "05007720-DFCF-4BCE-BA84-85CA1F9D5B10",
"sip" : "enabled",
"exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"},
"termination" : {"code":1,"flags":518,"namespace":"DYLD","indicator":"Library missing","details":["(terminated at launch; ignore backtrace)"],"reasons":["Library not loaded: /usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/Python","Referenced from: <0AE97375-8222-319B-867D-06D2EEFC00F4> /Applications/Supersonic.app/Contents/Frameworks/libvapoursynth-script.0.dylib","Reason: tried: '/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/Python' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/Python' (no such file), '/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/Python' (no such file), '/Library/Frameworks/Python.framework/Versions/3.10/Python' (no such file), '/System/Library/Frameworks/Python.framework/Versions/3.10/Python' (no such file, not in dyld cache)"]},
"ktriageinfo" : "VM - pmap_enter retried due to resource shortage\nVM - pmap_enter retried due to resource shortage\nVM - pmap_enter retried due to resource shortage\nVM - pmap_enter retried due to resource shortage\nVM - pmap_enter retried due to resource shortage\n",
"extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
"faultingThread" : 0,
"threads" : [{"triggered":true,"id":8865952,"threadState":{"x":[{"value":6},{"value":1},{"value":12971272464},{"value":175},{"value":12971271440},{"value":0},{"value":0},{"value":138234859520},{"value":12971271440},{"value":0},{"value":175},{"value":12971271440},{"value":175},{"value":12971272464},{"value":1},{"value":6},{"value":521},{"value":0},{"value":9223372041302244224},{"value":4312809472},{"value":2047},{"value":4447489952},{"value":18446744073709551615},{"value":4312852860},{"value":8608726279,"symbolLocation":82,"symbol":"abort_with_payload_wrapper_internal"},{"value":4312851016},{"value":4313506440},{"value":0},{"value":8608623434,"symbolLocation":10,"symbol":"__abort_with_payload"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4313515420},"cpsr":{"value":2147487744},"fp":{"value":738197504},"sp":{"value":4447468416},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":4312852904,"matchesCrashFrame":1},"far":{"value":4313513984}},"frames":[{"imageOffset":4312852904,"region":"Rosetta Runtime Routines","symbolLocation":10664,"imageIndex":0},{"imageOffset":4313515420,"region":"","imageIndex":0},{"imageOffset":535815,"symbol":"abort_with_payload_wrapper_internal","symbolLocation":82,"imageIndex":1},{"imageOffset":535865,"symbol":"abort_with_payload","symbolLocation":9,"imageIndex":1},{"imageOffset":41441,"symbol":"dyld4::halt(char const*)","symbolLocation":375,"imageIndex":1},{"imageOffset":30304,"symbol":"dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*)","symbolLocation":4502,"imageIndex":1},{"imageOffset":25217,"symbol":"start","symbolLocation":2289,"imageIndex":1}]},{"id":8865962,"name":"com.apple.rosetta.exceptionserver","frames":[{"imageOffset":17940,"imageIndex":2},{"imageOffset":66864,"imageIndex":2},{"imageOffset":73520,"imageIndex":2}]}],
"usedImages" : [
{
"size" : 0,
"source" : "A",
"base" : 0,
"uuid" : "00000000-0000-0000-0000-000000000000"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 8608190464,
"size" : 622592,
"uuid" : "270c4224-a38f-3a22-9ba9-95968f487738",
"path" : "/usr/lib/dyld",
"name" : "dyld"
},
{
"source" : "P",
"arch" : "arm64",
"base" : 140703125127168,
"size" : 196608,
"uuid" : "f066db2c-ed38-3f37-8d21-81d15fa908fe",
"path" : "/usr/libexec/rosetta/runtime",
"name" : "runtime"
}
],
"sharedCache" : {
"base" : 140703456182272,
"size" : 21474836480,
"uuid" : "efc722b9-b3df-3d27-9a7b-c4acaf125abb"
},
"vmSummary" : "ReadOnly portion of Libraries: Total=562.0M resident=0K(0%) swapped_out_or_unallocated=562.0M(100%)\nWritable regions: Total=170.7M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=170.7M(100%)\n\n VIRTUAL REGION \nREGION TYPE SIZE COUNT (non-coalesced) \n=========== ======= ======= \nRosetta Arena 4096K 2 \nRosetta Generic 964K 238 \nRosetta IndirectBranch 32K 1 \nRosetta JIT 128.0M 1 \nRosetta Return Stack 20K 2 \nRosetta Thread Context 20K 2 \nStack 8176K 1 \nStack Guard 56.0M 1 \nVM_ALLOCATE 15.5M 7 \nVM_ALLOCATE (reserved) 540K 94 reserved VM address space (unallocated)\n__CTF 756 1 \n__DATA 36.9M 514 \n__DATA_CONST 22.3M 346 \n__DATA_DIRTY 928K 142 \n__FONT_DATA 2352 1 \n__LINKEDIT 183.1M 103 \n__OBJC_RO 65.4M 1 \n__OBJC_RW 1987K 1 \n__TEXT 378.9M 524 \ndyld private memory 512K 2 \nmapped file 4.2G 1506 \n=========== ======= ======= \nTOTAL 5.1G 3490 \nTOTAL, minus reserved VM space 5.1G 3490 \n",
"legacyInfo" : {
"threadTriggered" : {
}
},
"trialInfo" : {
"rollouts" : [
{
"rolloutId" : "5f72dc58705eff005a46b3a9",
"factorPackIds" : {
},
"deploymentId" : 240000015
},
{
"rolloutId" : "63582c5f8a53461413999550",
"factorPackIds" : {
},
"deploymentId" : 240000002
}
],
"experiments" : [
]
}
}
Model: MacBookAir10,1, BootROM 8419.80.7, proc 8:4:4 processors, 8 GB, SMC
Graphics: Apple M1, Apple M1, Built-In
Display: Color LCD, 2560 x 1600 Retina, Main, MirrorOff, Online
Memory Module: LPDDR4, Hynix
AirPort: spairport_wireless_card_type_wifi (0x14E4, 0x4378), wl0: Nov 30 2022 03:35:43 version 18.20.379.9.7.8.145 FWID 01-9578a936
Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB31Bus
USB Device: USB31Bus
Thunderbolt Bus: MacBook Air, Apple Inc.
Thunderbolt Bus: MacBook Air, Apple Inc.
Add support for arrow key scrolling, back and forward shortcuts, etc.
Plugin system using some scripting language like JS, Python or Lua.
My usecase for this would be discord presence support.
See: fyne-io/fyne#3492
May need to explore fixing this in the custom Fyne fork, but for now will wait for the Fyne project to resolve it upstream.
Currently, memory use of the app grows over time due to a memory leak in the Fyne library. Opening an issue here to keep track of this and later decide if mitigation is necessary
Does not start on Arch
$ supersonic
supersonic: error while loading shared libraries: libmpv.so.1: cannot open shared object file: No such file or directory
Symlinking /usr/lib/libmpv.so
to /usr/lib/libmpv.so.1
fixes the issue but is not clean, i guess it is related to the version change (from1.x to 2.x) in the latest libmpv
So you can queue & shuffle all of your songs
The Now Playing page is the only page that doesn't make a server call to load its data model when it's loaded for the first time. It is backed by an in-memory tracklist model that isn't updated while the page isn't visible (e.g. with changes to now playing count, favorited status).
How to properly fix this will be ... interesting and will probably need fairly significant refactoring.
Some ideas:
This is in progress now..
#36 added the Now Playing page with the ability to remove tracks from the play queue. Repurposing this issue to tracking the support of reordering tracks in the queue.
Implementing this will likely necessitate a bit of a redesign to the PlaybackManager component, to only have the current and next tracks in MPV's internal play queue.
Hello. Just found your project and it looks nice!
Do you have any plans on supporting Wayland?
Thanks.
This will reduce memory spikes when navigating through lots of pages quickly.
Would be incredible to have external DAC(s) be able to take files in their original format (e.g. 24/88.2, 24/96).
@dweymouth pointed out that MPV has an audio-exclusive configuration that could be used.
Stretch goal would be playback of DSD (DSF files).
Currently if any setting in the config file cannot be unmarshalled, the app will use the default config, which contains no server connection. (The malformed config file is copied to a backup so manual merging can recover the existing server configs.)
If only a single setting cannot be unmarshalled, only that setting should fallback to the default config.
It seems that on Linux only, pressing ctrl or shift and then selecting tracks in a tracklist behaves as if the modifier key was held. Likely a platform-specific GLFW difference which will need to be fixed in the Fyne fork
There is still a data race present somewhere in the search field code that can deadlock the app if characters are typed in at just the right speed.
The font can be changed by setting the FYNE_FONT environment variable to point to a .ttf file, but Supersonic should directly expose a config option for setting the font.
Are you planning on adding media key support?
Also support favoriting and unfavoriting artists and songs (aka "starred" in Subsonic API)
First part of supporting playlists - implement non-modifying operations on playlists (show all, show tracklist, play)
Artist page with biography, artist image, similar artists, and discography
Sometimes a cover doesn't load and shows a blank space where the image should be. Mousing over it usually fixes this, as does refreshing the page, and it happens less once the app has local cover images cached. Probably a Fyne race condition.
First, need to decide on an i18n library, then recruit volunteers to translate!
If anyone wants to pre-volunteer to be a translator, please comment here with the language(s) you'd be able to translate,and I'll circle back once I'm ready to add i18n!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.