Change Notification Centre Sound

Hi everyone,

Does anyone out there know how to change the default sound Notification Centre plays when Scrivener reaches its Project Target?

It’s a tri-tone sound which, I think, is located here:
/System/Library/PrivateFrameworks/ToneLibrary.framework/Versions/A/Resources/AlertTones/sms-received1.caf

But If I change the contents of sms-received1.caf to a caf sound of my choosing, Notification Centre still plays the same Tri-Tone sound, even though I’ve renamed that original Tri-Tone sms-received1.caf to a different filename altogether.

Which means it must be getting the sound from somewhere else. I looked inside the Scrivener package contents but couldn’t find any sound files in there.

Confused! Be so grateful for some pointers.

Thanks
Gilly

According to this article (which is quite old), the file it looks for is ~/Library/Sounds/Basso.aiff. It won’t exist until you put a file there, but it needs to be < 2 seconds and in the AIFF format to work properly.

Hi Amber,

Thanks for replying … as you can probably guess, I’m trying to fudge NC in the absence of Growl!! :smiley:

I saw that article when I was googling how to do this, but it doesn’t work. The sound Scrivener makes in Notification Centre isn’t Basso (which is like a nasty burp), it’s a tri-tone sound. If you listen to the sounds in Preferences, Scrivener isn’t using any of these. It’s using this:

/System/Library/PrivateFrameworks/ToneLibrary.framework/Versions/A/Resources/AlertTones/sms-received1.caf

How it still makes that tri-tone sound when I’ve replaced that file with another sound entirely is beyond me.

#CONFUSED!

Gilly

I know this sounds like a Windows 1998 level question: but have you tried rebooting yet? Apple has a acquired an unhealthy fetish for using cached copies over disk changes in the past few years.

That’s a UNIX issue – as long as the block has an open file handle, the original blocks are unchanged and not released until the last handle is closed. So you can update the underlying file all you want, but those changes get written to new blocks and the old blocks ghost around until the process using them closes or the system is forcibly rebooted. Given Mac OS X’s underlying BSD infrastructure, I’m guessing that Apple re-used more than a little of the BSD fs code in their latest and greatest fs versions.

Agreed, that’s an underlying limitation if it isn’t cache, but my retort to that would be that Notification Centre should be something you can restart independently (like I might restart the Apache server with updated conf files). It might be possible to do just that, but the advice I’ve come across says you need to reboot after changing the .caf file.

I long ago learned to stop trying to argue – or understand – what Apple thought I should or shouldn’t be able to do. :slight_smile:

Yes, I did try to reboot. I used to provide tech support for Sun Microsystems so the words, “have you tried rebooting” are a familiar part of my pre-writerly vocabulary!!! :slight_smile:

The long and short of it is that Scrivener/NC cannot be using this file:

/System/Library/PrivateFrameworks/ToneLibrary.framework/Versions/A/Resources/AlertTones/sms-received1.caf

Because I’ve deleted it altogether, rebooted, and still the same nails-down-a-blackboard-awful l tri-tone sound plays on project target.

The strange thing is that I’ve done a root user search from / for every .caf, .aiff, and .wav file on the system and NONE of them make this sound. So where is it coming from???

When Scrivener sends a notification to NC to say that the project target has been reached, does it send within that code an instruction for which sound file to play? It would make sense that it does, since every site I’ve Googled has stated that NC only uses Basso.

If Scrivener doesn’t send an instruction I’m stuck with getting an answer from Apple and I don’t hold out much hope for that!!

Thanks so much for your help guys!
Gilly