Skip to main content

Hi Everyone,
After 2 years of using an older package of Garageband with All Loops, it's time for me to repackage it and I'm wondering how to best do it. In the past, I created a 10Gig+ package of Garageband and all the loops using Composer (this is why it's been 2 years). The music teachers want the students to have access to all the loops and since we have Standard accounts it makes it easier if Garageband is just ready to go without Admin privileges to install the loops later.

Should I try to install Garageband using Mac Apps Store and then try to push the loops after? We don't assign the students Apple IDs so I'm not sure if I can push out Garageband directly to devices. I had tried in the past but did not seem to have success. And then where would I find the loops? They seem to be buried in various locations.

Thank you in advance for any advice and guidance.

Hi @cvangorp I spoke to multiple people at Apple and they couldn't find any scripts to give. They said they can create one but it would cost $$$. Do you have any sort of reference I can use? Or did you pay for this service?


I believe I can supply it. Let me just check first


Hi @cvangorp I spoke to multiple people at Apple and they couldn't find any scripts to give. They said they can create one but it would cost $$$. Do you have any sort of reference I can use? Or did you pay for this service?


Script is called GB loops, I got it as it was mentioned via our monthly webex meeting with Apple SE for Higher Ed and if we wanted it to let our SE know.   I had mentioned it to our Apple SE over a year ago that I was looking for something like this to replace Carl's script.


I believe I can supply it. Let me just check first


that would be awesome! 


No I dont use Composer to capture them.

First run GarageBand, and it will want to install the essential sounds, let it, but do not put in your admin password to install them. It will download them all though.

Then go to /private/var/folders. In here you will have a bunch of folders with two charecter names. What you need to do at this point is to go to the View Menu at the top of the screen and then choose View Options for that folder, and then tick to calculate all sizes. Sit back and wait for it to do so. One of those folders will show up with a few Gb in it, that is the one you want. Follow the big folder down. I think on mine it is in a folder called q_, and then a great long line of charecters, and then a folder called 0, and in there will be the one with all the stuff you want.

There will be two types of files, the pkg's are the ones you want, I usually copy them to a folder on the desktop. Dont move them, you want them to still be there to actually install.

Once you have a copy of them all, then go ahead and let GarageBand install them.

At this point I will normally reboot the Mac, I want the Admin authorisation to install to be totally gone for the next step.

Open GB again and tell it to download and install the sounds, but the same as with the essential sounds you want it to stop before it installs the files. Back to the same location and copy out the huge folder full of pkg files.

Now comes the fun bit...

I break them into folders with about 5Gb max size, and put them in a location where you can access them on all the Macs they are going to. I have a place in the var folder that I use, but you can use the tmp folder if you want. Then use Composer to make an individual pkg of each of these folders. i think I get 5 for GB and 14 for Logic. Then a post install script to install all of them.

Dont upload them all as their individual pkg files to your Jamf server - the Logic one has close to 900 pkg files in it, and I for one do not want to hunt through those looking for something to add to a policy or try to add 900 pkg's to a policy.

# Install the pkg files found in a temp location for PKG in $(ls "<path/to/files>" | grep "pkg$") do /usr/sbin/installer -pkg <path/to/files>/"$PKG" -tgt / -allowUntrusted # Then it will remove the installers rm -Rf <path/to/files>/"$PKG" done

 

I use this script to loop through the pkg files and install them and then delete them as I go. Works well, you can also use a Parameter for the Path, and then use the same script set to run after with a different parameter to provide the correct path to each of your folders.

I limit the size to the 5 Gb to make it work better. there used to be a 5Gb limit on files, I believe this is higher now. The whole thing appears to move along at that size, uploading to the server, replicationg to distribution points, sending out to the Macs for installation, and installing them.

Hope this helps


Thank you for the info! :)


No I dont use Composer to capture them.

First run GarageBand, and it will want to install the essential sounds, let it, but do not put in your admin password to install them. It will download them all though.

Then go to /private/var/folders. In here you will have a bunch of folders with two charecter names. What you need to do at this point is to go to the View Menu at the top of the screen and then choose View Options for that folder, and then tick to calculate all sizes. Sit back and wait for it to do so. One of those folders will show up with a few Gb in it, that is the one you want. Follow the big folder down. I think on mine it is in a folder called q_, and then a great long line of charecters, and then a folder called 0, and in there will be the one with all the stuff you want.

There will be two types of files, the pkg's are the ones you want, I usually copy them to a folder on the desktop. Dont move them, you want them to still be there to actually install.

Once you have a copy of them all, then go ahead and let GarageBand install them.

At this point I will normally reboot the Mac, I want the Admin authorisation to install to be totally gone for the next step.

Open GB again and tell it to download and install the sounds, but the same as with the essential sounds you want it to stop before it installs the files. Back to the same location and copy out the huge folder full of pkg files.

Now comes the fun bit...

I break them into folders with about 5Gb max size, and put them in a location where you can access them on all the Macs they are going to. I have a place in the var folder that I use, but you can use the tmp folder if you want. Then use Composer to make an individual pkg of each of these folders. i think I get 5 for GB and 14 for Logic. Then a post install script to install all of them.

Dont upload them all as their individual pkg files to your Jamf server - the Logic one has close to 900 pkg files in it, and I for one do not want to hunt through those looking for something to add to a policy or try to add 900 pkg's to a policy.

# Install the pkg files found in a temp location for PKG in $(ls "<path/to/files>" | grep "pkg$") do /usr/sbin/installer -pkg <path/to/files>/"$PKG" -tgt / -allowUntrusted # Then it will remove the installers rm -Rf <path/to/files>/"$PKG" done

 

I use this script to loop through the pkg files and install them and then delete them as I go. Works well, you can also use a Parameter for the Path, and then use the same script set to run after with a different parameter to provide the correct path to each of your folders.

I limit the size to the 5 Gb to make it work better. there used to be a 5Gb limit on files, I believe this is higher now. The whole thing appears to move along at that size, uploading to the server, replicationg to distribution points, sending out to the Macs for installation, and installing them.

Hope this helps


I have tried this and got all the files mentioned for the basic loops, but after installation GarageBand still want admin right to install the loops :/


I have tried this and got all the files mentioned for the basic loops, but after installation GarageBand still want admin right to install the loops :/


It will be the progress bar, still has the install in progress.
Open GB and then in the center at the top will be the LCD screen thing. The bottom line of this is a progress bar. Click on it and then cancel everything. It should be happy. It will only be there for the users who have tried the download without Admin permission. Anyone who has ignored it or refuesed it will have nothing there and no problems.
It is not obvious that it is a progress bar, but it is.


I believe I can supply it. Let me just check first


Were you able to find out if you could supply it?


Were you able to find out if you could supply it?


I am not able to supply it but you do need to speak with your SE from Apple and they can provide it.


Script is called GB loops, I got it as it was mentioned via our monthly webex meeting with Apple SE for Higher Ed and if we wanted it to let our SE know.   I had mentioned it to our Apple SE over a year ago that I was looking for something like this to replace Carl's script.


Thanks @cvangorp but Apple is not willing to supply the script unless you have at least enterprise support, which from my understanding gives you an SE. For those in same boat as me and not able to afford this service I have three methods. 

1. You could use the script I posted earlier in the thread but may need to be checked when there is an update to GB. 

2. This won't install the loops before hand but a standard user can click install with out having to enter creds and the same if the user attempted to install all sounds at a later date. 

/usr/bin/security authorizationdb write system.install.apple-software allow

 3. Digging into GB a bit further I found a plist which gave me all the pkg names. which I could then curl ( Little more automated than method 1) Also note its about 40GB in total so can take a while to download and install. 

# Create directory /tmp/jamf, continue if directory already exists
mkdir /tmp/jamf || :

# Change directory to /tmp/jamf
cd /tmp/jamf

#Download installer container into /tmp/jamf
# -O downloads file without changing its name

# Current Plugins and Sounds
for line in $(/usr/bin/defaults read /Applications/GarageBand.app/Contents/Resources/garageband*.plist Packages | /usr/bin/grep "DownloadName" | awk '{ print $3 }' | sed 's|["";,]||g' | grep -v "lp10_ms3_content")
do
curl -O https://audiocontentdownload.apple.com/lp10_ms3_content_2016/$line
done

#Legacy Plugins and Sounds

cd /tmp/jamf

for line in $(/usr/bin/defaults read /Applications/GarageBand.app/Contents/Resources/garageband*.plist Packages | /usr/bin/grep "DownloadName" | awk '{ print $3 }' | sed 's|["";,]||g' | grep '../lp10_ms3_content_2013' | sed 's/^.\\{3\\}//')
do
curl -O https://audiocontentdownload.apple.com/$line
done

# Run installer package with the boot drive as the destination

for pkg in $( ls /tmp/jamf/*.pkg ); do
echo "Installing $pkg"
installer -pkg $pkg -target /
done

#Clean up

rm -r /tmp/jamf


 


Thanks @cvangorp but Apple is not willing to supply the script unless you have at least enterprise support, which from my understanding gives you an SE. For those in same boat as me and not able to afford this service I have three methods. 

1. You could use the script I posted earlier in the thread but may need to be checked when there is an update to GB. 

2. This won't install the loops before hand but a standard user can click install with out having to enter creds and the same if the user attempted to install all sounds at a later date. 

/usr/bin/security authorizationdb write system.install.apple-software allow

 3. Digging into GB a bit further I found a plist which gave me all the pkg names. which I could then curl ( Little more automated than method 1) Also note its about 40GB in total so can take a while to download and install. 

# Create directory /tmp/jamf, continue if directory already exists
mkdir /tmp/jamf || :

# Change directory to /tmp/jamf
cd /tmp/jamf

#Download installer container into /tmp/jamf
# -O downloads file without changing its name

# Current Plugins and Sounds
for line in $(/usr/bin/defaults read /Applications/GarageBand.app/Contents/Resources/garageband*.plist Packages | /usr/bin/grep "DownloadName" | awk '{ print $3 }' | sed 's|["";,]||g' | grep -v "lp10_ms3_content")
do
curl -O https://audiocontentdownload.apple.com/lp10_ms3_content_2016/$line
done

#Legacy Plugins and Sounds

cd /tmp/jamf

for line in $(/usr/bin/defaults read /Applications/GarageBand.app/Contents/Resources/garageband*.plist Packages | /usr/bin/grep "DownloadName" | awk '{ print $3 }' | sed 's|["";,]||g' | grep '../lp10_ms3_content_2013' | sed 's/^.\\{3\\}//')
do
curl -O https://audiocontentdownload.apple.com/$line
done

# Run installer package with the boot drive as the destination

for pkg in $( ls /tmp/jamf/*.pkg ); do
echo "Installing $pkg"
installer -pkg $pkg -target /
done

#Clean up

rm -r /tmp/jamf


 


I don’t have enterprise support. The sales rep can refer you to your specific SE. you don’t need to pay a dime. It’s free. Just need to reach out to them. 


3rd times a charm. Got the script. 

Thanks @GabePPS and @cvangorp 


For those that weren't aware, I believe the appleLoops tool has been deprecated and there is a new tool on CarlAshley's github: 
https://github.com/carlashley/loopdown