All Projects → jstrait → Beats

jstrait / Beats

Licence: mit
A command-line drum machine. Convert a beat notated in YAML into a *.wav file.

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Beats

Awesome Music Production
A curated list of software, services and resources to create and distribute music.
Stars: ✭ 340 (-12.6%)
Mutual labels:  audio, music, sound
Swift Radio Pro
Professional Radio Station App for iOS!
Stars: ✭ 2,644 (+579.69%)
Mutual labels:  audio, music, sound
Mimium
mimium (MInimal Musical medIUM) a programming language as an infrastructure for sound and music.
Stars: ✭ 212 (-45.5%)
Mutual labels:  audio, music, sound
Torch Audiomentations
Fast audio data augmentation in PyTorch. Inspired by audiomentations. Useful for deep learning.
Stars: ✭ 164 (-57.84%)
Mutual labels:  audio, music, sound
Figaro
Real-time voice-changer for voice-chat, etc. Will support many different voice-filters and features in the future. 🎵
Stars: ✭ 80 (-79.43%)
Mutual labels:  cli, audio, sound
Aubio
a library for audio and music analysis
Stars: ✭ 2,601 (+568.64%)
Mutual labels:  audio, music, sound
Supercolliderjs
The JavaScript client library for SuperCollider
Stars: ✭ 381 (-2.06%)
Mutual labels:  audio, music, sound
Audiokitsynthone
AudioKit Synth One: Open-Source iOS Synthesizer App
Stars: ✭ 1,258 (+223.39%)
Mutual labels:  audio, music, sound
Pulsemixer
CLI and curses mixer for PulseAudio
Stars: ✭ 441 (+13.37%)
Mutual labels:  cli, audio, sound
Chime
🎵 Python sound notifications made easy
Stars: ✭ 56 (-85.6%)
Mutual labels:  command-line, audio, sound
Ni Media
NI Media is a C++ library for reading and writing audio streams.
Stars: ✭ 158 (-59.38%)
Mutual labels:  audio, music, sound
Daisysp
A Powerful, Open Source DSP Library in C++
Stars: ✭ 291 (-25.19%)
Mutual labels:  audio, music, sound
Simple Sdl2 Audio
A simple SDL2 audio library without SDL_Mixer for playing music and multiple sounds natively in SDL2
Stars: ✭ 111 (-71.47%)
Mutual labels:  audio, music, sound
Ableton Live Tools
A collection of useful additions to @Ableton Live, including better @Git integration.
Stars: ✭ 198 (-49.1%)
Mutual labels:  audio, music, sound
Webmidikit
Simplest MIDI Swift library
Stars: ✭ 100 (-74.29%)
Mutual labels:  audio, music, sound
Gwion
🎵 strongly-timed musical programming language
Stars: ✭ 235 (-39.59%)
Mutual labels:  audio, music, sound
Pandoraplayer
🅿️ PandoraPlayer is a lightweight music player for iOS, based on AudioKit and completely written in Swift.
Stars: ✭ 1,037 (+166.58%)
Mutual labels:  audio, music, sound
Minibae
The platform-neutral Beatnik Audio Engine, Mini Edition (miniBAE) is an exceptionally mature, well-rounded, and reliable computer music and sound system specially customized for small-footprint and embedded applications.
Stars: ✭ 82 (-78.92%)
Mutual labels:  audio, music, sound
Godot Mixing Desk
A complete audio solution for Godot 3.2.x, making procedural sound and adaptive/procedural music possible with a few nodes and a couple lines of code.
Stars: ✭ 240 (-38.3%)
Mutual labels:  audio, music, sound
Yt Audio
A simple, configurable youtube-dl wrapper to download and manage youtube audio
Stars: ✭ 132 (-66.07%)
Mutual labels:  cli, audio, music

Beats Drum Machine

Beats is a command-line drum machine written in pure Ruby. Feed it a song notated in YAML, and it will produce a precision-milled *.wav file of impeccable timing and feel. Here's an example song:

Song:
  Tempo: 105
  Flow:
    - Verse:  x4
    - Chorus: x4
  Kit:
    - bass:     house_2_1.wav
    - snare:    roland_tr_909_2.wav
    - hihat:    house_2_5.wav
    - cowbell:  big_beat_5.wav
    - deep:     house_2_2.wav

Verse:
  - bass:     X..X...X..X.....
  - snare:    ....X.......X...
  - hihat:    ..X...X...X...X.

Chorus:
  - bass:     X..X...X..X.....
  - snare:    ....X.......X...
  - hihat:    XXXXXXXXXXXXX...
  - cowbell:  ....XX.X..X.X...
  - deep:     .............X..

And here's what it sounds like after getting the Beats treatment. What a glorious groove!

For more, check out beatsdrummachine.com

Installation

To install the latest stable version (2.1.2) from rubygems.org, run the following from the command line:

gem install beats

Note: if you're installing using the default version of Ruby that comes with macOS, you might get a file permission error. If that happens, use sudo gem install beats instead. If you're using a version manager such as rbenv, chruby, or RVM, plain gem install beats should work fine.

Once installed, you can then run Beats from the command-line using the beats command.

Beats is not very useful unless you have some sounds to use with it. You can download some example sounds from https://beatsdrummachine.com.

Usage

Beats runs from the command-line. Run beats -h to see the available options. For more detailed instructions, visit https://beatsdrummachine.com/usage/.

Check out this tutorial at beatsdrummachine.com to see an example of how to create a beat from scratch.

What's New in v2.1.2

The latest version of Beats is 2.1.2, released on December 18, 2019. It contains these changes:

  • Several confusing/unhelpful errors shown due to an error in an input file have been improved. For example, if a pattern has the invalid name "4", the error message will now be Pattern name '4' is not valid. It must be a value that will be parsed from YAML as a String., instead of undefined method 'downcase' for 4:Integer.

For info about previous releases, visit https://github.com/jstrait/beats/releases.

Local Development

First, install the required dependencies:

bundle install

To run Beats locally, use bundle exec and run bin/beats, to avoid using any installed gem executable. For example:

bundle exec bin/beats -v

To run the tests:

bundle exec rake test

Found a Bug? Have a Suggestion? Want to Contribute?

Contact me (Joel Strait) by opening a GitHub issue.

License

Beats Drum Machine is released under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].