#!/usr/bin/env bash
# Tetris Type A — musique via beep
# Dépendances : beep (sudo apt install beep)
# Lancement   : chmod +x tetris_music.sh && sudo ./tetris_music.sh

# Fréquences des notes (Hz) — tempérament égal, La4=440Hz
E5=659; B4=494; C5=523; D5=587; A4=440
G4=392; F4=349; E4=330; A5=880; G5=784; F5=698

# Durées de base (ms)
Q=400   # noire
H=800   # blanche
E=200   # croche
DE=600  # pointée (noire+croche)

note() {
  beep -f "$1" -l "$2";
  echo beep -f "$1" -l "$2";
}
rest() { sleep "$(echo "scale=3; $1/1000" | bc)"; }

play() {
  while true; do

    # ── Thème A (première partie) ──────────────────────────
    note $E5 $Q; note $B4 $E; note $C5 $E
    note $D5 $Q; note $C5 $E; note $B4 $E
    note $A4 $Q; note $A4 $E; note $C5 $E
    note $E5 $Q; note $D5 $E; note $C5 $E
    note $B4 $DE; note $C5 $E
    note $D5 $Q; note $E5 $Q
    note $C5 $Q; note $A4 $Q
    note $A4 $H

    rest $E

    note $D5 $Q; note $F5 $E; note $A5 $E  # F5→A5 montée
    # correction : D5-F5-A5 c'est la phrase correcte
    note $G5 $E; note $F5 $E                                                                                                                       
    note $E5 $DE; note $C5 $E
    note $E5 $Q; note $D5 $E; note $C5 $E
    note $B4 $Q; note $B4 $E; note $C5 $E
    note $D5 $Q; note $E5 $Q
    note $C5 $Q; note $A4 $Q
    note $A4 $H

    # ── Thème A (répétition) ───────────────────────────────
    note $E5 $Q; note $B4 $E; note $C5 $E
    note $D5 $Q; note $C5 $E; note $B4 $E
    note $A4 $Q; note $A4 $E; note $C5 $E
    note $E5 $Q; note $D5 $E; note $C5 $E
    note $B4 $DE; note $C5 $E
    note $D5 $Q; note $E5 $Q
    note $C5 $Q; note $A4 $Q
    note $A4 $H

    rest $E

    note $D5 $Q; note $F5 $E; note $A5 $E
    note $G5 $E; note $F5 $E
    note $E5 $DE; note $C5 $E
    note $E5 $Q; note $D5 $E; note $C5 $E
    note $B4 $Q; note $B4 $E; note $C5 $E
    note $D5 $Q; note $E5 $Q
    note $C5 $Q; note $A4 $Q
    note $A4 $H

  done
}

trap 'pkill -P $$ beep 2>/dev/null; echo; exit 0' INT TERM

echo "🎵 Tetris Type A — Ctrl+C pour arrêter"
play
