Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/magenta/drumbot
Play real-time music with a machine learning drummer that drums based on your melody.
https://github.com/magenta/drumbot
Last synced: 7 days ago
JSON representation
Play real-time music with a machine learning drummer that drums based on your melody.
- Host: GitHub
- URL: https://github.com/magenta/drumbot
- Owner: magenta
- License: other
- Created: 2019-11-15T17:59:25.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-09-22T04:40:39.000Z (about 1 year ago)
- Last Synced: 2024-08-01T02:33:17.980Z (3 months ago)
- Language: JavaScript
- Homepage: https://drumbot.glitch.me/
- Size: 55.7 KB
- Stars: 230
- Watchers: 8
- Forks: 30
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
DrumBot
=================
Need a drummer but don't know anybody? Try DrumBot!
Play real-time music with a machine learning drummer that drums based on your melody.## How does it work?
This app uses an open-source Magenta model called Drumify, which is is able
to convert a constant-velocity 'tap' pattern into a drum pattern.DrumBot records 2 bars of your melody, removes the pitches from it
(so that it's a sequence of taps), and then sends it to the model, which is
running on a Node server. Even though the model could run in your browser, we
run the slightly expensive machine learning code in the background, on the
Node server, so that your realtime audio is never interrupted.You can read more about how the model was trained on the [Magenta blog](https://magenta.tensorflow.org/groovae)!
## How to run locally
After cloning this repo, run:```
npm install
npm start
```
Depending on your connection, this will take a bit of time (it needs to download a model checkpoint that's about 50MB). You will also see a warning that `This browser does not support Tone.js` -- ignore that. It's a red herring :)This will start the local Node server on port `9876`. In your browser, navigate to
[localhost:9876](http://localhost:9876/) to view the app.