{"id":15394383,"url":"https://github.com/xyproto/autodrums","last_synced_at":"2025-06-21T21:40:53.244Z","repository":{"id":136546535,"uuid":"389373625","full_name":"xyproto/autodrums","owner":"xyproto","description":":space_invader: Generate non-repeating drum beats","archived":false,"fork":false,"pushed_at":"2024-05-07T11:37:52.000Z","size":258,"stargazers_count":8,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T03:04:26.910Z","etag":null,"topics":["audio","cplusplus","cxx","drum-machine","drum-machines","generative-music","linux","music","sample-player","samples","sdl2-mixer"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xyproto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-25T15:00:06.000Z","updated_at":"2024-10-29T14:36:41.000Z","dependencies_parsed_at":"2024-04-17T14:45:04.030Z","dependency_job_id":"b13e69b0-b40e-4fb2-b512-bc9fd1cbf903","html_url":"https://github.com/xyproto/autodrums","commit_stats":{"total_commits":29,"total_committers":2,"mean_commits":14.5,"dds":0.2068965517241379,"last_synced_commit":"cb1ef27720e9991e12e8d991ef0c29a958d491ed"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fautodrums","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fautodrums/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fautodrums/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fautodrums/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto","download_url":"https://codeload.github.com/xyproto/autodrums/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249173061,"owners_count":21224481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","cplusplus","cxx","drum-machine","drum-machines","generative-music","linux","music","sample-player","samples","sdl2-mixer"],"created_at":"2024-10-01T15:23:26.058Z","updated_at":"2025-04-15T23:53:36.472Z","avatar_url":"https://github.com/xyproto.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg alt=\"autodrums logo\" width=\"256\" src=\"img/autodrums.png\"\u003e\n\nA randomized drum machine.\n\nPlay non-repeating drum beats.\n\nThis can be used for:\n\n* Creating a drum track for twelve tone music intended to be used for modern dance.\n* Generating audio that can be sampled and sliced.\n* Listening to experimental jazz drums for hours and hours on end.\n\n## Requirements\n\n* SDL2 (including `sdl2_image` and `sdl2_mixer`)\n* Download and extract [the drum samples](http://cdn.mos.musicradar.com/audio/samples/musicradar-drum-samples.zip), either manually or by using `make run`.\n* g++ that supports C++20.\n* `pkg-config`\n* `make`\n\n## Build\n\nTested on Arch Linux and macOS.\n\n* Build with `make`.\n\n## Keybindings\n\n* Press `r` to randomize the samples.\n* Press `p` to pause toggle (try holding it down for an interesting effect).\n* Press `space` to toggle pause, with a 200ms fade-out.\n* Press `esc` to quit.\n\n* Press `a` to play a kick drum sound.\n* Press `w` or `f` to play a snare sound.\n* Press `d` to play a crash sound.\n* Press `s` to play a closed hi-hat sound.\n* Press `q` to play a tom sound.\n* Press `e` to play a ride sound.\n* Press `x` to play an open hi-hat sound.\n* Press `return` to play a snare sound with a tiny bit of delay added.\n\n* Press `m` to increase the tempo.\n* Press `n` to decrease the tempo.\n\n* Press `y` to use the current settings, don't change the samples.\n* Press `i` to toggle \"random beat skip\".\n* Press `j` to toggle \"use random beat silence\".\n\n* Press `o` to output the current sample indices.\n\nNote that playing too many sounds at the same time does not always work.\n\n* [keydrums](https://github.com/xyproto/keydrums) is an alternative if the goal is just to play drums with the keyboard.\n\n## General info\n\n* Version: 1.1.0\n* Author: Alexander F. Rødseth \u0026lt;rodseth@gmail.com\u0026gt;\n* License: BSD-3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxyproto%2Fautodrums","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxyproto%2Fautodrums","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxyproto%2Fautodrums/lists"}