The No.1 Website for Pro Audio
 Search This Thread  Search This Forum  Search Reviews  Search Gear Database  Search Gear for sale  Search Gearslutz Go Advanced
CPU Leak in Garage Band - Yes, CPU Leak
Old 5th February 2016
  #1
Here for the gear
 

CPU Leak in Garage Band - Yes, CPU Leak

I am a newbie in this very impressive forum, and Garage Band may be beneath you. But I have discovered something interesting (and alarming) about it, and I thought there might be some informed feedback here.

I am an EWI player (for 10 days, now. Lifelong bassoonist tired of double reed challenges etc.) using GB as my primary environment and liking it a lot. Nice workflow for me - load up a MIDI file of a piece I like, assign voices I like, tweak the levels to get a nice mix, mute the part I want to play, and I'm practicing with an ensemble. A lot more fun. And I can record my playing as MIDI, edit out the mistakes, and mix down an audio file. Cool. You all eat this for breakfast, but I have limited experience with DAW and, until 10 days ago, zero experience with GB. And I just stumbled across some strange behavior in GB I would like to bring to the community's attention.

I have been showing off my EWI and what it can do to a few friends. All of my instruments are plugins, of course: The Aria set that comes with the EWI USB, Wallander Wivi Band, SWAM, and a few others. (Wallander & SWAM very impressive, btw). I had an idea for a simple way to demo different voices without a lot of hacking around to switch. I set up a GB project with 18 tracks empty, assigning one of my instruments to each. What happens to the CPU is quite strange. This is on a Macbook Air, top end for mid-2013: 1.7GHz Core i7, 8GM RAM. OSX 10.10.5.

Keeping Activity Monitor open, I launch GB. It settles down after startup activity to around 17% CPU. I start playing the first track, and CPU comes up from a background ~17% to ~35%. Then I leave track 1 and start playing track 2. Simple down-arrow or mouse click and a new instrument - nice. Wow, it worked! CPU comes up about 7%. Then I start playing track 3. Still works. CPU comes up again, 8-10%. And so on. 8 tracks is the limit. At track 9, GB is running over 90%. The track plays, but it's full of pops and clicks. Quite unusable. For clarity - I am always playing one and only one track at any time.

In other words, once a track has been played on, its CPU overhead is permanent. And - this instance of GB has been sitting for 2=3 hours now, completely inactive, and GB CPU is still over 85%, almost the peak it was hitting two hours ago.

This maintains even if I unplug the EWI USB. I've heard the EWI USB is overly verbose with MIDI messages. But that is not the problem.

One usually thinks of a leak as a memory problem. But this really looks like a CPU leak. What the heck is GB doing as it sits with its empty tracks and does nothing?

I guess this is not typical usage. But it seems to me it suggests a serious problem in GB.

Has anyone seen anything like this? Any thoughts? Thanks in advance for your comments and suggestions. I have been reading a lot in this forum, and it's an amazing community. I am an amateur musician, but I was a software professional for many years, and I appreciate hearing from pros.
Old 5th February 2016
  #2
Gear Maniac
 
Mike.r's Avatar
Are these 9 tracks open from the start or do you add them one by one? If you simply mute one track or solo the "active" one the others are still getting processed.
Old 5th February 2016
  #3
Lives for gear
Quote:
Originally Posted by skowarsky View Post
Has anyone seen anything like this? Any thoughts? Thanks in advance for your comments and suggestions. I have been reading a lot in this forum, and it's an amazing community. I am an amateur musician, but I was a software professional for many years, and I appreciate hearing from pros.
Install Reaper on your laptop. Set up your session in Reaper instead of garage band. It might take you a bit to figure out the routing, but Reaper is more efficient with the cpu.
Old 5th February 2016
  #4
Here for the gear
 

Mike - the GB project has 18 empty tracks in it. Each track has a different AU plugin. The tracks have no content. There is nothing there to process. The EWI USB is a MIDI controller. When I select a track and play the EWI, GB responds to the MIDI input and plays the instrument assigned to that track. I don't have to solo the track or mute any other tracks. One selected track, one EWI sending MIDI to the selected track, one audio output. Not recording anything. Everything is fine for the first 7 tracks, but CPU usage creeps up and stays up, as described, until the sound is degraded.

Philter - thank you for the suggestion of Reaper. I have Reaper on 60-day trial, which is great of them. I was put off by the UI, not so much the complexity, but the redundancy. Perhaps it's worth another look.
Old 5th February 2016
  #5
Here for the gear
 

Reaper Performance

Here's what I observed about Reaper behavior.

I added 11 different instrument tracks to Reaper. It was easy.

Reaper's default behavior is different from GB. When I use the EWI, GB plays only the track I select. Reaper plays all the tracks. And Reaper CPU consumption grows with each new track as I add it. 11 tracks got it a bit over 60% doing nothing, and over 80% when playing. At least Reaper drops back to 60% when you are not playing. No leak. And 80% for playing 11 voices, not one like GB, seems better.

I tried muting all tracks except the one I was playing. That had little effect. It processes the muted tracks. Even though the Preferences-->Audio option that says "Do not process muted tracks" is checked.

Turning them off without muting them also had little effect.

But, mute them AND turn them, and bingo!

With all but one track muted and off, Reaper CPU while playing is a mere 16%. Solo overrides mute. So to move quickly from one track to another is four mouse clicks. Current track - turn off solo and track. Next track - turn on solo and track. Now Reaper is at 16% when playing one track. It doesn't seem to matter how many tracks in the project.

I had given up on Reaper. Now I'm reconsidering. Thanks again.
Old 5th February 2016
  #6
Lives for gear
Quote:
Originally Posted by skowarsky View Post
Here's what I observed about Reaper behavior.

I added 11 different instrument tracks to Reaper. It was easy.

Reaper's default behavior is different from GB. When I use the EWI, GB plays only the track I select. Reaper plays all the tracks. And Reaper CPU consumption grows with each new track as I add it. 11 tracks got it a bit over 60% doing nothing, and over 80% when playing. At least Reaper drops back to 60% when you are not playing. No leak. And 80% for playing 11 voices, not one like GB, seems better.

I tried muting all tracks except the one I was playing. That had little effect. It processes the muted tracks. Even though the Preferences-->Audio option that says "Do not process muted tracks" is checked.

Turning them off without muting them also had little effect.

But, mute them AND turn them, and bingo!

With all but one track muted and off, Reaper CPU while playing is a mere 16%. Solo overrides mute. So to move quickly from one track to another is four mouse clicks. Current track - turn off solo and track. Next track - turn on solo and track. Now Reaper is at 16% when playing one track. It doesn't seem to matter how many tracks in the project.

I had given up on Reaper. Now I'm reconsidering. Thanks again.
You can use MIDI routing to make it control one instrument at a time without all the muting. In general terms you would assign a unique MIDI input to each instrument channel, and then record through a discrete channel with the MIDI output set to the input of the corresponding instrument. In specific terms, that's above my pay grade.
Old 5th February 2016
  #7
Lives for gear
 

Quote:
Originally Posted by skowarsky View Post
I am a newbie in this very impressive forum, and Garage Band may be beneath you. But I have discovered something interesting (and alarming) about it, and I thought there might be some informed feedback here.

I am an EWI player (for 10 days, now. Lifelong bassoonist tired of double reed challenges etc.) using GB as my primary environment and liking it a lot. Nice workflow for me - load up a MIDI file of a piece I like, assign voices I like, tweak the levels to get a nice mix, mute the part I want to play, and I'm practicing with an ensemble. A lot more fun. And I can record my playing as MIDI, edit out the mistakes, and mix down an audio file. Cool. You all eat this for breakfast, but I have limited experience with DAW and, until 10 days ago, zero experience with GB. And I just stumbled across some strange behavior in GB I would like to bring to the community's attention.

I have been showing off my EWI and what it can do to a few friends. All of my instruments are plugins, of course: The Aria set that comes with the EWI USB, Wallander Wivi Band, SWAM, and a few others. (Wallander & SWAM very impressive, btw). I had an idea for a simple way to demo different voices without a lot of hacking around to switch. I set up a GB project with 18 tracks empty, assigning one of my instruments to each. What happens to the CPU is quite strange. This is on a Macbook Air, top end for mid-2013: 1.7GHz Core i7, 8GM RAM. OSX 10.10.5.

Keeping Activity Monitor open, I launch GB. It settles down after startup activity to around 17% CPU. I start playing the first track, and CPU comes up from a background ~17% to ~35%. Then I leave track 1 and start playing track 2. Simple down-arrow or mouse click and a new instrument - nice. Wow, it worked! CPU comes up about 7%. Then I start playing track 3. Still works. CPU comes up again, 8-10%. And so on. 8 tracks is the limit. At track 9, GB is running over 90%. The track plays, but it's full of pops and clicks. Quite unusable. For clarity - I am always playing one and only one track at any time.

In other words, once a track has been played on, its CPU overhead is permanent. And - this instance of GB has been sitting for 2=3 hours now, completely inactive, and GB CPU is still over 85%, almost the peak it was hitting two hours ago.

This maintains even if I unplug the EWI USB. I've heard the EWI USB is overly verbose with MIDI messages. But that is not the problem.

One usually thinks of a leak as a memory problem. But this really looks like a CPU leak. What the heck is GB doing as it sits with its empty tracks and does nothing?

I guess this is not typical usage. But it seems to me it suggests a serious problem in GB.

Has anyone seen anything like this? Any thoughts? Thanks in advance for your comments and suggestions. I have been reading a lot in this forum, and it's an amazing community. I am an amateur musician, but I was a software professional for many years, and I appreciate hearing from pros.
No such thing as a CPU leak.
What you're experiencing is high CPU usage but that's no fault of your sequencer, that's either a AU Effect or a AU Instrument you're using.

This video shows CPU usage even when the MIDI data isn't playing to the loaded AU Instrument as well as the project stopped, it still has CPU usage.
In Logic Pro X I show using Automation in the appropriate places to apply the "Insert Bypass". Now you'll see the CPU is optimized.



Now look at this video from SFLogicNinja, notice his CPU activity even when the project is completely stopped. If he used "Insert Bypass" he can stop all the CPU activity even when the project is stopped.



When you "Insert Bypass" you're turning off the AU Effect or AU Instrumen leaving just Logic Pro X running but notice that Logic Pro X doesn't use any CPU usage which shows the offending CPU hog(s) are the AU Effect or in my YouTube video, the AU Instrument that is running the CPU.
Old 12th February 2016
  #8
Here for the gear
 

Valli, most important, thanks for the effort to explain all that you explained in your post. I learned a lot, and I am sure it will be useful to me as I continue on this journey.

However, I want to add a couple of points. I'm using Garage Band, not Logic, which does not have a Bypass function AFAIK. The bypass function would not address my issue, because all the tracks in my project are always empty. They exist only to be selected for play-thru to demonstrate the instrument. It's not a piece of music. I just want to be able to select from a collection of instruments quickly and easily, at any time.

I know there is no such thing as a "CPU leak." The term of art I am drawing on is "memory leak." But I think the analogy applies. In a memory leak situation, the resource memory is being consumed uselessly. Similarly here, the CPU resource is being consumed uselessly.

I think you have shown convincingly that it is the AU plugins that are consuming the CPU, not GB itself, and that any DAW would have such a problem. But if the DAW (e.g. Garage Band) would let me turn off a track as easily as I can mute it, or truly not allow a muted track to consume CPU resources, that would be much better, I think.

Thanks again for taking an interest and explaining.
Old 12th February 2016
  #9
Lives for gear
 

Quote:
Originally Posted by skowarsky View Post
Valli, most important, thanks for the effort to explain all that you explained in your post. I learned a lot, and I am sure it will be useful to me as I continue on this journey.

However, I want to add a couple of points. I'm using Garage Band, not Logic, which does not have a Bypass function AFAIK. The bypass function would not address my issue, because all the tracks in my project are always empty. They exist only to be selected for play-thru to demonstrate the instrument. It's not a piece of music. I just want to be able to select from a collection of instruments quickly and easily, at any time.

I know there is no such thing as a "CPU leak." The term of art I am drawing on is "memory leak." But I think the analogy applies. In a memory leak situation, the resource memory is being consumed uselessly. Similarly here, the CPU resource is being consumed uselessly.

I think you have shown convincingly that it is the AU plugins that are consuming the CPU, not GB itself, and that any DAW would have such a problem. But if the DAW (e.g. Garage Band) would let me turn off a track as easily as I can mute it, or truly not allow a muted track to consume CPU resources, that would be much better, I think.

Thanks again for taking an interest and explaining.
Just curious, can you post a simple GarageBand project that shows what you're describing.
I'm curious to see this now.

The only reason I mentioned Logic is to emphasis the point of "Insert Bypass" to disable the AU Effects/Insertuments to show how to disable CPU usage which you now understand.
Old 17th February 2016
  #10
Here for the gear
 

Garage Band Project Example

Valli,

Thanks for taking an interest.

I would be happy to, but this forum will not allow me to attach a GB project. It is not a supported file type. Apparently it's not even a file. As I am learning when I try, a GB project seems to be not one file but rather consist of about 10 different files. When I drag it on to the page, all files but one have a red X saying "You can't attach this type of file." Maybe I could email it to you.

The project consists of about 18 empty tracks, each of which contains a different virtual instrument set up as an AU Plugin. If you do not own these virtual instruments from Sample Modeling (SWAM Double Reeds), Wallander (WIVI Band), EWI/Aria/Garritan via Sforzando, and REAKTOR/Silverwood, your system might choke when you tried to open the project.

I think you could quickly and easily replicate my "experiment" as described in the original post with virtual instruments you do have and any midi controller.

But now this is weird. I just opened the project to look at it. It immediately went up to 87% CPU and even one instrument cannot be played without horrible distortion. In the past, I thought that closing the project sort of reinitialized everything, and I could at least work my way up to playing 8 of them. Now it seems to remember where it was the last time I closed it and resumes with the same level of CPU usage. So the thing is completely useless.

Steve K
Attached Thumbnails
CPU Leak in Garage Band - Yes, CPU Leak-windowimage.jpg  
Old 19th February 2016
  #11
Lives for gear
 

Quote:
Originally Posted by skowarsky View Post
Valli,

Thanks for taking an interest.

I would be happy to, but this forum will not allow me to attach a GB project. It is not a supported file type. Apparently it's not even a file. As I am learning when I try, a GB project seems to be not one file but rather consist of about 10 different files. When I drag it on to the page, all files but one have a red X saying "You can't attach this type of file." Maybe I could email it to you.

The project consists of about 18 empty tracks, each of which contains a different virtual instrument set up as an AU Plugin. If you do not own these virtual instruments from Sample Modeling (SWAM Double Reeds), Wallander (WIVI Band), EWI/Aria/Garritan via Sforzando, and REAKTOR/Silverwood, your system might choke when you tried to open the project.

I think you could quickly and easily replicate my "experiment" as described in the original post with virtual instruments you do have and any midi controller.

But now this is weird. I just opened the project to look at it. It immediately went up to 87% CPU and even one instrument cannot be played without horrible distortion. In the past, I thought that closing the project sort of reinitialized everything, and I could at least work my way up to playing 8 of them. Now it seems to remember where it was the last time I closed it and resumes with the same level of CPU usage. So the thing is completely useless.

Steve K
Just right click over your Garageband project and select Compress "your garageband project" to compress the whole directory.

Then get a free account with dropbox or a service like that.
Top Mentioned Products
Topic:
Post Reply

Welcome to the Gearslutz Pro Audio Community!

Registration benefits include:
  • The ability to reply to and create new discussions
  • Access to members-only giveaways & competitions
  • Interact with VIP industry experts in our guest Q&As
  • Access to members-only sub forum discussions
  • Access to members-only Chat Room
  • Get INSTANT ACCESS to the world's best private pro audio Classifieds for only USD $20/year
  • Promote your eBay auctions and Reverb.com listings for free
  • Remove this message!
You need an account to post a reply. Create a username and password below and an account will be created and your post entered.


 
 
Slide to join now Processing…
Thread Tools
Search this Thread
Search this Thread:

Advanced Search
Forum Jump
Forum Jump