Giter VIP home page Giter VIP logo

acid-banger's Introduction

The Endless Acid Banger

An algorithmic human-computer techno jam

Screenshot

Built in Typescript with the WebAudio API.

Live version running at www.vitling.xyz/toys/acid-banger

Support

You can support my work by Sponsoring me on GitHub or buying my music

License & Intended use

This is an art project, not a software tool for music creation. I consider it to be finished, and as such I will likely not be accepting feature requests or feature-driven PRs. Please feel encouraged to fork the project and do something else with it if you would like - I love to see further creative work built on top of it.

This work is licensed under a Creative Commons Attribution 4.0 International License. I am aware that this is an unusual choice for code, but it reflects its status as an art project. IANAL, so I'm not sure how this stands up legally, but in my mind this is an infinite interactive composition and as such it should be licensed like music or other creative works.

This means you can use the ideas and/or the code and/or the music output in derivative works, but you must give credit to the original source (ie. me and this project).

acid-banger's People

Contributors

optay avatar vitling 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

acid-banger's Issues

Clock slows down significantly and randomizer stops in Safari

Navigating away from the playback interface as the main tab in Safari causes a significant drop in the clock and the randomizer also stops. Everything functions normally when the app is the active tab and reverts back to functioning normally if you move away and click back. Only happens in Safari and functions perfectly in Chrome.

Safari version 14.0.3 (16610.4.3.1.7)

MIDI Implementation

I've come up with a way to use your app to drive external synths and drum machines using WebMIDI (currently supported by Chrome).

There's a squashed commit here that has a rough draft: https://github.com/nagytech/acid-banger/commit/bf0cc4764623ec82bb618f7c13c0655516fc0f6e

I'm wondering if you would be interested in this as a feature. And, if you might have some insight on how you would offer the user the option to select a MIDI output (if found and supported).

I'll continue to clean up my implementation, hopefully it will be less of a hack soon.

Summary

  • Notes for saw osc are sent to MIDI channel 8
  • Notes for square osc are sent to MIDI channel 9
  • Drum tracks are sent to channels 1,2,3 and 4 using note 35

TODO

  • Velocity is set to a static value, will need to map this to the appropriate MIDI values
  • Filter values, accents and glides are not implemented yet (will need to look up the right CC values for this)
  • Different synths will have different retrig rules, so ties (glide) notes might be tricky to implement - I can do what works for me, but no guarantee it works for others.

Hardware

WebMIDI Out -> Digitakt MIDI via USB -> Tracks 1-4 -> Drum Samples
                                        Tracks 10-11 -> MIDI Out -> MIDI to CV -> Synth A/B

Demo

AT-cm.11436226992.mp4

Volca / Pocket Operator sync output

I'd love to sync my Pocket Operators with the Acid Banger. They use some sort of click track on the left channel, same as the Korg Volca line I believe. Would it be possible to add an option to output this? Bonus points for using the audio recording APIs to take sync input.

CC is not recommended for software

CC licenses are great for most mediums. Software is a different story.

We recommend against using Creative Commons licenses for software. Instead, we strongly encourage you to use one of the very good software licenses which are already available.

Depending on how careful you'd like to be (and protective of the open source nature of this tool), something like Apache 2.0 (requires only attribution; can be used in closed source) or GPL 3 (requires attribution; cannot be used in closed source) would be better for the code in the repo. Typically FOSS projects apply some sort of FOSS license to their code and a CC license to the documentation and assets.

Really enjoy the project! Thanks so much for sharing

Volume control

I wish there was a master volume control so I could balance the music with other things im doing on the computer

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.