GithubHelp home page GithubHelp logo

mganss / drumbrain Goto Github PK

View Code? Open in Web Editor NEW
44.0 5.0 4.0 214 KB

Drum pattern generator Max for Live device.

License: MIT License

JavaScript 13.73% Max 82.49% C# 3.78%
808 909 drum-machine drumkit drums m4l maxforlive

drumbrain's Introduction

DrumBrain

DrumBrain Screenshot

A Max for Live 808/909-style drum pattern generator and sequencer based on a Lempel-Ziv model. The device has a built-in model that was generated from ~250 existing drum patterns using the incremental parsing algorithm described in Guessing the Composer's Mind: Applying Universal Prediction to Musical Style.

Demo on YouTube

Download under releases or at maxforlive.com

Features

  • Generate patterns specific to 11 different instruments
  • Create MIDI clips
  • Continue mode, continues an existing pattern
  • Patterns have low/high velocity
  • Additional total accent (configurable amount)
  • Select pitch and low/high velocity for each instrument
  • Shuffle
  • Pattern length between 1 and 32 steps
  • Select "House", "Breaks", or "All" style patterns (see below)
  • 909-like flam (configurable amount)
  • Presets
  • Out clip (see below)

Total accent

The total accent feature works similar to the 808/909 accent (AC). When it's enabled, the selected amount of velocity is added to some steps (depending on the generated AC pattern) for a maximum of 127. For example, if the high velocity for an instrument is 96 and it gets an accent of 40, the velocity will be 127.

Flam

Flam is similar to 909 flam, i.e. steps for which the generated pattern has a flam will have two short successive hits. The duration of an individual hit is 10ms and the two hits occur at the selected interval. The default is 20ms, approx. like setting 11 or 12 on a 909 (see here for measured timings on a real 909). In generated MIDI clips the duration is a bit longer, this seems to be a limitation of the Max for Live API.

Styles

You can select between "House", "Breaks", or "All" style patterns. If you choose "House", the model is one where the existing drum patterns had bass drum hits on steps 1, 5, 9, and 13. The "Breaks" model was generated from patterns which did not follow this pattern.

Create clip

If you click Clip a new clip with the current pattern is generated in the first empty clip slot of the current track. You might notice subtle timing differences when comparing recorded MIDI vs. created MIDI clips. This is a limitation of Max for Live.

Out clip

Create an empty clip, select it, then click Out to permanently set this clip as DrumBrain's output clip. Whenever the pattern changes, this clip will be updated.

Continue

If the Continue toggle is activated, DrumBrain will read MIDI notes from the first non-empty clip slot of the current track and continue the pattern. Notes are internally quantized to 16th notes (duration is irrelevant). Velocities that are equal to or higher than the selected high velocity are considered high, all others low. If more than one hit occurs in a 16th note interval, the step is considered a flam. If a clip is longer than two bars, only the last 32 steps are considered.

Context

When a step is generated, the previous steps that are used to look up the possible next steps from the continuations dictionary are called the context. The maximum number of steps in the context can be selected within a range of 1 to 32. Lower numbers will result in more random output.

Contribute

Contributions are welcome, in particular more existing 808/909 patterns in any machine readable format to improve the model.

drumbrain's People

Contributors

mganss avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

drumbrain's Issues

Issue in Live 11 suite.

I encountered this issue when grouping Drumbrain with a few other max4live devices. The intent was to have a central hub to quickly create patterns in a live performance environment.

After creating simple device macros for an on/off toggle and assigning midi to a controller for each parameter in Drumbrain, I noticed that I had lost the ability to generate clips.

I am not sure if this is a known issue or not. However I wanted to submit it, just in case.

Also, is there a way to midi assign the preset bank? If not, that would be a great feature.

Lastly, a cue parameter for each instrument would be the bees knees for this device. Instead of bouncing it out, being able to select each instrument and preview it via headphones would be the greatest thing, like ever. Being able to mute the tracks is good, but cueing them would be soooo sweet. An additional button would be all you need, per instrument, and perhaps a master cue volume parameter to pair with it.

This device is awesome as is. The above would make it awesome- er. Haha.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.