•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the Python section within the Software Development category of DaniWeb, a massive community of 391,922 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,722 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Python advertiser:
You need the Python tkSnack module to play notes of a given frequency and duration on your external sound system (attached to the PC's sound card). The code snippet gives just a tiny hint about the capabilities of tkSnack. It works with Tkinter, normally part of the Python installation. The module comes to you courtesy of the researchers at KTH and the University of Stockholm in Sweden. More information is at their website http://www.speech.kth.se/snack/
# play a note of a given frequency and duration via the PC sound card # needs Python module tkSnack developed at KTH in Stockholm, Sweden # free download: snack229-py.zip # from: http://www.speech.kth.se/snack/ # on my system I copied tkSnack.py to D:\Python24\Lib and the folder snacklib to D:\Python24\tcl # tested with Python24 vegaseat 28oct2005 """ Frequency Note Table: Frequency Note MIDI# 27.5000 A0 21 29.1352 A#0 22 30.8677 B0 23 32.7032 C1 24 34.6478 C#1 25 # C#1 = C1 * 1.059463094 36.7081 D1 26 # 1.059463094 = 12th root of 2 38.8909 D#1 27 41.2034 E1 28 43.6535 F1 29 46.2493 F#1 30 48.9994 G1 31 51.9131 G#1 32 55.0000 A1 33 58.2705 A#1 34 61.7354 B1 35 65.4064 C2 36 69.2957 C#2 37 73.4162 D2 38 77.7817 D#2 39 82.4069 E2 40 87.3071 F2 41 92.4986 F#2 42 97.9989 G2 43 103.8262 G#2 44 110.0000 A2 45 116.5409 A#2 46 123.4708 B2 47 130.8128 C3 48 138.5913 C#3 49 146.8324 D3 50 155.5635 D#3 51 164.8138 E3 52 174.6141 F3 53 184.9972 F#3 54 195.9977 G3 55 207.6523 G#3 56 220.0000 A3 57 233.0819 A#3 58 246.9417 B3 59 261.6256 C4 60 277.1826 C#4 61 293.6648 D4 62 311.1270 D#4 63 329.6276 E4 64 349.2282 F4 65 369.9944 F#4 66 391.9954 G4 67 415.3047 G#4 68 440.0000 A4 69 466.1638 A#4 70 493.8833 B4 71 523.2511 C5 72 554.3653 C#5 73 587.3295 D5 74 622.2540 D#5 75 659.2551 E5 76 698.4565 F5 77 739.9888 F#5 78 783.9909 G5 79 830.6094 G#5 80 880.0000 A5 81 932.3275 A#5 82 987.7666 B5 83 1046.5023 C6 84 1108.7305 C#6 85 1174.6591 D6 86 1244.5079 D#6 87 1318.5102 E6 88 1396.9129 F6 89 1479.9777 F#6 90 1567.9817 G6 91 1661.2188 G#6 92 1760.0000 A6 93 1864.6550 A#6 94 1975.5332 B6 95 2093.0045 C7 96 2217.4610 C#7 97 2349.3181 D7 98 2489.0159 D#7 99 2637.0205 E7 100 2793.8259 F7 101 2959.9554 F#7 102 3135.9635 G7 103 3322.4376 G#7 104 3520.0000 A7 105 3729.3101 A#7 106 3951.0664 B7 107 4186.0090 C8 108 """ import Tkinter import tkSnack def setVolume(volume=50): """set the volume of the sound system""" if volume > 100: volume = 100 elif volume < 0: volume = 0 tkSnack.audio.play_gain(volume) def playNote(freq, duration): """play a note of freq (hertz) for duration (seconds)""" snd = tkSnack.Sound() filt = tkSnack.Filter('generator', freq, 30000, 0.0, 'sine', int(11500*duration)) snd.stop() snd.play(filter=filt, blocking=1) def soundStop(): """stop the sound the hard way""" try: root = root.destroy() filt = None except: pass root = Tkinter.Tk() # have to initialize the sound system, required!! tkSnack.initializeSnack(root) # set the volume of the sound system (0 to 100%) setVolume(30) # play a note of requency 440 hertz (A4) for a duration of 5 seconds playNote(440, 5) # play a note of requency 261.6 hertz (C4) for a duration of 5 seconds playNote(261.6, 5) # optional soundStop() root.withdraw()
Post Comment
•
•
•
•
DaniWeb Marketplace (Sponsored Links)