https://github.com/xyproto/autodrums
:space_invader: Generate non-repeating drum beats
https://github.com/xyproto/autodrums
audio cplusplus cxx drum-machine drum-machines generative-music linux music sample-player samples sdl2-mixer
Last synced: about 2 months ago
JSON representation
:space_invader: Generate non-repeating drum beats
- Host: GitHub
- URL: https://github.com/xyproto/autodrums
- Owner: xyproto
- License: bsd-3-clause
- Created: 2021-07-25T15:00:06.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-07T11:37:52.000Z (about 1 year ago)
- Last Synced: 2025-03-29T03:04:26.910Z (2 months ago)
- Topics: audio, cplusplus, cxx, drum-machine, drum-machines, generative-music, linux, music, sample-player, samples, sdl2-mixer
- Language: C++
- Homepage:
- Size: 252 KB
- Stars: 8
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
A randomized drum machine.
Play non-repeating drum beats.
This can be used for:
* Creating a drum track for twelve tone music intended to be used for modern dance.
* Generating audio that can be sampled and sliced.
* Listening to experimental jazz drums for hours and hours on end.## Requirements
* SDL2 (including `sdl2_image` and `sdl2_mixer`)
* Download and extract [the drum samples](http://cdn.mos.musicradar.com/audio/samples/musicradar-drum-samples.zip), either manually or by using `make run`.
* g++ that supports C++20.
* `pkg-config`
* `make`## Build
Tested on Arch Linux and macOS.
* Build with `make`.
## Keybindings
* Press `r` to randomize the samples.
* Press `p` to pause toggle (try holding it down for an interesting effect).
* Press `space` to toggle pause, with a 200ms fade-out.
* Press `esc` to quit.* Press `a` to play a kick drum sound.
* Press `w` or `f` to play a snare sound.
* Press `d` to play a crash sound.
* Press `s` to play a closed hi-hat sound.
* Press `q` to play a tom sound.
* Press `e` to play a ride sound.
* Press `x` to play an open hi-hat sound.
* Press `return` to play a snare sound with a tiny bit of delay added.* Press `m` to increase the tempo.
* Press `n` to decrease the tempo.* Press `y` to use the current settings, don't change the samples.
* Press `i` to toggle "random beat skip".
* Press `j` to toggle "use random beat silence".* Press `o` to output the current sample indices.
Note that playing too many sounds at the same time does not always work.
* [keydrums](https://github.com/xyproto/keydrums) is an alternative if the goal is just to play drums with the keyboard.
## General info
* Version: 1.1.0
* Author: Alexander F. Rødseth <[email protected]>
* License: BSD-3