Project

rumu

0.0
Low commit activity in last 3 years
rumu is an aggressively minimized audio player that plays a playlist gaplessly leveraging command-line ffmpeg and pipes. After a quit, it will return to where it left off when run next.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 0.0, >= 0.0.0
 Project Readme

rumu

ruby music
by Benjamin Cook
http://baryon.it

Abstract

A minimalist audio player written in Ruby.
Pipes audio from ffmpeg into another ffmpeg or PulseAudio.
Plays a single, user-editable playlist gaplessly.
Remembers where it was when you quit.

Usage

Create a rumu playlist and play it:
rumu file1 file2 ...

Continue playing last created playlist:
rumu

Keystroke commands during playback:
p: previous track
r: restart current track
s: seek in current track
n: next track
q: quit rumu
else: display commands

Seek accepts whatever ffmpeg does.
See https://trac.ffmpeg.org/wiki/Seeking for details.

Features and Configuration

rumu supports every input and output format that ffmpeg does.
Default configuration plays to the default Pulseaudio device.

Configuration files

Configuration is found in $HOME/.config/rumu.

list contains the playlist.

pos contains position information.
Line 1 of pos is the position in list.
Line 2 of pos is the position in selected file in seconds.

out contains output configuration.
Line 1 of out is ffmpeg or pulse.
For ffmpeg, line 2 is the output stanza, eg. -f pulse default
For pulse, line 2 is the audio device, eg. default

Known Issues

Timestamp is inaccurate.
Zero error-handling. Not opposed to adding some, but I never encounter errors.

Command input appears to be broken on ruby versions less than 2.7.
2.6 might work but has not been tested. 2.5 is broken.

Release Log

0.1 - Initial release.
0.2 - Removed play/pause volume ramping. 2021-03-19
0.2c - Bugfixes. 2021-03-19
0.2d - Improved path handling. 2021-03-19
0.3.0 - Refactored code, published Ruby gem, renamed to rumu. 2021-03-26
0.3.1 - Minor fixes. 2021-03-26
0.3.2 - Seek and restart, device config. 2021-03-26
0.3.3 - Fixed crash bug on new installs. 2021-03-29
0.3.4 - Fixed an output hang. 2021-03-29
0.3.5 - Removed leftover debug code. 2021-03-30
0.4.0 - Modularized output devices, created native FFI PulseAudio lib. 2021-04-02
0.4.1 - Split input code into separate thread, added buffer queue. 2021-04-13
0.4.2 - Updated output gem to use Fiddle. (pulseaudio_simple_fiddle) 2024-06-02