Coder Social home page Coder Social logo

dweymouth / supersonic Goto Github PK

View Code? Open in Web Editor NEW
696.0 10.0 29.0 76.68 MB

A lightweight and full-featured cross-platform desktop client for self-hosted music servers

License: GNU General Public License v3.0

Go 97.81% Shell 0.35% Makefile 0.27% C 0.53% Objective-C 0.69% Inno Setup 0.35%
airsonic audio-player desktop music navidrome subsonic subsonic-client cross-platform gonic go

supersonic's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

supersonic's Issues

Offer release builds for Apple Silicon (M1, M2) Macs

Crashes immediately on attempting to launch, running on Mac OS Ventura 13.2

Translated Report (Full Report Below)

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


Full Report

{"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.

Plugin system

Plugin system using some scripting language like JS, Python or Lua.

My usecase for this would be discord presence support.

Fails to launch on Arch

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

Now Playing page can have stale track data

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.

Improve scrolling smoothness on albums page

Some ideas:

  • batch load larger amounts of albums at once to reduce scroll interruption
  • don't start loading cover right away, so if the user is scrolling very fast, the individual cells won't be trying to render images at all as they scroll by
  • create a pool of goroutines for image loading so we don't spawn dozens of goroutines at once as user scrolls

Support reordering of the play queue in Now Playing page

#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.

Wayland Support

Hello. Just found your project and it looks nice!

Do you have any plans on supporting Wayland?

Thanks.

Improve handling of invalid config file

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.

Searching occasionally hangs the app

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.

Add config option to set application font

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.

Occasionally, cover images do not load properly

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.

Translations

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.