Cette documentation présente les objectifs, le mode d’emploi et les détails techniques du logiciel de gestion et de diffusion de karaoké MIDI/KAR.

1. Objectifs du Projet
L’objectif principal est de fournir une solution logicielle légère et autonome pour animer des sessions de karaoké. Contrairement aux lecteurs standards, ce script offre une maîtrise totale sur le rendu musical et visuel.
- Gestion Thématique : Permettre d’organiser des centaines de fichiers via des listes de lecture personnalisées.
- Adaptabilité : Offrir au chanteur la possibilité de modifier la tonalité (transposition) et de couper les pistes inutiles (mélodie guide) sans altérer le fichier original.
- Immersion Visuelle : Remplacer l’écran noir classique par un arrière-plan dynamique et élégant pour une ambiance professionnelle.

2. Guide d’Utilisation
Préparation
- Installation : Assurez-vous d’avoir Python installé avec les bibliothèques
pygameetmido. - Fichiers : Placez vos fichiers
.midou.kardans le dossier nomméorisitué au même emplacement que le script.
L’Interface de Gestion
- Bibliothèque : À gauche, l’onglet « 🔍 Bibliothèque » liste tous vos fichiers. La barre de recherche filtre les titres instantanément. Cliquez sur « Scan dossiers » pour actualiser la liste si vous ajoutez des chansons.
- Playlists : L’onglet « ⭐ Playlists » permet de gérer plusieurs sélections.
- [+] : Créer une nouvelle playlist.
- [🗑️] : Supprimer la playlist actuelle.
- ▲ / ▼ : Réorganiser l’ordre de passage des chansons.
- Configuration du morceau : Avant de lancer la musique, cochez les pistes à rendre muettes et ajustez la barre de tonalité si nécessaire. Cliquez sur « 💾 AJOUTER » pour mémoriser ces réglages dans votre playlist.
La Lecture (Mode Karaoké)
- Cliquez sur « ▶ LANCER » pour passer en plein écran.
- Paroles : Le texte jaune indique ce qu’il faut chanter. Le texte blanc en dessous permet d’anticiper la suite.
- Quitter : Appuyez sur la touche
ECHAPà tout moment pour revenir à l’interface de gestion.
3. Implémentation Technique
Le logiciel est conçu autour d’une architecture à trois piliers :
A. Persistance des Données (JSON)
L’application ne nécessite pas de base de données complexe. Elle utilise trois fichiers plats :
index_karaoke.json: Stocke le chemin de tous les fichiers scannés.playlists.json: Contient le dictionnaire des playlists et les paramètres utilisateur (transposition, pistes muettes) associés à chaque titre.karaoke_config.json: Sauvegarde l’apparence de la fenêtre (taille et position).
B. Moteur de Rendu Dynamique
Le fond d’écran est généré par une classe Particle.

- Algorithme : Une douzaine de cercles translucides (« Bokeh ») se déplacent avec des vecteurs de vitesse aléatoires.
- Optimisation : Le rendu est limité à 60 FPS pour rester fluide sans surcharger le processeur.
- Lisibilité : Une ombre portée noire est générée sous chaque ligne de texte pour garantir que les paroles restent lisibles, même lorsque des motifs clairs passent en arrière-plan.
C. Traitement MIDI à la volée
Lorsqu’un utilisateur modifie la tonalité ou coupe une piste, le script ne modifie pas le fichier source.
- Il lit le fichier original via
mido. - Il applique un décalage aux messages
note_on(sauf sur le canal 9, réservé aux percussions). - Il filtre les pistes mues.
- Il enregistre le résultat dans un fichier temporaire
temp_output.karqui est celui réellement lu par le moteur audio.
0 commentaire