Ask Your Question
1

Is there a way to make an audible noise when a computation is complete?

asked 14 years ago

ccanonc gravatar image

I tried printing the alert bell ("\a") and didn't hear anything. Tips?

Preview: (hide)

Comments

I suppose sending an email is another option, though as we saw with this site, SMTP can be a pain, especially for a home user.

ccanonc gravatar imageccanonc ( 14 years ago )

3 Answers

Sort by » oldest newest most voted
3

answered 14 years ago

William Stein gravatar image
  1. Are you using a remote notebook or a local server. If it is local, just run some local command that makes a noise using os.system. How you do this depends entirely one what operating system you are using.

  2. Regarding email (see ccanonc's remark above), it is trivial to use with Sage, irregardless of SMTP. There is a command (I wrote) called "email" that is builtin to Sage, which uses that Sage includes its own mail server (which is part of Twisted). Just do sage: email? for more details.

Preview: (hide)
link

Comments

Can sage act as a POP or IMAP client?

ccanonc gravatar imageccanonc ( 14 years ago )

Yes: Twisted, which Sage contains implements "high-level, efficient protocol implementations for both clients and servers of SMTP, POP3, and IMAP4. " See http://twistedmatrix.com/trac/wiki/TwistedMail

William Stein gravatar imageWilliam Stein ( 14 years ago )

Nice, that's convenient for lazy/home users like me. :-) Maybe I'll dig into those hooks (for the email client code).

ccanonc gravatar imageccanonc ( 14 years ago )

Sorry, here with Sage 4.7.1 and Ubuntu 10.04: os.system('mplayer /usr/share/sounds/ubuntu/stereo/phone-incoming-call.ogg') gives

Rafael gravatar imageRafael ( 13 years ago )
3

answered 14 years ago

radokirov gravatar image

You can try this on any new browser.

def done():
    return html('!audio src="http://www.radokirov.com/gong.ogg" autoplay> Your browser does not support the audio element. !/audio>')

for i in range(10**6):
    pass
done()

Replace ! with < . I could not make the code display otherwise.

In the future a function "done()" along with a sound file can be a part of the notebook. I will remove the .ogg file from my server in the future to prevent too much hotlinking (so don't freak out if this doesn't work).

Preview: (hide)
link

Comments

I like it. =)

ccanonc gravatar imageccanonc ( 14 years ago )

That is a *fantastic* "I'm finished" sound. Way better than some lame old beep. :)

Dan Drake gravatar imageDan Drake ( 14 years ago )

Also, if you are not working with the notebook, you can use Python's subprocess module and any command-line sound player: just define the done() function as above as something like subprocess.call(['ogg123', 'path/to/file'])

Dan Drake gravatar imageDan Drake ( 14 years ago )
William Stein gravatar imageWilliam Stein ( 14 years ago )

radokirov: I opened gong.ogg in Audacity, and it's silence after about 2.25 seconds. You can either truncate that, or slowly taper (ramp-down if I'm remembering the term correctly). Audacity is fun to play with...especially if you want a long gong. =)

ccanonc gravatar imageccanonc ( 14 years ago )
1

answered 14 years ago

TeamTeamUSA gravatar image

updated 14 years ago

I added gong.ogg to my notebook, so I can serve it locally. It took a while, but I finally determined the path to the image files:

<$SAGE_ROOT>/local/lib/python2.6/site-packages/sagenb-0.8.2-py2.6.egg/sagenb/data/sage/images/gong.ogg

The URI to the file is:

http://localhost:8000/images/gong.ogg

The file plays fine in Firefox; guess Safari doesn't know how to play an ogg file.

Preview: (hide)
link

Comments

This also works fine in chrome.

William Stein gravatar imageWilliam Stein ( 14 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 14 years ago

Seen: 1,657 times

Last updated: Aug 24 '10