Glorified Metronome
Project description
Music Drummer
Glorified Metronome
The methods of this package depend upon music21.
For this package (and music21 too), a duration of 1 is a
quarter-note. So, 1/2 would be an eighth-note, etc.
SYNOPSIS
from music_drummer import Drummer
# Ex 1 - basic 4/4 metronome groove:
d = Drummer()
d.set_bpm(60) # set the beats per minute
d.set_ts() # set the default time signature of 4/4
# add a 16-beat phrase for 64 measures
for _ in range(64):
d.pattern(
patterns={
'kick': '1000000010000000',
'snare': '0000100000001000',
'hihat': '1010101010101010',
},
)
d.sync_parts() # make the parts play simultaneously
d.score.show('midi') # or nothing, text, etc. see music21 docs
# Ex 2 - 5/8 groove with intro:
d = Drummer()
d.set_instrument('kick', 'kick2') # change to the electric kick
d.set_instrument('snare', 'snare2') # change to the electric snare
# print(d.instrument_map()) # full list of known instruments
d.set_bpm(99) # change the beats per minute from 120
d.set_ts('5/8') # change the time signature from 4/4
d.count_in(2) # count-in on the hi-hats for 2 measures
d.rest('kick', duration=10)
d.rest('snare', duration=10)
d.rest('cymbals', duration=10)
d.rest('toms', duration=10)
# 3 known hi-hat states: closed, open, pedal
d.note('closed', duration=1/2)
d.note('open', duration=1/2)
d.note('pedal', duration=1/2)
d.note('closed', duration=1/2)
d.rest(['snare', 'kick', 'cymbals', 'toms'], duration=2)
# 7 known cymbals:
d.note('crash1', duration=1/2)
d.note('crash2', duration=1/2)
d.note('china', duration=1/2)
d.note('splash', duration=1/2)
d.note('ride1', duration=1/2)
d.note('ride2', duration=1/2)
d.note('ridebell', duration=1/2)
d.rest(['kick', 'snare', 'hihat', 'toms'], duration=3.5)
# 6 known toms:
d.note('tom1', duration=1/3)
d.note('tom2', duration=1/3)
d.note('tom3', duration=1/3)
d.note('tom4', duration=1/3)
d.note('tom5', duration=1/3)
d.note('tom6', duration=1/3)
d.rest(['kick', 'snare', 'hihat', 'cymbals'], duration=2)
# add a eighth-note snare flam to the score
d.note('snare', duration=1/2, flam=1/16)
d.rest(['kick', 'hihat', 'cymbals', 'toms'], duration=1/2)
# add a 5-note snare roll for an eighth-note, increasing in volume
d.roll('snare', duration=1/2, subdivisions=5, crescendo=[100, 127])
d.rest(['kick', 'hihat', 'cymbals', 'toms'], duration=1/2)
# crash and kick!
d.note('kick', duration=1/2)
d.note('crash1', duration=1/2)
d.rest(['snare', 'hihat', 'toms'], duration=1/2)
# add a 4-part, 4-bar, eighth-note phrase to the score
for _ in range(8):
d.pattern(
patterns={
'kick': '1000000010',
'snare': '0000001000',
'hihat': '0111111111',
'crash1': '1000000000',
},
duration=1/2
)
d.sync_parts() # make the parts play simultaneously
d.score.show() # or text, midi, etc. see music21 docs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
music_drummer-0.2.9.tar.gz
(43.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file music_drummer-0.2.9.tar.gz.
File metadata
- Download URL: music_drummer-0.2.9.tar.gz
- Upload date:
- Size: 43.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a25c62bf4d248ccf0cb77604a9c8d063266e5c7869538302f69ff03b3445238
|
|
| MD5 |
d5a37109577a3dbd2e0dae009c35c08d
|
|
| BLAKE2b-256 |
5c8d6dedcfd194bcf71e24acff11c8441043b1a4908cad8206712def39f388c9
|
File details
Details for the file music_drummer-0.2.9-py3-none-any.whl.
File metadata
- Download URL: music_drummer-0.2.9-py3-none-any.whl
- Upload date:
- Size: 29.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ef31018bec1acdad4a35ad70dafd1265bf5bed0a7166d2cb3119647e8ffc8eb
|
|
| MD5 |
892f0b8372e747332cc7b631ad2bebca
|
|
| BLAKE2b-256 |
b90e03baa08f2825de08d69d99cb706339434cd2e804e885301b5226361ff561
|