AudioKit / AudioKitUI

Controls and Visualization for AudioKit apps
MIT License
187 stars 52 forks source link

MIDITrackView could be implemented using SwiftUI canvas #47

Open wtholliday opened 2 years ago

wtholliday commented 2 years ago

See https://developer.apple.com/documentation/swiftui/canvas

My machine beachballs for a few seconds when loading the cookbook example for MIDITrackView. After profiling, it seems this is due to it creating a CALayer for each note.

emurray2 commented 2 years ago

See https://developer.apple.com/documentation/swiftui/canvas

My machine beachballs for a few seconds when loading the cookbook example for MIDITrackView. After profiling, it seems this is due to it creating a CALayer for each note.

Thanks for the feedback. I did notice that and was wondering why. I'll take a look at this soon and fix it when I can (school is busy now). But I also have an updated version of the code on my GitHub page as I mentioned. It doesn't include the canvas implementation, but feel free to adjust the code if you like.

emurray2 commented 2 years ago

@wtholliday I saw the awesome piano roll you made. Is it still separate from what the midi track view does? If so, I can try to look at your code and match the style a bit to address this issue. I already did peek a bit, and now I understand what you mean by abstracting the model away from the view.

emurray2 commented 1 year ago

See https://developer.apple.com/documentation/swiftui/canvas

My machine beachballs for a few seconds when loading the cookbook example for MIDITrackView. After profiling, it seems this is due to it creating a CALayer for each note.

@wtholliday Do you remember what tool you used to profile this?

wtholliday commented 1 year ago

@emurray2 Time Profiler in Instruments