sound-effects-generator

安装量: 58
排名: #12901

安装

npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill sound-effects-generator

Sound Effects Generator

Generate programmatic audio: pure tones, noise types, DTMF signals, and simple sound effects. Perfect for testing, alerts, audio cues, and placeholder sounds.

Quick Start from scripts.sfx_generator import SoundEffectsGenerator

Generate a tone

sfx = SoundEffectsGenerator() sfx.tone(440, duration=1000).save("a440.wav")

Generate white noise

sfx.noise("white", duration=2000).save("whitenoise.wav")

Create a beep sequence

sfx.beep_sequence([440, 880, 440], durations=200, gap=100).save("alert.wav")

Features Tones: Sine, square, sawtooth, triangle waveforms Noise: White, pink, brown/red noise DTMF: Phone dial tones Sequences: Multi-tone patterns Effects: Fade, volume control Export: WAV, MP3 API Reference Initialization sfx = SoundEffectsGenerator(sample_rate=44100)

Tone Generation

Pure sine wave

sfx.tone(frequency=440, duration=1000)

Different waveforms

sfx.tone(440, duration=1000, waveform="sine") # Default sfx.tone(440, duration=1000, waveform="square") sfx.tone(440, duration=1000, waveform="sawtooth") sfx.tone(440, duration=1000, waveform="triangle")

With volume (0.0 to 1.0)

sfx.tone(440, duration=1000, volume=0.5)

Noise Generation

White noise (equal energy all frequencies)

sfx.noise("white", duration=2000)

Pink noise (1/f, natural sounding)

sfx.noise("pink", duration=2000)

Brown noise (1/f^2, deeper)

sfx.noise("brown", duration=2000)

With volume

sfx.noise("white", duration=1000, volume=0.3)

DTMF Tones

Single digit

sfx.dtmf("5", duration=200)

Sequence (phone number)

sfx.dtmf_sequence("5551234", tone_duration=150, gap=50)

Beep Sequences

Single beep

sfx.beep(frequency=800, duration=200)

Multiple beeps (same frequency)

sfx.beep_sequence([800, 800, 800], durations=100, gap=100)

Melody (different frequencies)

sfx.beep_sequence([523, 659, 784, 1047], durations=200, gap=50)

Varying durations

sfx.beep_sequence( frequencies=[440, 880], durations=[300, 500], gap=100 )

Silence

Generate silence

sfx.silence(duration=1000)

Effects

Fade in/out

sfx.tone(440, 2000).fade_in(200).fade_out(500)

Volume adjustment

sfx.tone(440, 1000).volume(0.5)

Chaining

Combine multiple sounds

sfx.tone(440, 500) \ .silence(200) \ .tone(880, 500) \ .save("two_tones.wav")

Save

Save to WAV

sfx.save("output.wav")

Save to MP3 (requires pydub)

sfx.save("output.mp3", bitrate=192)

CLI Usage

Generate tone

python sfx_generator.py --tone 440 --duration 1000 --output tone.wav

Generate noise

python sfx_generator.py --noise white --duration 2000 --output noise.wav

Generate DTMF

python sfx_generator.py --dtmf "5551234" --output phone.wav

Generate beep pattern

python sfx_generator.py --beeps "800,800,800" --duration 100 --gap 100 --output alert.wav

With waveform

python sfx_generator.py --tone 440 --waveform square --duration 1000 --output square.wav

CLI Arguments Argument Description Default --tone Frequency in Hz - --noise Noise type (white, pink, brown) - --dtmf DTMF digits - --beeps Comma-separated frequencies - --duration Duration in ms 1000 --gap Gap between sounds (ms) 100 --waveform Tone waveform sine --volume Volume (0.0-1.0) 0.8 --sample-rate Sample rate 44100 --output Output file Required Examples Alert Sound sfx = SoundEffectsGenerator() sfx.beep_sequence( frequencies=[880, 1100, 880, 1100], durations=150, gap=50 ) sfx.fade_out(100) sfx.save("alert.wav")

Notification Chime sfx = SoundEffectsGenerator()

C-E-G chord progression

notes = [523, 659, 784] # C5, E5, G5 for freq in notes: sfx.tone(freq, 200) sfx.silence(50)

sfx.fade_out(200) sfx.save("chime.wav")

White Noise Background sfx = SoundEffectsGenerator() sfx.noise("brown", duration=60000) # 1 minute sfx.volume(0.3) # Quiet sfx.fade_in(2000) sfx.fade_out(2000) sfx.save("background.mp3", bitrate=128)

DTMF Phone Number sfx = SoundEffectsGenerator() sfx.dtmf_sequence("18005551234", tone_duration=180, gap=80) sfx.save("phone_dial.wav")

Test Tone Sweep sfx = SoundEffectsGenerator()

Generate tones from 100Hz to 1000Hz

for freq in range(100, 1001, 100): sfx.tone(freq, 200) sfx.silence(50)

sfx.save("sweep.wav")

Common Frequencies Name Frequency (Hz) A4 (Concert pitch) 440 Middle C (C4) 261.63 C5 523.25 Standard dial tone 350 + 440 Busy signal 480 + 620 Musical Notes (A4 = 440Hz) Note Frequency C4 261.63 D4 293.66 E4 329.63 F4 349.23 G4 392.00 A4 440.00 B4 493.88 C5 523.25 Dependencies numpy>=1.24.0 scipy>=1.10.0 soundfile>=0.12.0

Optional: pydub (for MP3 export)

Limitations No complex synthesis (no ADSR envelopes) No stereo panning Limited to basic waveforms MP3 export requires pydub + FFmpeg

返回排行榜