mcpField
S
sound-effects-generator

sound-effects-generator

github.com/dkyazzentwatwaCreative & media12476 installsUpdated 29w ago
Repository

About sound-effects-generator

sound-effects-generator is a Python library and CLI for creating programmatic audio, intended for test sounds, alerts, and audio cues. It generates tones, noise, DTMF signals, and sequences with basic effects and WAV or MP3 export.

Key features

  1. 01Sine, square, sawtooth, and triangle tones
  2. 02White, pink, and brown noise
  3. 03DTMF tones and sequences
  4. 04Multi-tone beep sequences
  5. 05Fade and volume controls
  6. 06WAV and MP3 export

Use cases

  1. 01Creating alert and notification sounds
  2. 02Generating audio test tones and sweeps
  3. 03Producing DTMF phone-number audio

Install

Copy the command and run it in a terminal.

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

After installing, type/sound-effects-generatorin Claude Code to confirm it loaded.

Bundled filesscripts/requirements.txtscripts/sfx_generator.py

Details

From the project README

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
ArgumentDescriptionDefault
--toneFrequency in Hz-
--noiseNoise type (white, pink, brown)-
--dtmfDTMF digits-
--beepsComma-separated frequencies-
--durationDuration in ms1000
--gapGap between sounds (ms)100
--waveformTone waveformsine
--volumeVolume (0.0-1.0)0.8
--sample-rateSample rate44100
--outputOutput fileRequired

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

NameFrequency (Hz)
A4 (Concert pitch)440
Middle C (C4)261.63
C5523.25
Standard dial tone350 + 440
Busy signal480 + 620
Musical Notes (A4 = 440Hz)
NoteFrequency
C4261.63
D4293.66
E4329.63
F4349.23
G4392.00
A4440.00
B4493.88
C5523.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

Comments

Markdown supported