Closed cesss closed 2 years ago
Yes, you are exactly right ... since the preset's settings are copied over, the EQ unit would need a flag to keep track of whether the settings have been modified after applying a preset. If you feel this would be useful, I could try to implement it.
As for indicating the current preset, I see only one feasible way ... to "check" the menu item corresponding to the "current preset", i.e. the menu item will have a check mark next to it. There is no room elsewhere in the EQ UI to display the current preset so that is the only way. You would then have to click the presets button, and the menu would show the list of presets with the current one checked. Of course, when settings are "custom", none of the presets would be selected, implying a custom state.
Yes, a tick in the popup menu is what most players do, I believe. I think it would be useful (in my case, during the years I used Vox I usually checked often the current presets I was using, so, I think it's a useful feature).
But give it a thought. Maybe it does or doesn't fit with your current design. Don't implement it if you think it will break your design concept.
On the subject of presets, you might want to know that there is a feature to remember effects settings per track. Sound > Remember settings for this track.
The settings (all sound settings, including volume and all effects, except AUs) will be remembered and re-applied the next time you play the track. You can do this for any / every track.
Sounds like it might be useful to you.
I will try to implement your "current preset" this weekend if I find the energy.
I didn't know about the remember settings feature. Thanks for telling!
Hi @cesss , sorry I haven't yet worked on this. I thought about how this feature should be implemented and I have an idea of what is to be done, but the thing is - if I do this for the EQ, I will want to do it for all the other effects as well, for the sake of consistency ... the user may expect it to work everywhere if it works in the EQ. Also, because of the other feature I mentioned to you earlier (remember settings), it will involve a little more work to ensure that when settings are recalled and re-applied, the "current preset" state is also remembered and re-applied.
The only way to implement all of this doesn't seem clean ... it will involve setting that pointer / reference in every single function that modifies an effects unit's settings. Furthermore, there is the issue of presets that may get deleted / renamed over time, so persistence of that state is also non-trivial. I will see if there is a better way to do it, but at the moment, I am out of ideas.
Also, I have been busy with other personal things, so that has also put off this work. But I just wanted to update you anyway.
No worries at all!! I fully understand. I've been there. Many years ago I wrote a 3D app that lacked the concept of "current camera". Each 3D view had its own camera. You could store the current values of the camera and give it a name, and later you could restore the named camera back to the view. But the implementation was just copy from view to storage, and copy from storage to view. This was very convenient for many uses, but, sometimes, I found it limiting not to be able to set the "current camera": when you wanted to know what was the name of the camera you were using, or when you wanted to slightly adjust one of the cameras, you had to use the copy from storage and copy to storage paradigm, which was not comfortable for those uses.
You are basically in the same situation. and I honestly don't know what would be the best design choice for your app: this really depends on how you want it to be.
By the way, I've been using Aural almost everyday now! I love it!! π
By the way, I've been using Aural almost everyday now! I love it!! π
Cool ! How is AUMatrixReverb working out for you ?
Cool ! How is AUMatrixReverb working out for you ?
It works perfect!! Found no problems at all. Your engine is also very good. By the way, just wondering, are you setting the maximum quality for AUMatrixReverb, aren't you? I ask because in Vox it had a setting for the rendering quality, and the default it was always maximum quality, so I guess you are doing the same.
BTW, just had a quick thought that maybe could help: How about having in each "load preset" menu pane an entry for the last selected preset? I mean, something like with the "History" menu, where you can see the songs you last added. Or maybe you could add a category for "last chosen effects" in the "History" menu, but I'm not sure it fits there...
I'm not sure about the rendering quality ... didn't know that setting existed.
Hmm, that's an interesting idea. I'll play around with the idea when I return to developing Aural again :)
EDIT - I just saw the rendering quality setting ... I need to add that option for all AUs, I guess. Will look into it.
Hey @cesss, I've added a new render quality setting in v3.11.0 for all effects units (including AU plug-ins). Check it out.
I will try to do the presets feature next.
@cesss , are you ok with me removing the 10-band EQ and only keeping the 15-band EQ ? It will greatly simplify keeping track of EQ presets and the 15-band EQ gives more control anyway ... it will make it easier to implement this feature.
I have already removed the 10-band EQ from v4.0, so it will go away eventually.
Hi, @kartik-venugopal !! Thanks a lot!! Well, actually, I rarely adjust the EQ manually, but just use presets, so, if you keep the presets and they sound like the current presets, it will be fine for me. And, in the rare occasions when I adjust it manually, I guess 15-band can be fine...
Cool, I've removed the 10-band EQ. And, I've mostly implemented the current presets feature. There are a few cases left to implement (remember settings feature), and I have another improvement in mind.
A new release is coming soon ... probably in the next 2 - 3 days :)
Oh, that's great!! I think your player is perfect!
BTW, do you build it in some way that prevents the Mac going to sleep? (I'm not saying it as a bug, but as a feature, because these days, when I want to leave my Macs calculating stuff without the risk of them going to sleep, I leave Aural open, and it works --yes, I know sleeping should be adjusted in the Mac Settings, but, in my MBP it worked perfectly in High Sierra, but in Monterrey they made the energy settings quite unfriendly and hard to tune...)
In case you consider it a bug, please don't fix it π€£ (or at least make it a configurable setting π
Hmm, not sure about the sleep thing ... let me check on that and get back to you. There might be some build setting.
BTW, thanks for all the feature suggestions. You seem to have good ideas.
Ok, I won't "fix" it :)
Just installed your latest release right now. The quality setting is a nice addition!
I tend to believe that your player can become quite popular if more people learn that it exists π
BTW, a suggestion I could make, not for now, but for the long term, is to try to isolate all the Apple-dependent code in certain limited files, so that you can jump to other OSs if needed. I'm saying this from experience: In the past I wrote software for Silicon Graphics workstations, and I was really in love with those (big and colorful) machines. IRIX was my dream OS. I couldn't imagine that IRIX could abandon the market. But it did, and I was lucky that I followed the practice of encapsulating all the SGI-specific stuff in some files... this made the port to OSX, Linux, and Windows much easier than if all my source required SGI headers to build. Just an advice... Apple seems to be solid, but who knows, and, besides, some of their decisions are questionable to say the least...
Yes, I'm sure more people would love it if they knew about it ... but how to get more exposure ? π
You make a very good point about isolating Apple-dependent code. In fact, I did consider the grandiose ambition of having Aural on both Windows and Linux too since there are Swift toolchains for both at this point ... and someday maybe even Android. But the reality is ... I just couldn't possibly have the time to develop for all those systems.
Nevertheless, it is a good idea to separate platform-agnostic code from platform-dependent code. I have also considered moving out all the core player stuff (including FFmpeg) to its own separate framework.
There is so much cleanup that could be done at this point, and I have quite a few feature requests and my own ideas to implement for v4.0 ... I struggle to prioritize π
BTW, if you are interested in previewing what I've done with v4.0 so far, let me know ... I can share a build with you ... of course, most features are only partially implemented ... but at least you can get a taste of what's coming ... and you can play around with it and give me feedback.
Let me know if you're interested.
This feature has been released in v3.12.0. Enjoy π
That's great!!!! Thanks a lot!! I'm gonna download now. I'll tell you how it works later this weekend π
BTW, can 4.0 run side by side with 3.x? Do they share preference files, caches, etc, or are they safe from interference? Do they use different folders for caches, perhaps?
Cool, thanks. Yes, v4.0 will put its persistent state in a new folder called aural4. However, the preferences settings (Aural > Preferences) might overlap (not sure). Unless you have some important Preferences settings on v3, running v4 should be fine.
That said, I run them both simultaneously all the time without issues.
Here you go: Aural4.app.zip
Got it! Thanks a lot!! I'll tell you how it goes!
Tried your violet color scheme π Pretty cool !!! ... it's a nice change from my usual color schemes (all black / gray-based). I might include it in the next release as a built-in scheme, if it's okay with you ;)
Sure! I'm glad you liked it! Feel free to include it! It's the scheme I use. Maybe I'll create more schemes in the future.
I'm good at finding crashes π ...got a crash in Aural4.
Easy to reproduce: Start the app, then Aural>Preferences>Sound>[crash]
Here's the crash report:
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: Aural [974]
Path: /Users/USER/*/Aural4.app/Contents/MacOS/Aural
Identifier: com.kv.Aural
Version: 4.0.0 (4.0.0)
Code Type: X86-64 (Native)
Parent Process: launchd [1]
User ID: 501
Date/Time: 2022-10-29 12:00:50.3341 +0200
OS Version: macOS 12.6 (21G115)
Report Version: 12
Bridge OS Version: 6.6 (19P6067)
Anonymous UUID: 4FF62CF3-286B-A276-BA0A-B5EBF6A450EE
Time Awake Since Boot: 1500 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace SIGNAL, Code 4 Illegal instruction: 4
Terminating Process: exc handler [974]
Application Specific Backtrace 0:
0 CoreFoundation 0x00007ff813f49773 __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007ff813ca9bc3 objc_exception_throw + 48
2 CoreFoundation 0x00007ff813f495da +[NSException exceptionWithName:reason:userInfo:] + 0
3 AppKit 0x00007ff816c4398b -[NSBezierPath controlPointBounds] + 72
4 AppKit 0x00007ff816c437fb -[NSBezierPath bounds] + 93
5 AppKit 0x00007ff81725cc10 -[NSGradient drawInBezierPath:angle:] + 54
6 Aural 0x00000001070df36b Aural + 1610603
7 Aural 0x00000001070df898 Aural + 1611928
8 AppKit 0x00007ff816bbeb5f -[NSSliderCell drawInteriorWithFrame:inView:] + 643
9 AppKit 0x00007ff816bbe7e7 -[NSSliderCell drawWithFrame:inView:] + 103
10 AppKit 0x00007ff816a61e77 -[NSControl drawRect:] + 228
11 AppKit 0x00007ff816b6f1d7 -[NSSlider drawRect:] + 80
12 AppKit 0x00007ff816a61c80 _NSViewDrawRect + 121
13 AppKit 0x00007ff81717dccd -[NSView _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:] + 1828
14 AppKit 0x00007ff816a61391 -[NSView(NSLayerKitGlue) _drawViewBackingLayer:inContext:drawingHandler:] + 747
15 AppKit 0x00007ff816a60fd0 -[NSView(NSLayerKitGlue) drawLayer:inContext:] + 290
16 QuartzCore 0x00007ff81af9ea7b CABackingStoreUpdate_ + 594
17 QuartzCore 0x00007ff81b0029d9 ___ZN2CA5Layer8display_Ev_block_invoke + 53
18 QuartzCore 0x00007ff81af9daa1 -[CALayer _display] + 2379
19 AppKit 0x00007ff816a60e05 -[_NSBackingLayer display] + 462
20 AppKit 0x00007ff8169d63ad -[_NSViewBackingLayer display] + 554
21 QuartzCore 0x00007ff81af9ca07 _ZN2CA5Layer17display_if_neededEPNS_11TransactionE + 873
22 QuartzCore 0x00007ff81b0f42aa _ZN2CA7Context18commit_transactionEPNS_11TransactionEdPd + 640
23 QuartzCore 0x00007ff81af7de6d _ZN2CA11Transaction6commitEv + 777
24 AppKit 0x00007ff816a721d1 __62+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayLink]_block_invoke + 285
25 AppKit 0x00007ff8171b9f5c ___NSRunLoopObserverCreateWithHandler_block_invoke + 41
26 CoreFoundation 0x00007ff813ecd520 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
27 CoreFoundation 0x00007ff813ecd3b2 __CFRunLoopDoObservers + 543
28 CoreFoundation 0x00007ff813ecc844 __CFRunLoopRun + 840
29 CoreFoundation 0x00007ff813ecbe3c CFRunLoopRunSpecific + 562
30 HIToolbox 0x00007ff81cb7b5e6 RunCurrentEventLoopInMode + 292
31 HIToolbox 0x00007ff81cb7b213 ReceiveNextEventCommon + 283
32 HIToolbox 0x00007ff81cb7b0e5 _BlockUntilNextEventMatchingListInModeWithFilter + 70
33 AppKit 0x00007ff816905fad _DPSNextEvent + 927
34 AppKit 0x00007ff81690466a -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1394
35 AppKit 0x00007ff8168f6d19 -[NSApplication run] + 586
36 AppKit 0x00007ff8168cac97 NSApplicationMain + 817
37 Aural 0x0000000106f5b899 Aural + 22681
38 dyld 0x000000010ba5752e start + 462
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 AppKit 0x7ff816c82e5a -[NSApplication _crashOnException:] + 313
1 AppKit 0x7ff816a7240d __62+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayLink]_block_invoke + 857
2 AppKit 0x7ff8171b9f5c ___NSRunLoopObserverCreateWithHandler_block_invoke + 41
3 CoreFoundation 0x7ff813ecd520 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
4 CoreFoundation 0x7ff813ecd3b2 __CFRunLoopDoObservers + 543
5 CoreFoundation 0x7ff813ecc844 __CFRunLoopRun + 840
6 CoreFoundation 0x7ff813ecbe3c CFRunLoopRunSpecific + 562
7 HIToolbox 0x7ff81cb7b5e6 RunCurrentEventLoopInMode + 292
8 HIToolbox 0x7ff81cb7b213 ReceiveNextEventCommon + 283
9 HIToolbox 0x7ff81cb7b0e5 _BlockUntilNextEventMatchingListInModeWithFilter + 70
10 AppKit 0x7ff816905fad _DPSNextEvent + 927
11 AppKit 0x7ff81690466a -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1394
12 AppKit 0x7ff8168f6d19 -[NSApplication run] + 586
13 AppKit 0x7ff8168cac97 NSApplicationMain + 817
14 Aural 0x106f5b899 0x106f56000 + 22681
15 dyld 0x10ba5752e start + 462
Thread 1:
0 libsystem_pthread.dylib 0x7ff813e02f48 start_wqthread + 0
Thread 2:
0 libsystem_pthread.dylib 0x7ff813e02f48 start_wqthread + 0
Thread 3:
0 libsystem_pthread.dylib 0x7ff813e02f48 start_wqthread + 0
Thread 4:: AMCP Logging Spool
0 libsystem_kernel.dylib 0x7ff813dca9b6 semaphore_wait_trap + 10
1 caulk 0x7ff81c9072e6 caulk::mach::semaphore::wait_or_error() + 16
2 caulk 0x7ff81c8ef148 caulk::concurrent::details::worker_thread::run() + 36
3 caulk 0x7ff81c8eee0c void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*> > >(void*) + 41
4 libsystem_pthread.dylib 0x7ff813e074e1 _pthread_start + 125
5 libsystem_pthread.dylib 0x7ff813e02f6b thread_start + 15
Thread 5:: com.apple.audio.toolbox.AUScheduledParameterRefresher
0 libsystem_kernel.dylib 0x7ff813dca9b6 semaphore_wait_trap + 10
1 caulk 0x7ff81c9072e6 caulk::mach::semaphore::wait_or_error() + 16
2 caulk 0x7ff81c8ef148 caulk::concurrent::details::worker_thread::run() + 36
3 caulk 0x7ff81c8eee0c void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*> > >(void*) + 41
4 libsystem_pthread.dylib 0x7ff813e074e1 _pthread_start + 125
5 libsystem_pthread.dylib 0x7ff813e02f6b thread_start + 15
Thread 6:
0 libsystem_kernel.dylib 0x7ff813dca9b6 semaphore_wait_trap + 10
1 caulk 0x7ff81c9072e6 caulk::mach::semaphore::wait_or_error() + 16
2 caulk 0x7ff81c8ef148 caulk::concurrent::details::worker_thread::run() + 36
3 caulk 0x7ff81c8eee0c void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*> > >(void*) + 41
4 libsystem_pthread.dylib 0x7ff813e074e1 _pthread_start + 125
5 libsystem_pthread.dylib 0x7ff813e02f6b thread_start + 15
Thread 7:: com.apple.audio.IOThread.client
0 libsystem_kernel.dylib 0x7ff813dca97a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x7ff813dcace8 mach_msg + 56
2 CoreAudio 0x7ff815a4dc07 HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 111
3 CoreAudio 0x7ff8158d8729 HALC_ProxyIOContext::IOWorkLoop() + 3931
4 CoreAudio 0x7ff8158d7205 invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int) + 63
5 CoreAudio 0x7ff815aa3616 HALB_IOThread::Entry(void*) + 72
6 libsystem_pthread.dylib 0x7ff813e074e1 _pthread_start + 125
7 libsystem_pthread.dylib 0x7ff813e02f6b thread_start + 15
Thread 8:
0 libsystem_pthread.dylib 0x7ff813e02f48 start_wqthread + 0
Thread 9:
0 libsystem_pthread.dylib 0x7ff813e02f48 start_wqthread + 0
Thread 10:
0 libsystem_pthread.dylib 0x7ff813e02f48 start_wqthread + 0
Thread 11:: com.apple.NSEventThread
0 libsystem_kernel.dylib 0x7ff813dca97a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x7ff813dcace8 mach_msg + 56
2 CoreFoundation 0x7ff813ece36d __CFRunLoopServiceMachPort + 319
3 CoreFoundation 0x7ff813ecc9f8 __CFRunLoopRun + 1276
4 CoreFoundation 0x7ff813ecbe3c CFRunLoopRunSpecific + 562
5 AppKit 0x7ff816a739ce _NSEventThread + 132
6 libsystem_pthread.dylib 0x7ff813e074e1 _pthread_start + 125
7 libsystem_pthread.dylib 0x7ff813e02f6b thread_start + 15
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x00007f8a1f050800 rbx: 0x00007ff813c9a400 rcx: 0xb3834989fd940023 rdx: 0x0000000000000e01
rdi: 0x00007ff7b8fa7c10 rsi: 0x0000000000000f10 rbp: 0x00007ff7b8fa80a0 rsp: 0x00007ff7b8fa8070
r8: 0x0000000000000110 r9: 0x00007ff7b8fa7650 r10: 0x0000000000000110 r11: 0x00007f8a1f051710
r12: 0x00007f8a1e810050 r13: 0x00006000030b86e0 r14: 0x0000600000f50990 r15: 0x00007ff82e225210
rip: 0x00007ff816c82e5a rfl: 0x0000000000010202 cr2: 0x00007ff856c11628
Logical CPU: 4
Error Code: 0x00000000
Trap Number: 6
Thread 0 instruction stream:
00 e8 f2 fe 7c 00 48 8b-35 69 44 9b 3e 48 8b 1d ....|.H.5iD.>H..
5a 0d 08 3d 4c 89 f7 ff-d3 48 8d 3d 8e 31 0b 3d Z..=L....H.=.1.=
48 89 c6 31 c0 e8 d1 5a-e3 ff 4c 89 f7 4c 89 fe H..1...Z..L..L..
ff d3 48 8b 35 7d 86 9b-3e 48 8d 15 6e 21 0b 3d ..H.5}..>H..n!.=
48 89 c7 ff 15 25 0d 08-3d 48 8b 35 66 3e 9b 3e H....%..=H.5f>.>
48 89 c7 ff 15 15 0d 08-3d 48 89 05 be 37 a1 3e H.......=H...7.>
[0f]0b 48 8d 3d 25 bd 72-3e 48 8d 35 0e 16 0a 3d ..H.=%.r>H.5...= <==
e8 15 00 7d 00 e9 cb fe-ff ff 48 8d 3d 0d bd 72 ...}......H.=..r
3e 48 8d 35 f6 15 0a 3d-e8 fd ff 7c 00 e9 19 ff >H.5...=...|....
ff ff 48 89 c7 e8 c8 03-7d 00 31 ff 31 f6 31 c0 ..H.....}.1.1.1.
e8 56 5a e3 ff e8 e8 03-7d 00 0f 0b 48 89 c3 e8 .VZ.....}...H...
d2 03 7d 00 48 89 df e8-22 fd 7c 00 e8 c1 04 7d ..}.H...".|....}
Binary Images:
0x7ff8168c7000 - 0x7ff817756fff com.apple.AppKit (6.9) <06015263-62ac-3b08-a298-dc835c18452a> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x7ff813e4e000 - 0x7ff814350fff com.apple.CoreFoundation (6.9) <93c48919-68af-367e-9a67-db4159bc962c> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x7ff81cb4d000 - 0x7ff81ce40fff com.apple.HIToolbox (2.1.1) <06fdecd6-9f69-397b-b1e2-a8226c0ba7ed> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x106f56000 - 0x107405fff com.kv.Aural (4.0.0) <445b2f6f-c563-3673-abc5-35c4debf659f> /Users/USER/*/Aural4.app/Contents/MacOS/Aural
0x10ba52000 - 0x10babdfff dyld (*) <71febccd-d9dc-3599-9971-2b3407c588a8> /usr/lib/dyld
0x7ff813e01000 - 0x7ff813e0cfff libsystem_pthread.dylib (*) <b5454e27-e8c7-3fdb-b77f-714f1e82e70b> /usr/lib/system/libsystem_pthread.dylib
0x7ff813dc9000 - 0x7ff813e00fff libsystem_kernel.dylib (*) <8cc28466-fd2f-3c80-9834-9525b7beac19> /usr/lib/system/libsystem_kernel.dylib
0x7ff81c8ed000 - 0x7ff81c90efff com.apple.audio.caulk (1.0) <8e7b3d95-1d47-3f17-9512-c5fcc30792c2> /System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk
0x7ff81571e000 - 0x7ff815e53fff com.apple.audio.CoreAudio (5.0) <9be547d0-0af1-3470-afde-2ac4cd34441e> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
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=1.0G resident=0K(0%) swapped_out_or_unallocated=1.0G(100%)
Writable regions: Total=1.9G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.9G(100%)
VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Accelerate framework 384K 3
Activity Tracing 256K 1
CG backing stores 2528K 4
CG image 4044K 46
CG raster data 36K 1
ColorSync 224K 27
CoreAnimation 4116K 79
CoreGraphics 12K 2
CoreUI image data 2056K 15
Foundation 16K 1
Kernel Alloc Once 8K 1
MALLOC 336.2M 61
MALLOC guard page 48K 10
MALLOC_MEDIUM (reserved) 1.2G 10 reserved VM address space (unallocated)
MALLOC_NANO (reserved) 384.0M 1 reserved VM address space (unallocated)
ObjC additional data 15K 1
STACK GUARD 56.0M 12
Stack 13.6M 12
VM_ALLOCATE 564K 25
VM_ALLOCATE (reserved) 32K 1 reserved VM address space (unallocated)
__CTF 756 1
__DATA 26.8M 448
__DATA_CONST 23.9M 287
__DATA_DIRTY 1288K 166
__FONT_DATA 4K 1
__LINKEDIT 646.1M 14
__TEXT 408.0M 461
__UNICODE 592K 1
dyld private memory 1024K 1
mapped file 166.0M 46
shared memory 772K 15
=========== ======= =======
TOTAL 3.2G 1754
TOTAL, minus reserved VM space 1.7G 1754
-----------
Full Report
-----------
{"app_name":"Aural","timestamp":"2022-10-29 12:00:50.00 +0200","app_version":"4.0.0","slice_uuid":"445b2f6f-c563-3673-abc5-35c4debf659f","build_version":"4.0.0","platform":1,"bundleID":"com.kv.Aural","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS 12.6 (21G115)","incident_id":"56792CD7-64A4-4AF9-8284-505B1292DA4E","name":"Aural"}
{
"uptime" : 1500,
"procLaunch" : "2022-10-29 12:00:42.9846 +0200",
"procRole" : "Foreground",
"version" : 2,
"userID" : 501,
"deployVersion" : 210,
"modelCode" : "MacBookPro15,1",
"procStartAbsTime" : 1549486591432,
"coalitionID" : 836,
"osVersion" : {
"train" : "macOS 12.6",
"build" : "21G115",
"releaseType" : "User"
},
"captureTime" : "2022-10-29 12:00:50.3341 +0200",
"incident" : "56792CD7-64A4-4AF9-8284-505B1292DA4E",
"bug_type" : "309",
"pid" : 974,
"procExitAbsTime" : 1556835428010,
"cpuType" : "X86-64",
"procName" : "Aural",
"procPath" : "\/Users\/USER\/*\/Aural4.app\/Contents\/MacOS\/Aural",
"bundleInfo" : {"CFBundleShortVersionString":"4.0.0","CFBundleVersion":"4.0.0","CFBundleIdentifier":"com.kv.Aural"},
"storeInfo" : {"deviceIdentifierForVendor":"39FD0C01-0F4D-5B5A-8C9E-D957F9D8EB10","thirdParty":true},
"parentProc" : "launchd",
"parentPid" : 1,
"coalitionName" : "com.kv.Aural",
"crashReporterKey" : "4FF62CF3-286B-A276-BA0A-B5EBF6A450EE",
"bridgeVersion" : {"build":"19P6067","train":"6.6"},
"sip" : "enabled",
"isCorpse" : 1,
"exception" : {"codes":"0x0000000000000001, 0x0000000000000000","rawCodes":[1,0],"type":"EXC_BAD_INSTRUCTION","signal":"SIGILL"},
"termination" : {"flags":0,"code":4,"namespace":"SIGNAL","indicator":"Illegal instruction: 4","byProc":"exc handler","byPid":974},
"asiBacktraces" : ["0 CoreFoundation 0x00007ff813f49773 __exceptionPreprocess + 242\n1 libobjc.A.dylib 0x00007ff813ca9bc3 objc_exception_throw + 48\n2 CoreFoundation 0x00007ff813f495da +[NSException exceptionWithName:reason:userInfo:] + 0\n3 AppKit 0x00007ff816c4398b -[NSBezierPath controlPointBounds] + 72\n4 AppKit 0x00007ff816c437fb -[NSBezierPath bounds] + 93\n5 AppKit 0x00007ff81725cc10 -[NSGradient drawInBezierPath:angle:] + 54\n6 Aural 0x00000001070df36b Aural + 1610603\n7 Aural 0x00000001070df898 Aural + 1611928\n8 AppKit 0x00007ff816bbeb5f -[NSSliderCell drawInteriorWithFrame:inView:] + 643\n9 AppKit 0x00007ff816bbe7e7 -[NSSliderCell drawWithFrame:inView:] + 103\n10 AppKit 0x00007ff816a61e77 -[NSControl drawRect:] + 228\n11 AppKit 0x00007ff816b6f1d7 -[NSSlider drawRect:] + 80\n12 AppKit 0x00007ff816a61c80 _NSViewDrawRect + 121\n13 AppKit 0x00007ff81717dccd -[NSView _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:] + 1828\n14 AppKit 0x00007ff816a61391 -[NSView(NSLayerKitGlue) _drawViewBackingLayer:inContext:drawingHandler:] + 747\n15 AppKit 0x00007ff816a60fd0 -[NSView(NSLayerKitGlue) drawLayer:inContext:] + 290\n16 QuartzCore 0x00007ff81af9ea7b CABackingStoreUpdate_ + 594\n17 QuartzCore 0x00007ff81b0029d9 ___ZN2CA5Layer8display_Ev_block_invoke + 53\n18 QuartzCore 0x00007ff81af9daa1 -[CALayer _display] + 2379\n19 AppKit 0x00007ff816a60e05 -[_NSBackingLayer display] + 462\n20 AppKit 0x00007ff8169d63ad -[_NSViewBackingLayer display] + 554\n21 QuartzCore 0x00007ff81af9ca07 _ZN2CA5Layer17display_if_neededEPNS_11TransactionE + 873\n22 QuartzCore 0x00007ff81b0f42aa _ZN2CA7Context18commit_transactionEPNS_11TransactionEdPd + 640\n23 QuartzCore 0x00007ff81af7de6d _ZN2CA11Transaction6commitEv + 777\n24 AppKit 0x00007ff816a721d1 __62+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayLink]_block_invoke + 285\n25 AppKit 0x00007ff8171b9f5c ___NSRunLoopObserverCreateWithHandler_block_invoke + 41\n26 CoreFoundation 0x00007ff813ecd520 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23\n27 CoreFoundation 0x00007ff813ecd3b2 __CFRunLoopDoObservers + 543\n28 CoreFoundation 0x00007ff813ecc844 __CFRunLoopRun + 840\n29 CoreFoundation 0x00007ff813ecbe3c CFRunLoopRunSpecific + 562\n30 HIToolbox 0x00007ff81cb7b5e6 RunCurrentEventLoopInMode + 292\n31 HIToolbox 0x00007ff81cb7b213 ReceiveNextEventCommon + 283\n32 HIToolbox 0x00007ff81cb7b0e5 _BlockUntilNextEventMatchingListInModeWithFilter + 70\n33 AppKit 0x00007ff816905fad _DPSNextEvent + 927\n34 AppKit 0x00007ff81690466a -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1394\n35 AppKit 0x00007ff8168f6d19 -[NSApplication run] + 586\n36 AppKit 0x00007ff8168cac97 NSApplicationMain + 817\n37 Aural 0x0000000106f5b899 Aural + 22681\n38 dyld 0x000000010ba5752e start + 462"],
"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":16888,"instructionState":{"instructionStream":{"bytes":[0,232,242,254,124,0,72,139,53,105,68,155,62,72,139,29,90,13,8,61,76,137,247,255,211,72,141,61,142,49,11,61,72,137,198,49,192,232,209,90,227,255,76,137,247,76,137,254,255,211,72,139,53,125,134,155,62,72,141,21,110,33,11,61,72,137,199,255,21,37,13,8,61,72,139,53,102,62,155,62,72,137,199,255,21,21,13,8,61,72,137,5,190,55,161,62,15,11,72,141,61,37,189,114,62,72,141,53,14,22,10,61,232,21,0,125,0,233,203,254,255,255,72,141,61,13,189,114,62,72,141,53,246,21,10,61,232,253,255,124,0,233,25,255,255,255,72,137,199,232,200,3,125,0,49,255,49,246,49,192,232,86,90,227,255,232,232,3,125,0,15,11,72,137,195,232,210,3,125,0,72,137,223,232,34,253,124,0,232,193,4,125],"offset":96}},"threadState":{"r13":{"value":105553167353568},"rax":{"value":140231202637824},"rflags":{"value":66050},"cpu":{"value":4},"r14":{"value":105553132325264},"rsi":{"value":3856},"r8":{"value":272},"cr2":{"value":140704584111656},"rdx":{"value":3585},"r10":{"value":272},"r9":{"value":140701937071696},"r15":{"value":140703902618128},"rbx":{"value":140703460598784,"symbolLocation":0,"symbol":"objc_msgSend"},"trap":{"value":6},"err":{"value":0},"r11":{"value":140231202641680},"rip":{"value":140703510834778,"matchesCrashFrame":1},"rbp":{"value":140701937074336},"rsp":{"value":140701937074288},"r12":{"value":140231193985104},"rcx":{"value":12935263411751878691},"flavor":"x86_THREAD_STATE","rdi":{"value":140701937073168}},"queue":"com.apple.main-thread","frames":[{"imageOffset":3915354,"symbol":"-[NSApplication _crashOnException:]","symbolLocation":313,"imageIndex":0},{"imageOffset":1750029,"symbol":"__62+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayLink]_block_invoke","symbolLocation":857,"imageIndex":0},{"imageOffset":9383772,"symbol":"___NSRunLoopObserverCreateWithHandler_block_invoke","symbolLocation":41,"imageIndex":0},{"imageOffset":521504,"symbol":"__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__","symbolLocation":23,"imageIndex":1},{"imageOffset":521138,"symbol":"__CFRunLoopDoObservers","symbolLocation":543,"imageIndex":1},{"imageOffset":518212,"symbol":"__CFRunLoopRun","symbolLocation":840,"imageIndex":1},{"imageOffset":515644,"symbol":"CFRunLoopRunSpecific","symbolLocation":562,"imageIndex":1},{"imageOffset":189926,"symbol":"RunCurrentEventLoopInMode","symbolLocation":292,"imageIndex":2},{"imageOffset":188947,"symbol":"ReceiveNextEventCommon","symbolLocation":283,"imageIndex":2},{"imageOffset":188645,"symbol":"_BlockUntilNextEventMatchingListInModeWithFilter","symbolLocation":70,"imageIndex":2},{"imageOffset":257965,"symbol":"_DPSNextEvent","symbolLocation":927,"imageIndex":0},{"imageOffset":251498,"symbol":"-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]","symbolLocation":1394,"imageIndex":0},{"imageOffset":195865,"symbol":"-[NSApplication run]","symbolLocation":586,"imageIndex":0},{"imageOffset":15511,"symbol":"NSApplicationMain","symbolLocation":817,"imageIndex":0},{"imageOffset":22681,"imageIndex":3},{"imageOffset":21806,"symbol":"start","symbolLocation":462,"imageIndex":4}]},{"id":16901,"frames":[{"imageOffset":8008,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}]},{"id":16902,"frames":[{"imageOffset":8008,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}]},{"id":16912,"frames":[{"imageOffset":8008,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}]},{"id":16942,"name":"AMCP Logging Spool","frames":[{"imageOffset":6582,"symbol":"semaphore_wait_trap","symbolLocation":10,"imageIndex":6},{"imageOffset":107238,"symbol":"caulk::mach::semaphore::wait_or_error()","symbolLocation":16,"imageIndex":7},{"imageOffset":8520,"symbol":"caulk::concurrent::details::worker_thread::run()","symbolLocation":36,"imageIndex":7},{"imageOffset":7692,"symbol":"void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*> > >(void*)","symbolLocation":41,"imageIndex":7},{"imageOffset":25825,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":5},{"imageOffset":8043,"symbol":"thread_start","symbolLocation":15,"imageIndex":5}]},{"id":16976,"name":"com.apple.audio.toolbox.AUScheduledParameterRefresher","frames":[{"imageOffset":6582,"symbol":"semaphore_wait_trap","symbolLocation":10,"imageIndex":6},{"imageOffset":107238,"symbol":"caulk::mach::semaphore::wait_or_error()","symbolLocation":16,"imageIndex":7},{"imageOffset":8520,"symbol":"caulk::concurrent::details::worker_thread::run()","symbolLocation":36,"imageIndex":7},{"imageOffset":7692,"symbol":"void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*> > >(void*)","symbolLocation":41,"imageIndex":7},{"imageOffset":25825,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":5},{"imageOffset":8043,"symbol":"thread_start","symbolLocation":15,"imageIndex":5}]},{"id":16977,"frames":[{"imageOffset":6582,"symbol":"semaphore_wait_trap","symbolLocation":10,"imageIndex":6},{"imageOffset":107238,"symbol":"caulk::mach::semaphore::wait_or_error()","symbolLocation":16,"imageIndex":7},{"imageOffset":8520,"symbol":"caulk::concurrent::details::worker_thread::run()","symbolLocation":36,"imageIndex":7},{"imageOffset":7692,"symbol":"void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*> > >(void*)","symbolLocation":41,"imageIndex":7},{"imageOffset":25825,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":5},{"imageOffset":8043,"symbol":"thread_start","symbolLocation":15,"imageIndex":5}]},{"id":16978,"name":"com.apple.audio.IOThread.client","frames":[{"imageOffset":6522,"symbol":"mach_msg_trap","symbolLocation":10,"imageIndex":6},{"imageOffset":7400,"symbol":"mach_msg","symbolLocation":56,"imageIndex":6},{"imageOffset":3341319,"symbol":"HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int)","symbolLocation":111,"imageIndex":8},{"imageOffset":1812265,"symbol":"HALC_ProxyIOContext::IOWorkLoop()","symbolLocation":3931,"imageIndex":8},{"imageOffset":1806853,"symbol":"invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int)","symbolLocation":63,"imageIndex":8},{"imageOffset":3692054,"symbol":"HALB_IOThread::Entry(void*)","symbolLocation":72,"imageIndex":8},{"imageOffset":25825,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":5},{"imageOffset":8043,"symbol":"thread_start","symbolLocation":15,"imageIndex":5}]},{"id":16999,"frames":[{"imageOffset":8008,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}]},{"id":17001,"frames":[{"imageOffset":8008,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}]},{"id":17002,"frames":[{"imageOffset":8008,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}]},{"id":17010,"name":"com.apple.NSEventThread","frames":[{"imageOffset":6522,"symbol":"mach_msg_trap","symbolLocation":10,"imageIndex":6},{"imageOffset":7400,"symbol":"mach_msg","symbolLocation":56,"imageIndex":6},{"imageOffset":525165,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":319,"imageIndex":1},{"imageOffset":518648,"symbol":"__CFRunLoopRun","symbolLocation":1276,"imageIndex":1},{"imageOffset":515644,"symbol":"CFRunLoopRunSpecific","symbolLocation":562,"imageIndex":1},{"imageOffset":1755598,"symbol":"_NSEventThread","symbolLocation":132,"imageIndex":0},{"imageOffset":25825,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":5},{"imageOffset":8043,"symbol":"thread_start","symbolLocation":15,"imageIndex":5}]}],
"usedImages" : [
{
"source" : "P",
"arch" : "x86_64",
"base" : 140703506919424,
"CFBundleShortVersionString" : "6.9",
"CFBundleIdentifier" : "com.apple.AppKit",
"size" : 15269888,
"uuid" : "06015263-62ac-3b08-a298-dc835c18452a",
"path" : "\/System\/Library\/Frameworks\/AppKit.framework\/Versions\/C\/AppKit",
"name" : "AppKit",
"CFBundleVersion" : "2113.60.148"
},
{
"source" : "P",
"arch" : "x86_64h",
"base" : 140703462383616,
"CFBundleShortVersionString" : "6.9",
"CFBundleIdentifier" : "com.apple.CoreFoundation",
"size" : 5255168,
"uuid" : "93c48919-68af-367e-9a67-db4159bc962c",
"path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/Versions\/A\/CoreFoundation",
"name" : "CoreFoundation",
"CFBundleVersion" : "1866"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 140703610228736,
"CFBundleShortVersionString" : "2.1.1",
"CFBundleIdentifier" : "com.apple.HIToolbox",
"size" : 3096576,
"uuid" : "06fdecd6-9f69-397b-b1e2-a8226c0ba7ed",
"path" : "\/System\/Library\/Frameworks\/Carbon.framework\/Versions\/A\/Frameworks\/HIToolbox.framework\/Versions\/A\/HIToolbox",
"name" : "HIToolbox"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4411711488,
"CFBundleShortVersionString" : "4.0.0",
"CFBundleIdentifier" : "com.kv.Aural",
"size" : 4915200,
"uuid" : "445b2f6f-c563-3673-abc5-35c4debf659f",
"path" : "\/Users\/USER\/*\/Aural4.app\/Contents\/MacOS\/Aural",
"name" : "Aural",
"CFBundleVersion" : "4.0.0"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4490338304,
"size" : 442368,
"uuid" : "71febccd-d9dc-3599-9971-2b3407c588a8",
"path" : "\/usr\/lib\/dyld",
"name" : "dyld"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 140703462068224,
"size" : 49152,
"uuid" : "b5454e27-e8c7-3fdb-b77f-714f1e82e70b",
"path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
"name" : "libsystem_pthread.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 140703461838848,
"size" : 229376,
"uuid" : "8cc28466-fd2f-3c80-9834-9525b7beac19",
"path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
"name" : "libsystem_kernel.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 140703607738368,
"CFBundleShortVersionString" : "1.0",
"CFBundleIdentifier" : "com.apple.audio.caulk",
"size" : 139264,
"uuid" : "8e7b3d95-1d47-3f17-9512-c5fcc30792c2",
"path" : "\/System\/Library\/PrivateFrameworks\/caulk.framework\/Versions\/A\/caulk",
"name" : "caulk"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 140703488401408,
"CFBundleShortVersionString" : "5.0",
"CFBundleIdentifier" : "com.apple.audio.CoreAudio",
"size" : 7561216,
"uuid" : "9be547d0-0af1-3470-afde-2ac4cd34441e",
"path" : "\/System\/Library\/Frameworks\/CoreAudio.framework\/Versions\/A\/CoreAudio",
"name" : "CoreAudio",
"CFBundleVersion" : "5.0"
}
],
"sharedCache" : {
"base" : 140703458811904,
"size" : 19331678208,
"uuid" : "73669942-bd8a-3e40-951f-7fbe07b51cb8"
},
"vmSummary" : "ReadOnly portion of Libraries: Total=1.0G resident=0K(0%) swapped_out_or_unallocated=1.0G(100%)\nWritable regions: Total=1.9G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.9G(100%)\n\n VIRTUAL REGION \nREGION TYPE SIZE COUNT (non-coalesced) \n=========== ======= ======= \nAccelerate framework 384K 3 \nActivity Tracing 256K 1 \nCG backing stores 2528K 4 \nCG image 4044K 46 \nCG raster data 36K 1 \nColorSync 224K 27 \nCoreAnimation 4116K 79 \nCoreGraphics 12K 2 \nCoreUI image data 2056K 15 \nFoundation 16K 1 \nKernel Alloc Once 8K 1 \nMALLOC 336.2M 61 \nMALLOC guard page 48K 10 \nMALLOC_MEDIUM (reserved) 1.2G 10 reserved VM address space (unallocated)\nMALLOC_NANO (reserved) 384.0M 1 reserved VM address space (unallocated)\nObjC additional data 15K 1 \nSTACK GUARD 56.0M 12 \nStack 13.6M 12 \nVM_ALLOCATE 564K 25 \nVM_ALLOCATE (reserved) 32K 1 reserved VM address space (unallocated)\n__CTF 756 1 \n__DATA 26.8M 448 \n__DATA_CONST 23.9M 287 \n__DATA_DIRTY 1288K 166 \n__FONT_DATA 4K 1 \n__LINKEDIT 646.1M 14 \n__TEXT 408.0M 461 \n__UNICODE 592K 1 \ndyld private memory 1024K 1 \nmapped file 166.0M 46 \nshared memory 772K 15 \n=========== ======= ======= \nTOTAL 3.2G 1754 \nTOTAL, minus reserved VM space 1.7G 1754 \n",
"legacyInfo" : {
"threadTriggered" : {
"queue" : "com.apple.main-thread"
}
},
"trialInfo" : {
"rollouts" : [
{
"rolloutId" : "5ffde50ce2aacd000d47a95f",
"factorPackIds" : {
},
"deploymentId" : 240000211
},
{
"rolloutId" : "61af99aeda72d16a4beb7756",
"factorPackIds" : {
},
"deploymentId" : 240000396
}
],
"experiments" : [
]
}
}
Model: MacBookPro15,1, BootROM 1731.140.2.0.0 (iBridge: 19.16.16067.0.0,0), 6 processors, 6-Core Intel Core i9, 2,9 GHz, 32 GB, SMC
Graphics: Intel UHD Graphics 630, Intel UHD Graphics 630, Built-In
Display: Color LCD, 2880 x 1800 Retina, Main, MirrorOff, Online
Graphics: Radeon Pro 560X, Radeon Pro 560X, PCIe, 4 GB
Memory Module: BANK 0/ChannelA-DIMM0, 16 GB, DDR4, 2400 MHz, Micron, 16ATS2G64HZ-2G6B1
Memory Module: BANK 2/ChannelB-DIMM0, 16 GB, DDR4, 2400 MHz, Micron, 16ATS2G64HZ-2G6B1
AirPort: spairport_wireless_card_type_wifi (0x14E4, 0x7BF), wl0: Jul 12 2021 19:26:30 version 9.30.464.0.32.5.76 FWID 01-45ccefcd
Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports
USB Device: Elements 25A2
USB Device: USB31Bus
USB Device: T2Bus
USB Device: Touch Bar Backlight
USB Device: Touch Bar Display
USB Device: Apple Internal Keyboard / Trackpad
USB Device: Headset
USB Device: Ambient Light Sensor
USB Device: FaceTime HD Camera (Built-in)
USB Device: Apple T2 Controller
Thunderbolt Bus: MacBook Pro, Apple Inc., 47.5
Thunderbolt Bus: MacBook Pro, Apple Inc., 47.5
Thanks dude, but v4.0 is in its infancy so expect random crashes, bugs, and unimplemented features ... I wouldn't worry about it π
Thanks though π
EDIT - I just wanted to give you a sense of the new UI - more compact than v3.x, with new icons and styling. New player text layout, etc. Don't worry about bugs, crashes, etc.
Ok! Yes, I was trying to look at the differences, by clicking everywhere from curiosity. But curiosity killed the cat π€£
LOL. What did you think of the new cat π ? How do you like the new UI ? Is it better smaller than v3 ? Also, what do you think of the list view in the Play Queue ? The view that shows the cover art, artist, album, etc.
Yes, I liked the smaller UI, and I think that the new UI is a step in the right direction. I also liked the vector-graphics style of the play buttons. I think I prefer this new small UI. But, however, is it possible/easy to change the window size programmatically? I ask this, because sometimes a bigger UI is welcome. I mean, Aural has a Font scheme setting. If that Font scheme was not only the font shape, but also the size, I think it would be a nice addition: If you want a tiny UI, you can have it (even smaller than the one you are offering now). And if you've been coding a lot lately and your eyes are tired and you wish to enjoy a big font, you can have it too. I believe that would be the best of both worlds.
But maybe the icons could be a problem there: do you use bitmap icons, or vector icons? (if they are vector, like SVG or something, no problem, you could resize them programmatically, when the user changes the font size).
FWIW: Vox UI was even smaller than Aural4 (I mean the good-old-days Vox player, not the current one).
The new playlist is gorgeous, great work!! π
BTW, have you ever experienced that some tracks downloaded from YouTube have some kind of noise pattern in the very high frequencies? I noticed it today for the first time, when listening to "Cillo - Breathe" (with Aural 3). It's weird because I've listened to it a lot of times and never realized. If I pump up the 10K and the 16K in the EQ, I find that noise pattern. If I lower both bands to the minimum, it disappears.
I thought it could be because of the new 15band EQ, but it's not.
In fact I realized it even happens when listening to it in YouTube: https://www.youtube.com/watch?v=6bILMMBRNno (listen from 3:45 to 3:55 and pay attention to the high frequencies during what should be silence).
I'm not sure if that's a problem of the YouTube compression, or because that track was poorly recorded.
I mean, Aural has a Font scheme setting. If that Font scheme was not only the font shape, but also the size, I think it would be a nice addition: If you want a tiny UI, you can have it (even smaller than the one you are offering now). And if you've been coding a lot lately and your eyes are tired and you wish to enjoy a big font, you can have it too. I believe that would be the best of both worlds.
Hey, thanks for all your great feedback. I just wanted to reply to this point - the font size can absolutely be changed to anything you like, in 0.5 pt increments.
In the Font Scheme > "Customize" dialog, see the last 3 tabs. You can increase / decrease size for individual UI elements using the numerical stepper controls. See the image below, where the playlist track text size control is highlighted:
But, however, is it possible/easy to change the window size programmatically? I ask this, because sometimes a bigger UI is welcome. I mean, Aural has a Font scheme setting. If that Font scheme was not only the font shape, but also the size, I think it would be a nice addition: If you want a tiny UI, you can have it (even smaller than the one you are offering now). And if you've been coding a lot lately and your eyes are tired and you wish to enjoy a big font, you can have it too. I believe that would be the best of both worlds.
But maybe the icons could be a problem there: do you use bitmap icons, or vector icons? (if they are vector, like SVG or something, no problem, you could resize them programmatically, when the user changes the font size).
Hmm ... changing the window size programmatically is definitely possible (that is how window layouts currently work - they change the playlist window size programmatically). However, until now, the main window (player) and effects window have been at a constant size. If you want to change the window size (main / effects windows) as a user, it is possible, but would be immensely complicated to implement because of AutoLayout constraints ... they are a nightmare to deal with. But it is definitely worth an experiment. I could simply make the window size variable right now and see what happens if I resize those 2 windows.
One alternative to changing the window size to any arbitrary size would be to offer a few preset window sizes: for example, tiny, normal, large. What do you think ?
I use bitmap images - PNG. They can be resized (via AutoLayout constraints) ... but this will be trickier than resizing the other UI elements because the other elements don't have fixed sizes ... currently, the icons have fixed sizes (eg. 30x20). Worth an experiment !
BTW, have you ever experienced that some tracks downloaded from YouTube have some kind of noise pattern in the very high frequencies? I noticed it today for the first time, when listening to "Cillo - Breathe" (with Aural 3). It's weird because I've listened to it a lot of times and never realized. If I pump up the 10K and the 16K in the EQ, I find that noise pattern. If I lower both bands to the minimum, it disappears.
I thought it could be because of the new 15band EQ, but it's not.
In fact I realized it even happens when listening to it in YouTube: https://www.youtube.com/watch?v=6bILMMBRNno (listen from 3:45 to 3:55 and pay attention to the high frequencies during what should be silence).
I'm not sure if that's a problem of the YouTube compression, or because that track was poorly recorded.
Hey, that is interesting, but I have never noticed it. Of course, I have noticed variable quality among different tracks downloaded from YouTube (and I have downloaded a lot). But, I just assumed that it has to do with the quality of the original file that was uploaded and perhaps some transcoding / compression / resampling that YouTube does on its end - I don't know what it does.
BTW, the 15 band EQ is not a new thing. It was always there, but the 10 band EQ was removed leaving only the 15 band EQ now.
Don't worry about resizing it. It was just a suggestion in case it was easy. There are some UI toolkits in which you don't size the UI manually, but just tell the toolkit to put some widgets, and the toolkit will make the window or frame big enough for fitting all the widgets inside. If you change the font size, the widgets change their size, and so does the window. All this resizing is done by these toolkits, no need of any effort from the developer. So, I was making the suggestion just in case you were using a toolkit with that behaviour.
Hey, just found you implemented a widget for the touchbar! That's cool. I really think the touchbar came at the wrong time (ie: at the same time Apple did huge mistakes, like removal of the physical Esc key, removal of magsafe, removal of useful ports, etc), and I think that made the touchbar take a blame it didn't deserve. Had it be introduced at a better time for Apple, it would have been more successful.
Hey, where did you find the widget ? I don't remember implementing anything for the TouchBar ! Can you attach an image or something showing me what you mean ?
EDIT - If you're talking about the play/pause, forward/backward controls, those come for free when your app becomes the "Now Playing" media app on macOS and Aural does integrate with Control Center to become the "Now Playing" app. But, the TouchBar functionality is just a bonus that you get when you implement that. I didn't do anything specifically for the TouchBar.
Well, it's complete mistery, @kartik-venugopal , because now I'm not able to get the touchbar control anymore! I tried several things, and nothing. And yes, the current song does show in the Control Center, but there's nothing in the touchbar no matter if Aural has the focus or not. I tried to give the focus to Finder, to web browsers, to Aural... nothing.
What I saw last weekend was the Aural icon next to Esc in the touchbar, which was quite cool to see, and then, to the right of it the play buttons and I believe that the tracking position too. No idea why it showed last Sunday, and not anymore...
Yesterday I said I had no idea of new feature requests, but, while playing music this morning, I realized that it would be desirable to know what's the Equalizer preset that you are using.
In other effects maybe is not that important, but in the case of the Equalizer, when some track sounds specially good, I tend to ask myself "hey! what's the current equalizer preset?".
I realize this might not be easy to implement, because the way the current UI works is that when the user selects a preset, it's just copied to the current settings (which the user can tweak afterwards), and so there's no notion of "current preset". So, this implies that there should be a flag that is enabled when the user tweaks the settings after selecting a preset. When that flag is Off, the GUI could display the last preset chosen. But when it's On, you are using a custom setting, not a preset.
I'm not sure if this would be a clean design for the current implementation. It's likely that such flag is not the most elegant solution, but, anyway, I leave it as a thought.
In C, I would implement this as a
struct
for the current Equalizer state, that has not only the values for the eq bands, but also a pointer to a preset. When the user selects a preset, its bands values are copied to the Equalizer state, and the pointer is set to point to the preset. When the user tweaks a value, the pointer becomesNULL
. So, the behaviour of the program would be: if the pointer is non-NULL, then ignore the Equalizer state, and just use the preset (and display the name of the preset in the GUI). OTOH, if the pointer is NULL, then use the Equalizer state, and display "custom" as the name of the preset in the GUI.As I said, this might require a design consideration, maybe it doesn't fit well in your coding paradigm.