Tutorial¶
Make simple sound¶
This example is make 440 Hz sine wave sound.
>>> import gensound
>>> sound = gensound.Sound.from_sinwave(440)
The Sound
class has some class methods for generating simple tones.
Please see reference.
Play and save¶
Play made sound with play
method, like this.
>>> sound.play()
Or, can write into disk with write
method.
>>> sound.write('out.wav')
Overlay or concatenate¶
Make two sounds,
>>> a = gensound.Sound.from_sinwave(440)
>>> b = gensound.Sound.from_sinwave(880)
and overlay they with overlay
function.
>>> overlay = gensound.overlay(a, b)
The overlay
is the same duration as a
and b
, and play both of 440 Hz and 880 Hz.
Or, concatenate they with concat
function.
>>> concat = gensound.concat(a, b)
The concat
is playing a
then b
.
Use sound effects¶
PyGenSound has some effects like fade-in
, fade-out
, high pass
or low pass filter
.
In PyGenSound, resampling
and changing speed
is classified as an effect.
This sample will apply fade-out
effect to sound a
.
>>> effect = gensound.LinearFadeOut()
>>> a_fadeout = effect.apply(a)
You can use effects as a like a stream operator of C++.
>>> a_fade = a >> gensound.LinearFadeOut() >> gensound.LinearFadeIn()
>>> a_fade == gensound.LinearFadeIn() << gensound.LinearFadeOut() << a
True
Please see detail about effects to reference
Examples¶
Make NHK time signal sound¶
import gensound
wait = gensound.Sound.silence(duration=0.9) # Generate 0.9 seconds silence
a = gensound.Sound.from_sinwave(440, duration=0.1, volume=1.0).concat(wait) # Generate 440Hz sin wave 0.1 seconds, and 0.9 seconds silence
b = gensound.Sound.from_sinwave(880, duration=1.0, volume=1.0) # Generate 880Hz sin wave 1 seconds
time_signal = gensound.concat(a, a, a, b) # Concatenate those
time_signal.write('test.wav') # Save to test.wav
time_signal.play() # Play sound