PUMP is a local music player application with advanced audio analysis features, playlist generation, and music metadata services integration.
- Python 3.9+
- Git
- Anaconda or Miniconda (recommended)
- Audio libraries dependencies (see installation)
git clone https://github.com/icewall905/pump.git
cd pumpsudo apt update
sudo apt install -y python3-dev python3-pip ffmpeg libasound2-dev portaudio19-dev libportaudio2 libportaudiocpp0 libsndfile1-dev gitsudo dnf install -y python3-devel ffmpeg portaudio-devel libsndfile-devel gitsudo pacman -S python python-pip ffmpeg portaudio libsndfile git# Install Miniconda if you don't have it
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
# Create and activate environment
conda create -n pump_env python=3.9
conda activate pump_envpython3 -m venv venv
source venv/bin/activatepip install -r requirements.txtIf you encounter issues with librosa or other audio analysis libraries, try:
pip install --upgrade pip setuptools wheel
pip install --only-binary=:all: numpy
pip install -r requirements.txtThe start script will check dependencies, create the environment if needed, and start the application:
chmod +x start_pump.sh
./start_pump.shIf you prefer to run the application manually:
# Activate your environment if not already active
conda activate pump_env # or source venv/bin/activate
# Run the application
python web_player.pyOpen your browser and navigate to:
http://localhost:8080
On first run, PUMP creates a pump.conf file where you can configure:
- Server settings (port, host)
- Music library location
- API keys for music services (LastFM, Spotify)
- Cache settings
Edit this file before starting the application again or use the Settings page in the app.
- Go to Settings in the application
- Set your music folder path
- Check "Scan recursively" if you want to include subdirectories
- Click "Start Analysis"
The analysis process may take time depending on your library size as it extracts audio features for playlist generation.
- Music library management
- Audio signal analysis
- Smart playlist generation
- Metadata enrichment
- Recently added tracking
- Advanced audio search
- Enable “Keep Database in Memory” in Settings → Database Performance
- Adjust “Database Cache Size” based on available RAM
- At least 4GB RAM recommended; 8GB+ for 100k tracks
- Initial analysis can take hours; subsequent scans are faster
-
Audio dependencies errors: If you encounter issues with audio libraries, try installing system dependencies mentioned above.
-
Pygame/PortAudio errors: Some systems might need additional dependencies:
sudo apt install -y libportmidi-dev pip install pygame
-
Permissions issues: Ensure you have read access to your music files and write access to the application directory.
-
Database errors: If the application fails to start due to database issues, remove the pump.db file and restart to create a fresh database.
For more details, please see the full documentation or open an issue on GitHub.
