An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

        

autodrums logo

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