Can the macOS startup sound/chime/ bong be changed on a MacBook Pro?

Solution 1:

You technically can't...

But there are a few things you can do instead.

Using a few techniques I picked up on the interwebs, I've figured out a way to both

  1. Disable the boot chime (seriously, I don't recommend this. This is here for debug purposes, disabling it can be a very bad plan)
  2. Run a sound at login (not boot - for some reason, at least in El Capitan, using Afplay at boot through crontab and LaunchDaemons is not working. If someone else can get it to work, lemme know, I'll add it)

Disabling the boot chime

I seriously recommend not doing this. Debug is important, and if there's a hardware issue, you need to know what startup chime you have. Turn back, ye who fear.

  1. Go into Terminal.app.
  2. Run the command
    sudo nvram SystemAudioVolume=%80
    • This can be undone with
      sudo nvram -d SystemAudioVolume
    • Note that this does not work in OS X El Capitan (because changes ಠ_ಠ)

The boot chime is now disabled.

Adding a login chime

  1. Go into Automator.app.
  2. Hit New Document
  3. Select Application, and hit Choose.
  4. Drag Run Shell Script in the second left-hand column into the main pane.
  5. Type in the command
    Afplay -q 1 /path/to/sound/file
    obviously replacing /path/to/sound/file with the path to the sound file.
  6. Save as an Application and place it in your Applications folder.
  7. Quit Automator.app
  8. Go to System Preferences.
  9. Click on Users and Groups.
  10. Click on your user in the left-hand-most column.
    • If necessary, click the lock in the lower-left corner to allow for a preferences change.
  11. Click the + underneath the main pane on the right.
  12. Select the Application you just made and hit Add.
  13. Click the Hide checkbox.

That's it.

You now have no startup chime(use caution) and a login chime. Hooray!

Solution 2:

From my personal experience, there isn't really any way to change Mac's startup sound. For some reason, that's embedded right inside the computer itself—even if I started a Mac in Windows 10, the same startup sound can be heard but before Windows boots up.

However, you can mute it and just add another sound, but unlike Windows 10, you have to get logged in before you hear the sound. Well, that was just what Addison said. However, his solution and my suggestion will only apply only to your user account!

In addition to Addison's work, I'd like to add this…

  • When the system turns off, there should be some sort of terminal code (usually the logouthookcode (search online for that). In my case, the logouthook code did not work, but I hope it works in yours.
  • In addition to the startup sound, the code should be able to restore the volume of the computer back to the same level before it was muted—or else you will forget that you have muted it.

An Example

I have two examples, but I will only send one since the other one relies on AppleScript and my AppleScript renderer is broken!

These are the codes you would have to place in Automator. You have to run this as an app. This includes only very simple codes.

  1. Set Computer Volume
    • You can set the volume as any volume you want. Take note that since Automator does simple tasks, this will not be able to restore the sound level before you turned the Mac off, unlike what I said. However, more complex script editors can do this.
  2. Do Shell Script
    • Use the code afplay followed by the local URL to the video/audio file.
      • For instance, afplay ~/Music/Startup.mp4
    • Please only use the zsh or the bash command-line.

I hope this helps!