Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Why wouldn't someone have the ability to diable it. At the moment, when you want to disable the EQ, you have to make it flat. But when you want to have it back you have to re-do all the adjustments.

Also toggling EQ for before/after comparison is quite useful sometimes.

I'm sold :D

EQBypass.png

[doublepost=1511258963][/doublepost]
Did indeed record some gifs to show the floating headers. The behavior on switching tabs. And the performance with CALayer enabled/disabled. Used giphy capture for that and uploaded it on their page. So they have 60fps and you can see the difference and smoothness better.

Demo:
https://giphy.com/gifs/xUOxeVmCaU3U9Dhi5W

CALayer disabled:
http://www.giphy.com/gifs/3o6fJ8pErz4lcAQxl6

CALayer enabled:
http://www.giphy.com/gifs/xUOxf7wGVGPVDmeYOA

As you can see, the performance difference is HUGE.
But caching the cells and improving auto layout should improve the performance even more (so I guess)

And this is the whole view structure:
View attachment 736808 Theres no tab view or whatsoever involved. Just remapping the tracks array. And only a one data model for a single track. But if you're interested in the code you could probably just check out the github.

I definitely admire your passion for learning ... it is palpable !

Your demos look great. I checked them out, and yes, I saw the performance difference in the last 2.

I would definitely like to see your solution implemented.

You might recall in my previous post where I mentioned Newton's conservation of energy law as it applies to code gunk. When you sweep dirt from one place, it often goes to another place. If you think the current model looks dirty, and you sweep the dirt from it, it will likely get transferred to another place (another layer of the app).

I'm not saying that my current solution for grouping tracks is the best; I only know that it works and works fairly well. If I were to completely revamp it, I would probably end up just moving that complexity someplace else, so I'd just rather not bother :)

I'm not saying this as a pessimist. I'm saying it from my experience as a programmer. You just cannot remove complexity. You can only move it from one place to another. And, in the end, the question becomes - where would you rather have that complexity.

I definitely encourage you to proceed with your exploration (and I greatly admire your zest), but just be aware that complexity cannot be destroyed; it can only be converted from one form to another. Hey, don't take my word for it; trust Sir Isaac Newton :p

This is ultimately a matter of personal preference ... where you like to keep your garbage bin :)
 
Last edited:
  • Like
Reactions: Tobias_Dunkel
There is a simple equation that is applicable to anything and everything you do in life. It's the "efficiency" equation. I'm sure you must have encountered this in your mech. engg courses when learning about an internal combustion engine for instance.

Well let's agree to disagree here and I say this even though I am an engineer, and YES in engineering or a profit oriented bussiness this might be true (which this right here isn't). I could explain in greater detail, but I think that would not be neccessary here :)

So, I'll probably continue working inefficient here (since I have my reasons for it), but won't bother you with that stuff anymore. So, if you want my opinion on something just ask and I'll anwser. Because I can see that me being pedantic on every little thing could be quite annoying and I'm sorry for that.

I'm playing with a side project just to get this docking crap ironed out once and for all

That's nice to hear! Hope you're doing good progress :)

The above is a genuine bug and I introduced it when I rewrote the docking logic a few days ago. I have now fixed it.

Oh, ok. So that's just a misunderstanding then. Thought this was intended behavior.

If you have any solutions in mind for how an undocked playlist can be "smartly" re-displayed after being hidden, please share them with me.

Well you probably don't wanna hear this, but having the dock buttons on the main window indeed does fix that. :rolleyes:
If you show the playlist and see its not visible (off screen), you have the docking buttons right there to make it come back to where you want it.

but just be aware that complexity cannot be destroyed

Hmm, not sure how this is meant. But turning something complex into something less complex (which is totally possible), wouldn't that mean the complexity is destroyed? I mean I can transform velocity into heat, wouldn't that mean the velocity got 'destroyed' (i wouldn't see the complexity as energy in this example).

Well also a topic that shouldn't be discussed too deep, because it get's us nowhere.

History now keeps track of a timestamp for each item and groups items in menus by that timestamp.

This is great!
 
That's nice to hear! Hope you're doing good progress :)

I've finally changed the window docking in a way that it should work more reliably, but who knows how it will perform on your system or other High Sierra systems.

If you'd like to test it and let me know, that would be great. There should be no more overlapping of windows. In response to any docking or view toggling (hide/show playlist/fx) operation, it will ensure that both windows are visible.

My new logic does not blindly perform transformations to both windows. It transforms only the main window and then "re-attaches" the playlist window with its original offset from the main window. I cannot see this logic failing no matter what, but you never know :) It works like a charm on my system, of course.

BTW, I've also updated the look n feel a bit (seek bar and other sliders are thinner and sleeker, and bypass switch buttons are smaller) ... just feels cleaner, overall.

lookNFeel.png
 
Last edited:
Feature enhancement - The Time effects unit now allows the pitch to also be altered simultaneously (this is similar to what YouTube's speed adjustment does ... alter both rate and pitch). The old behavior is also still an option (rate change without pitch shift).

Time-pitchShift.png


Also, coming soon ... Aural Player will be able to run in the status bar, and switch between status bar mode and regular mode.

statusBarMode.png
 
  • Like
Reactions: Tobias_Dunkel
I love the little fun things this app can do and will do. Hanging from the menubar is a great idea.

Thanks :D Yes, I figure that some users like to run music player apps (or apps in general) off the status bar, esp. since music players run in the background most of the time anyway, while the user is working on other apps. So, the ability to run in the status bar adds a bit of flexibility/adaptability.
 
Would it be possible to make the design more square when hanging from the menubar like that? And possible to take out of the menubar and leave on the desktop? E.g. By dragging straight from the menubar with one drag downwards and again reattached automatically when left near the menubar for 1 second or between 1,2 - 1,5 seconds?

Could Aural when appearing like that then be on the Desktop when the user clicks the coverart in Aural and appear with a 96x96 pixel coverart (96x96 could a bit higher like 128x128pixels) One just have to take account for those on lower res Macs that doesn't want coverart to be the biggest size of the standard of early Mac OS X icons.
 
Would it be possible to make the design more square when hanging from the menubar like that? And possible to take out of the menubar and leave on the desktop? E.g. By dragging straight from the menubar with one drag downwards and again reattached automatically when left near the menubar for 1 second or between 1,2 - 1,5 seconds?

Could Aural when appearing like that then be on the Desktop when the user clicks the coverart in Aural and appear with a 96x96 pixel coverart (96x96 could a bit higher like 128x128pixels) One just have to take account for those on lower res Macs that doesn't want coverart to be the biggest size of the standard of early Mac OS X icons.

Hmm...

Actually, this mini bar is free to move. I know the picture I posted made it look like it's hanging from the menubar, but it's not. It's just docked there. It can be put anywhere on the screen, and will stay on top, so you can control the player while you're working on other stuff.

This is a different concept from the status bar player I posted about previously. I'm just trying out something new.

The drag drop idea is nice. Will have to see how easily/well it can be implemented.

And yes, there will be a button to convert the mini bar (or status bar player) to a full-size player (and vice versa).
 
Hmm...

Actually, this mini bar is free to move. I know the picture I posted made it look like it's hanging from the menubar, but it's not. It's just docked there. It can be put anywhere on the screen, and will stay on top, so you can control the player while you're working on other stuff.

This is a different concept from the status bar player I posted about previously. I'm just trying out something new.

The drag drop idea is nice. Will have to see how easily/well it can be implemented.

And yes, there will be a button to convert the mini bar (or status bar player) to a full-size player (and vice versa).

If only I read the entire post you made - it clearly stated floating... sigh.. me.
 
Added a new feature: Track segment looping aka "A->B loop"

The user can define a start point and end point using either a (new) dedicated control button or keyboard shortcut (Command L), and the demarcated track segment will loop indefinitely and be rendered in red color on the seek slider bar. The loop can be removed using the same controls.

The feature is available in the latest app bundle.

Looping.gif
 
Last edited:
Hey there :D,
really should have stopped by here in the forum from time to time the last days.

I see you're still keeping up your pace, adding new features to this music player ;)
That's great to see.

For what it's worth, I really wanted to thank you for your contributions to this project and mention you on the project's main page.

https://github.com/maculateConception/aural-player#third-party-code-and-contributor-attributions

Wow, thank you so much! I feel honored to be mentioned on this project.
Means a lot to me, even though I haven't really done a lot :)

Aural Player will be able to run in the status bar

That's awesome! This really helps with keeping the player in the background and interrupting other tasks you may be doing on the macbook as short as possible. I think this is a nice idea and makes total sense.

esp. since music players run in the background most of the time anyway, while the user is working on other apps

Yeah, that's exactly how I see most people use a music player after all. Have it in the background for listening, skipping songs, play/pause, and have it in the foreground for managing the music library, playlists or the playing queue.

Working on a new concept: a "mini bar" that can be floating (i.e. always on top).

minibar-aural-png.738981

This as well looks stunning, and I will try it out for sure. Have been and still using this kind of mini player on windows with AIMP and MusicBee (MusicBee beeing my favorite music player/manager to date which also looks great since v3)

Added a new feature: Track segment looping aka "A->B loop"

Not a feature I will use very often but still nice to see something like that implemented. I can see people using it ;)

So again, you're making crazy progress, while I have to step back a little. Especially during the christmas period, where I have even less time. But I assure you I will stop by from time to time and trying my best to contribute and give (hopefully :D) helpful feedback.

As soon as I have more time to spare I will then get back into doing real stuff and improvements.
After all, my affection for this project hasn't changed ever since I discovered it. :p

I'm still thankful to you for creating Aural and taking it that far, by constantly improving it and adding new exciting stuff and especially for open sourcing it for everyone to enjoy.
[doublepost=1512720693][/doublepost]
The user can now save Equalizer (EQ) presets

View attachment 740940

Damn, while writing my post you added yet again another killer feature!
Have been looking forward to something like this. It makes the Equalizer quite a lot better :D
 
  • Like
Reactions: 0002378
Hey there :D,
really should have stopped by here in the forum from time to time the last days.

I see you're still keeping up your pace, adding new features to this music player ;)
That's great to see.

Thanks for dropping by :) I can see that you're busy (offline).

The status bar player and mini player are still being worked on (not released yet, there is some bare skeleton code just to get them to appear) ... I need to flesh out quite a few things.

I think that after I'm done with the 2 new views, I will finish up the User Guide / other docs, and then hopefully spend more time on my writing project.
 
The status bar player and mini player are still being worked on (not released yet, there is some bare skeleton code just to get them to appear) ... I need to flesh out quite a few things.

Ok, then I will check them out for sure when they are released ;)

I think that after I'm done with the 2 new views, I will finish up the User Guide / other docs, and then hopefully spend more time on my writing project.

Haha, yeah, considering all the changes you still made on this project you probably didn't spent so much time on that writing project :D I was already wondering :)
 
Ok, then I will check them out for sure when they are released ;)



Haha, yeah, considering all the changes you still made on this project you probably didn't spent so much time on that writing project :D I was already wondering :)

Yeah :D

The strange thing is ... all these new ideas just kinda struck me out of the blue ... honestly. Most of them were not on my TODOs list.

My writing project hasn't taken off as I had hoped ... but we will see.
[doublepost=1512726589][/doublepost]

Damn ! That looks like a kickass player ... its developers have been quite busy :D

If I had access to a Windows machine, I'd try it out. Looks real nice !
 
The strange thing is ... all these new ideas just kinda struck me out of the blue ... honestly. Most of them were not on my TODOs list.

When you put if that way I guess one can work on here forever..theres always SOMETHING to be changed/improved/added :D
But then again I'm a person who easily gets carried away by something I do and doesn't know when to stop or something is finished. Could be a good thing and a bad thing as well I guess.

My writing project hasn't taken off as I had hoped ... but we will see.

I'm very curious whats about to come in that regard. :p
Is this also some personal project of yours?

Damn ! That looks like a kickass player ... its developers have been quite busy :D

Haha indeed, but according to wikipedia this software had 9 years to grow, and there are probably a lot more people involved.
 
Hey, I'm curious - when you did your (amazing) research/experimentation on NSTableView, did you play around with layer-backed views ?

Hey, yeah I did extensively play around with it, not only in this exploration but even before.
That's what these two gifs are about.

CALayer disabled:
http://www.giphy.com/gifs/3o6fJ8pErz4lcAQxl6

CALayer enabled:
http://www.giphy.com/gifs/xUOxf7wGVGPVDmeYOA

As you can see, the performance difference is HUGE.

I could have done two more gifs while scrolling and it would also show the same performance difference.
Plus like i also wrote somewhere, views are redrawn and buffered differently when they are layer backed.

The thing is, in some cases this could mean worse performance also, so it's important to know, when to use wantsLayer (which is the same as checking CALayer in IB) and on which views to use it and on which views not to.

In my tableView exploration I tested about each single view and combination in terms of performance when having them layer backed or not. Like when you layer back the cell view of a table for example, performance seemed to drop a little instead of increase. This is due to the overhead a layer backed view introduces. So you wanna limit the amount of layer backed views as much as you can and only use them on views that make use of layer backed rendering, like for example the 'Outline View' in my NSTableView exploration.

If there's any more thing you want to know about layer backing, just ask. I may be able to help, since I already read through a lot of stuff regarding this topic.

Edit:
Also since regarding layer backing your version of Aural can be improved.
So you could make use of the CA Instrument tool, which i already posted to improve performance a lot.
Or I could do it as well, if you want.

Here's the link again:
http://jwilling.com/blog/debugging-core-animation-on-osx/

And here's the performance critical part of that article as a quote:
In most applications, it's not possible to remove all blending. After all, sometimes it's useful to have blending. However, by removing as much blending as possible, rendering time can be reduced.

Tips:
  • If the background is a solid color, simply set a background color on the layer that matches that of the layer behind it. This allows your layer to be opaque, but still have the same effect.
  • The amount of blending occurring is signified by the shade of overlaied red. A light red color indicates little blending. If removing blending isn't possible, try to make the red color as light as possible.

right now your Aural is 100% dark red. I could post screenshots of different applications running through CA Instruments, but i would recommend to try it on your own, since it's very quick to do.
Also this isn't useful for only Aural, but for every other app you're about to write for macOS as well.

You could run apps you already have installed on your Mac through this tool and this way figure out it's blending and layes and why the drawing performance is as good/bad as it is. For example run Finder or iTunes through it and you instantly see why they perform as good as they do in terms of the UI (with iTunes may having some confusing blending on some views, but still it has quite good performance).

Also ran my different NSTableView layer cases through that tool, and you instantly see, depending on where you set layer backing how the red color instantly changes.

Like i said, if you want I can optimize your current UI of Aural regarding the layer backing and blending if you don't want to do it yourself, or don't have the time to do so. Also, I would be curious to see about how much of a difference on performance it would actually make.
 
Last edited:
I'm very curious whats about to come in that regard. :p
Is this also some personal project of yours?

(I will respond about layer-backed views later)

Right now, I have a good amount of wine in me, so I'll answer the easier questions :D

Yes, the writing project is a personal project ... a fiction novel based loosely on my life.

I'm really a jack of all trades (and master of none) ... I also, in the past, made some electronic music (with FLStudio), and that knowledge (and love) of music partly resulted in Aural Player :) If I'm able to like and master GarageBand someday, that will become another project.

What do you do besides programming ? As a mechanical engineer, are you into cars ? Bayerische Motoren Werke ?
 
Right now, I have a good amount of wine in me, so I'll answer the easier questions :D

Hehe, enjoy your wine then :D
I'm more of a beer guy (yeah I know as a german it's probably very common :p)

Yes, the writing project is a personal project ... a fiction novel based loosely on my life.

Oh, that's nice. I suck at writing so i could never do such thing, thus i envy you ;)

I'm really a jack of all trades (and master of none) ... I also, in the past, made some electronic music (with FLStudio), and that knowledge (and love) of music partly resulted in Aural Player :) If I'm able to like and master GarageBand someday, that will become another project.

Well, I'm kind of a jack of all trades too (hmm guess we have lots of things in common ;)).

You won't believe it, but I'm also doing music in FL Studio occasionaly and doing it more and more lately since I want to get back into it (haven't had so much time and motivation during my studying period). Also I'm very looking forward to a stable mac release of FL Studio (have been following the progress since the first announcement).

I also own Logic 9, but while it's very easy to use and has some great features it didn't quite fit my workflow, so I kept using FL Studio anyway, so maybe it was money just thrown out. :D

What do you do besides programming ? As a mechanical engineer, are you into cars ? Bayerische Motoren Werke ?

Phew, kind of do quite a lot of things besides programming (lot of stuff related to pc).
Like
- CAD Modeling / Class A Surfacing
- Graphic / UI Design (also made a band logo and cd cover for a friend's band) using Affinity Designer
- Sim Racing (enjoy it a lot latetly since i got a racing seat and a wheel, and someday wanna go on the racetrack with a friend of mine, who already has real world racing experience)
- well like i already mentioned making music
- playing the piano and learning abore about music theory
- and a lot of other stuff

and yes I'm kind of into cars but maybe not as much as some other guys out there. After all my major field of study was automotive engineering, so I'm more into the technical kind of stuff. Constructing, calculating, optimizing...

Yeah BMW is a great car brand, but so are a lot of other brands too.
I also have a big interest in electromobility. :)

So, for how long did you make music? And why did you quit doing it?

PS: also edited my last post, so you may check that out as well
 
  • Like
Reactions: 0002378
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.