Files
pmomusic/INSTALL_NOTES.md
Claude b629d57c34 Améliorer la documentation d'installation et ajouter des scripts automatiques
- Ajouter setup-deps.sh : script d'installation automatique de libsoxr et libasound2
- Corriger setup-env.sh : utiliser $HOME au lieu de /root pour la portabilité
- Mettre à jour INSTALL_LIBSOXR.md : ajouter méthode rapide avec les scripts
- Mettre à jour INSTALL_NOTES.md : référencer les scripts d'installation
- Mettre à jour Readme.md : ajouter section démarrage rapide

Ces changements facilitent l'installation dans les environnements sans sudo
(comme Claude Code) en automatisant le téléchargement et l'extraction des
dépendances système nécessaires.
2025-11-06 07:45:36 +00:00

2.0 KiB

Notes d'installation pour PMOMusic

Prérequis système

libsoxr (obligatoire pour pmoaudio - resampling)

La bibliothèque libsoxr est requise pour le resampling audio dans pmoaudio.

libasound2/ALSA (obligatoire pour pmoaudio - lecture audio sur Linux)

La bibliothèque ALSA est requise pour AudioSink via cpal sur Linux. Sur macOS et Windows, aucune dépendance externe n'est nécessaire (CoreAudio et WASAPI sont utilisés).

Installation :

# Debian/Ubuntu
sudo apt-get install libsoxr-dev libasound2-dev

# Fedora/RHEL
sudo dnf install libsoxr-devel alsa-lib-devel

# Arch Linux
sudo pacman -S libsoxr alsa-lib

# macOS (Homebrew) - ALSA non nécessaire sur macOS
brew install libsoxr

# Alpine Linux
apk add soxr-dev alsa-lib-dev

Sans privilèges root (Claude Code, environnements sans sudo) :

🚀 Installation automatique :

# 1. Installation des dépendances (une seule fois)
./setup-deps.sh

# 2. Configuration de l'environnement (à chaque session)
source setup-env.sh

# 3. Compilation
cargo build

Pour plus de détails, consultez INSTALL_LIBSOXR.md.


Nouveaux composants

PlaylistSource (pmoaudio-ext)

Source audio qui lit une playlist pmoplaylist et diffuse les pistes en continu.

Feature : playlist

# Compiler avec la feature playlist
cargo build --package pmoaudio-ext --features playlist

⚠️ Important : Cette source émet du PCM avec sample_rate et bit_depth variables. Pour un flux homogène, ajoutez dans le pipeline :

  • ResamplingNode (normalise le sample_rate)
  • ToI24Node / ToI16Node (normalise la profondeur de bits)

ResamplingNode (pmoaudio)

Nœud générique qui normalise le sample_rate vers une valeur cible fixe.

Usage :

let mut resampler = ResamplingNode::new(48000); // Force 48kHz

Compilation

# Compiler tout le workspace (nécessite libsoxr)
cargo build

# Compiler sans pmoaudio (si libsoxr manque)
cargo build --package pmoplaylist
cargo build --package pmoaudiocache
# etc.