Skip to main content

A small PyQt6 app for musicians to display songs teleprompter style,and make short recordings to play along with

Project description

Couch Guitar

Couch Guitar is a PyQt6-based application designed for home musicians who want to display song lyrics, guitar tabs, and chords in a teleprompter-style interface. This small, open-source app allows musicians to load text files with lyrics, adjust the font size, control scroll speed, and even record practice sessions with audio playback capabilities.

Features

  • Auto-Scrolling Lyrics and Tabs: Display text files with lyrics and chords, and scroll them automatically to follow along while playing.
  • Font and Speed Controls: Adjust font size and scrolling speed to suit your preference.
  • Audio Recording and Playback: Record practice sessions and play back recorded audio for review.
  • Cross-Platform: Works on Windows and Linux.

Installation

Windows

Install directly from PyPI:

pip install couchguitar

Linux

Linux requires PortAudio and FFmpeg for audio functionality. Install system dependencies first:

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install portaudio19-dev ffmpeg
pip install couchguitar

Fedora/RHEL:

sudo dnf install portaudio-devel ffmpeg
pip install couchguitar

Arch Linux:

sudo pacman -S portaudio ffmpeg
pip install couchguitar

From Source

Clone the repository and install locally:

git clone https://github.com/scottpeterman/couchguitar.git
cd couchguitar
pip install .

Usage

To run the app, simply use the following command in your terminal:

couchguitar

Once launched, use the navigation bar on the left to:

  • Load Songs: Load text files with lyrics and chords for display.
  • Control Scroll: Play, pause, and adjust scrolling speed.
  • Record Audio: Record audio sessions up to 15 minutes and save as .wav.

Example

Here's an example of Couch Guitar in use:

Couch Guitar Screenshot

Troubleshooting

Linux Audio Issues

If you encounter audio problems on Linux, verify your setup:

python -c "import sounddevice as sd; print(sd.query_devices())"

This should list your available audio devices. If it fails:

  • Ensure PulseAudio or PipeWire is running
  • Check that your user is in the audio group: groups $USER
  • Try selecting a specific device in your system's audio settings

Missing FFmpeg

Audio file loading requires FFmpeg. Verify installation:

ffmpeg -version

If not found, install it using your package manager (see Linux installation above) or download from ffmpeg.org.

License

MIT License - See LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

couchguitar-0.2.0-py3-none-any.whl (772.6 kB view details)

Uploaded Python 3

File details

Details for the file couchguitar-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: couchguitar-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 772.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for couchguitar-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 58325adc9c689b47eb83eb98e3de4d97b5c009ccf541bda2d5214b2aa3ff6d91
MD5 976701190ffe629fa041045cd4b16f1e
BLAKE2b-256 cc6e528adcc94809c47181b490efb7392050c71d1bf17b7b128564e650504111

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page