# 🎹 PyBeat - Guide Utilisateur

## Introduction

Bienvenue dans PyBeat, votre séquenceur rythmique avancé. Créez des beats, mixez vos pistes et construisez des morceaux complets grâce à une interface intuitive et puissante.

## Interface Principale

### 🎛️ Barre Supérieure (Paramètres)

- BPM : Vitesse du morceau (Battements par minute). Glissez pour ajuster.
- Signature : Changez la mesure (4/4, 3/4, etc.).
- Steps : Nombre de pas dans la séquence (ex: 16, 32).
- Swing : Ajoutez du "Groove" (décalage des temps faibles) pour un rendu moins robotique.
- Kit : Choisissez votre batterie (808, Rock, etc.). PyBeat scanne automatiquement le dossier `assets/kits`.

### 🎼 La Grille de Séquence

C'est ici que vous composez. Chaque ligne correspond à un son (Kick, Snare...), chaque case à un temps.

- Clic Gauche : Activer une note (Forte, Vélocité 1.0).
- Clic Droit / Shift+Clic : Activer une Ghost Note (Douce, Vélocité 0.6). La case apparaît plus sombre.
- Contrôles de Piste (à gauche) :
  - M (Mute) : Coupe le son de la piste.
  - S (Solo) : N'écoute que cette piste.
  - MIX : Ouvre les réglages avancés (Pan & Pitch).

## Fonctionnalités Avancées

### 🎚️ Mixage (Pan & Pitch)

Cliquez sur le bouton MIX d'une piste pour ouvrir la fenêtre de mixage :

- Panoramique : Placez le son dans l'espace stéréo (Gauche / Droite).
- Pitch : Changez la hauteur et la vitesse de lecture du sample.
  - < 1.0 : Plus grave et lent.
  - > 1.0 : Plus aigu et rapide.
- Utilisez Reset Default pour réinitialiser.

### 🎵 Mode Song & Playlist

Construisez une structure complète (Intro, Couplet, Refrain) :

1. Créez un pattern sur la grille (ex: "Intro").
2. Cliquez sur + ADD en bas : Le pattern est ajouté à la playlist.
3. Modifiez la grille (ex: "Refrain") et cliquez à nouveau sur + ADD.
4. Activez le switch SONG MODE et appuyez sur Play. PyBeat enchaînera les patterns !
5. Cliquez sur VIEW pour voir et gérer votre liste de lecture.

### 🔗 Enchaînement de Presets (Chaining)

Vous pouvez charger des styles existants sans perdre votre playlist :

- Le bouton LOAD PRESET (bleu) charge une grille mais conserve votre playlist actuelle.
- Vous pouvez donc faire : Charger "Rock A" -> Add -> Charger "Rock B" -> Add.

## Raccourcis Clavier

- Espace : Play / Stop
- Suppr : Effacer toute la grille (Clear)
- Echap : Stop et retour au début

## Sauvegarde et Export

- SAVE / LOAD : Sauvegarde votre Projet Complet (Grille, Playlist, Mixage, BPM...) au format JSON.
- EXPORT WAV : Exporte le résultat audio en fichier `.wav` haute qualité dans le dossier `PyBeat/wav_exports`.

## Utilitaires Python

PyBeat est livré avec des scripts pratiques pour étendre vos possibilités :

### 🛠️ generate_samples.py

Ce script génère mathématiquement des sons de batterie (Kick, Snare, HiHats) à l'aide d'ondes sinusoïdales et de bruit blanc. Utile si vous n'avez pas de samples WAV sous la main.

Usage : `python generate_samples.py`

### 📦 batch_styles.py

Un générateur de styles qui crée automatiquement des fichiers JSON (presets) pour différents genres (Rock, House, Techno, HipHop...). Il génère des dossiers remplis de variations rythmiques prêtes à l'emploi.

Usage : `python batch_styles.py`