from pylab
import *
import pygame
from pygame.locals
import *
frequence = 440
nbBits = 16 ampli = 2**(nbBits - 1) - 1 sample_rate = 44100
pygame.mixer.pre_init(44100, nbBits, 2) pygame.init()
# Cette fonction gère l'interface
pygame size = (350, 80) fenetre =
pygame.display.set_mode(size, pygame.HWSURFACE | pygame.DOUBLEBUF)
fenetre.fill((40,80,120)) font=pygame.font.Font(None,
36) monTexte = font.render("Fréquence
: " + str(frequence) +
" Hz",1,(255,255,255))
fenetre.blit(monTexte,(10, 10)) font=pygame.font.Font(None,
24) monTexte = font.render("Le son
que vous entendez est un son pur.",1,(250, 180, 0))
fenetre.blit(monTexte,(10, 40)) pygame.display.set_caption("Générer
un son") pygame.display.flip()
# Cette fonction génère le son
duration = 1 / frequence n_samples =
int(round(duration*sample_rate))
# On crée un tableau 2D et on le
remplit de zéros buf = zeros((n_samples, 2), dtype =
int16) for s
in
range(n_samples): t =
float(s)/sample_rate
# On complète le tableau pour l'oreille
gauche buf[s][0] =
int(round(ampli*sin(2*math.pi*frequence*t)))
# Oreille droite = oreille gauche
buf[s][1] = buf[s][0] # Le tableau
devient un son sound = pygame.sndarray.make_sound(buf)
sound.play(loops = -1)
_running = True
# La fin du code gère la sortie du
programme while
_running: for
event in pygame.event.get():
if event.type == pygame.QUIT:
_running = False
break pygame.quit()
|