## Kapitel 14 – Sound programmieren

# Seite 186 – WAV-Dateien abspielen
import pygame
pygame.mixer.init()
sound = pygame.mixer.Sound("cosmic.wav")
sound.play()

# Seite 187 – MP3-Dateien abspielen
while pygame.mixer.get_busy():
    pass

# Seite 187 – MP3-Dateien abspielen
import pygame

pygame.mixer.init()

pygame.mixer.music.load("club-techno.mp3")
pygame.mixer.music.play()

while pygame.mixer.music.get_busy():
    pass

pygame.mixer.music.load("mp3/club-techno.mp3")

# Seite 188 – Eigene Musik machen
import pygame, math, array

pygame.init()
pygame.mixer.init(frequency=44100, size=-16, channels=1)

def ein_ton(freq):
    buf = array.array("h")
    for i in range(9000):
        t = i / 44100
        buf.append(int(32767 * math.sin(2 * math.pi * freq * t)))
    return pygame.mixer.Sound(buffer=buf)

tones = {pygame.K_1: ein_ton(440),pygame.K_2: ein_ton(490),pygame.K_3: ein_ton(525),}

screen = pygame.display.set_mode((400, 200))
pygame.display.set_caption("1,2,3 Töne")

while True:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.key in tones:
                tones[event.key].play()

# Seite 189 – Sprachsynthese – lass den Computer sprechen!
import pyttsx3

engine = pyttsx3.init()

engine.say("Hallo, hier spricht Python.")
engine.runAndWait()

# Seite 190 – Einmaleins
import pyttsx3

def sprich(text):
    engine = pyttsx3.init()
    engine.say(text)
    engine.runAndWait()

sprich("Hallo")
sprich("Ich habe viel zu sagen")

# Seite 190 – Einmaleins
import random
import time
import pyttsx3

# Seite 190 – Einmaleins
def sprich(text):
    engine = pyttsx3.init()
    engine.say(text)
    engine.runAndWait()

while True:
    #Zufallszahlen erzeugen
    a = random.randint(1, 10)
    b = random.randint(1, 10)

    #Aufgabe sagen
    sprich(f"{a} mal {b}")

    time.sleep(3)

    #Ergebnis sprechen
    sprich(f"Das Ergebnis ist {a * b}")

