ускоренная работа
This commit is contained in:
28
scripts/generate_ding.py
Normal file
28
scripts/generate_ding.py
Normal file
@@ -0,0 +1,28 @@
|
||||
import wave
|
||||
import math
|
||||
import struct
|
||||
|
||||
|
||||
def generate_ding(filename="assets/sounds/ding.wav", frequency=800, duration=0.15):
|
||||
sample_rate = 44100
|
||||
n_frames = int(sample_rate * duration)
|
||||
|
||||
with wave.open(filename, "w") as wav_file:
|
||||
wav_file.setnchannels(1)
|
||||
wav_file.setsampwidth(2)
|
||||
wav_file.setframerate(sample_rate)
|
||||
|
||||
data = []
|
||||
for i in range(n_frames):
|
||||
# Затухающая синусоида
|
||||
t = i / sample_rate
|
||||
value = int(
|
||||
32767.0 * math.sin(2 * math.pi * frequency * t) * (1 - t / duration)
|
||||
)
|
||||
data.append(struct.pack("<h", value))
|
||||
|
||||
wav_file.writeframes(b"".join(data))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
generate_ding()
|
||||
Reference in New Issue
Block a user