#!/usr/bin/env python3 # Gera os tres efeitos sonoros que trocam, no Asteroid's Revenge, arquivos sem origem declarada no repositorio # (o README e o credits.md nao os citam e o historico do git so diz "add menu sound" etc.): # art-and-sound/menu_click_sound.ogg clique dos botoes do menu # art-and-sound/missile_target_locked.ogg aviso de missil travado no alvo # art-and-sound/transition_sound2.ogg som da abertura do menu # Os sons daqui sao nossos, sintetizados do zero (seno e ruido com semente fixa), e ficam em CC0 (dominio # publico). Saida: .wav estereo 16 bits 44100 Hz ao lado deste script; o wav2ogg (Builds/pygame-music/wav2ogg.c, # serie fixa) os passa para Ogg Vorbis, e os .ogg ficam versionados ao lado (o build-asteroids-revenge.sh so copia). # # python3 -I gen-sounds.py && for n in menu_click_sound missile_target_locked transition_sound2; do # wav2ogg $n.wav $n.ogg 0.4; done import math, os, random, struct, wave RATE = 44100 HERE = os.path.dirname(os.path.abspath(__file__)) def write(name, samples): peak = max(abs(s) for s in samples) or 1.0 with wave.open(os.path.join(HERE, name), 'wb') as w: w.setnchannels(2); w.setsampwidth(2); w.setframerate(RATE) frames = bytearray() for s in samples: v = int(max(-1.0, min(1.0, s / peak * 0.7)) * 32767) frames += struct.pack('