Skip to main content

Rhythm Box

A simple drum-machine/rhythm-box for OVOS - loops an 8-step (eighth- note) beat pattern at a chosen tempo. All 4 drum sounds (kick, snare, closed hi-hat, open hi-hat) are generated, not recorded - nothing to source or license (see scripts/generate_drums.py). Same timing philosophy as ovos-skill-metronome: a background thread scheduling each step from a fixed accumulator, extended to a step-sequencer instead of a single click.

Tests PyPI version

Early 0.0.x release. Only 2 patterns (rock, four-on-the-floor) for now, deliberately kept small to prove the sequencing engine before building a genre library - see "Planned patterns" below.

Usage

"play a rock beat at 100 bpm"
"play a disco beat"
"start a drum loop"
"stop the beat"
"spil et rock beat på 100 bpm"    (Danish)
"stop beatet"                     (Danish)

Bare "start a drum loop" resumes the last pattern/tempo used this session, or a 120 bpm rock beat if nothing has been played yet. Valid range is 40-220 bpm.

The two patterns

Both are an 8-step grid (one bar of eighth notes):

Step 1 & 2 & 3 & 4 &
Rock: hi-hat
Rock: kick
Rock: snare
Four-on-the-floor: kick
Four-on-the-floor: open hat
Four-on-the-floor: snare

Planned patterns (tracked as issues, not built yet)

  • Swing/shuffle - needs a different timing model (triplet feel), not just a new hit-pattern on the existing straight-eighth grid.
  • Funk, latin/bossa, half-time - half-time is cheap (reuses the existing 4-sample palette); funk/latin likely need more samples.

A real caveat: simultaneous hits

Some steps hit more than one instrument at once (kick + hi-hat on beat 1, for example). Each is sent as a separate play_audio() call in quick succession - this relies on the OVOS audio backend actually mixing overlapping playback rather than one call cutting off the previous. Most real setups do mix correctly (PulseAudio/PipeWire-level mixing), but if a beat sounds thin or clipped on a given deployment, this is a real, known reason why - not something silently assumed away.

Install

pip install ovos-skill-rhythm-box

Development

See DEVELOPMENT.md.

Category

Entertainment

Tags

#music #drums #rhythm #beat

Release files for ovos-skill-rhythm-box 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovos-skill-rhythm-box 0.0.1
File Size Uploaded
ovos_skill_rhythm_box-0.0.1.tar.gz 65.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ovos-skill-rhythm-box 0.0.1
File Interpreter ABI Platform
ovos_skill_rhythm_box-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 131.5 kB

Release files / ovos_skill_rhythm_box-0.0.1.tar.gz

Download URL ovos_skill_rhythm_box-0.0.1.tar.gz
Size 65.0 kB
Tags Source
SHA-256 checksum
How to use checksums
563ec4a6b123a26270228afab0108a728be8bdb378f8c4154dea2512c25b1266
BLAKE2b-256 checksum
How to use checksums
c5e0875266daa660384b480adf720a35b95f07c203e595e28794ec7a8d4d60b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.

Transparency log

Release files / ovos_skill_rhythm_box-0.0.1-py3-none-any.whl

Download URL ovos_skill_rhythm_box-0.0.1-py3-none-any.whl
Size 66.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
198fb47a38a984547208f60fdb1f4259867d2e745077f3d93af617038c14f07c
BLAKE2b-256 checksum
How to use checksums
2bdd9a2309cbce95a4a2c5242b58f3f995b709085837f09852e5cdc93c499d89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page