adamcogen / drum-machine-py-poc

Polyrhythmic drum machine proof-of-concept written in Python
0 stars 0 forks source link

Hello #1

Closed jeremydeanw closed 1 year ago

jeremydeanw commented 3 years ago

Hi there, this looks really sweet. On a PC, so i'm not sure how to test.
Have you checked out: https://github.com/tiburzi/cync or cync.app ?
I'm wondering if there is a way to output live midi from it. (to trigger a hardware drum machine) It already has a midi save function. I have no formal coding experience.
Just trying to find someone to help me figure it out. Do you have any experience with javascript? -Jeremy

adamcogen commented 3 years ago

Hi Jeremy, Wow, this is so cool! I’m not sure about outputting live midi from Javascript, but I will try to look into this soon. The Cync UI design also gives me a few ideas for features that I think would be cool to add. I don’t have much experience with JS but I’ll see if I can pick it up. Adam

adamcogen commented 3 years ago

Also, it’s untested but I think the drum machine I made should be able work on Windows, as long as you have Python 3 installed and a midi device / port for it to connect to. For connecting to a DAW, I’m sure there’s a way to set up a virtual midi port on Windows.

jeremydeanw commented 3 years ago

Ok cool thanks, I'll see if I can get it going. I like how simple and user friendly it looks....all the polyrhythmic drum machines I see here on github are so complicated looking and fussy.
I dig the circular idea of cync, somehow it just works for my brain.
That would be so so cool. I did ask the guys who wrote it, but they said they were busy with other projects unfortunately.

adamcogen commented 1 year ago

Hi Jeremy,

It's been a long time, but in case you're still interested in this type of work, I made a new drum machine that supports live MIDI output. It's basically a remake of my old Python drum machine in JavaScript (so it runs in the browser), with a bunch of improvements and new features, and with a Cync-inspired click-and-drag user interface.

You can check it out here if you like:

jeremydeanw commented 1 year ago

Oh snap! I don't even remember messaging you here haha, this is sick!! Just playing with it now....one thing that I'd find super useful off the bat, is if I could copy and paste created sections, or multiply a sections that I've created. So for instance, I just made a 4 beat long section, if I wanted to add a duplicate section after it, but then do a few change ups in each section that would be super cool.
Dragging and dropping sections into a bottom window would be super neat.

Also -random velocity/oscillating velocity, so that hits aren't the same volume each time? -Stretch/swing instead of quantized on/off, so I can slide between quantized and nonquantized -The ability to load in my own wav's as samples instead of the kit.
-I'd find that clicking the sample and then clicking on the track is easier than dragging the note for a quicker flow .

adamcogen commented 1 year ago

Thanks for the ideas!

I just finished up "version 1.0," which was to get the basic functionality of everything working with as nice a UI as I could, and also had some ideas for improvements that will require more work later.

Regarding your specific ideas:

I'm not a UI / frontend / design guy, so it was tough to find the best way to make all the features easy to find! At some point I might make a quick video showing how to use everything, or something like that, and link it from the page.

jeremydeanw commented 1 year ago

Another idea is having the ability to load in an actual wav drum break.
https://www.youtube.com/@ArmandoDrumBreaks/videos https://www.youtube.com/@drumbreakdetective9347/videos and have it represented (maybe concatenatively?) via an internal database of synthetic drum parts...thinking like how the 808 was done with analog synthesis. then you could actually dissect rhythms into their fundamental elements (of clicks, tones, bass...etc), and then send em out to midi! (like you have)
Thats a crazy idea though haha.
Probably easier than all that, it'd be cool to have a midi drum database built in (https://www.reddit.com/r/WeAreTheMusicMakers/comments/3anwu8/the_drum_percussion_midi_archive_800k/) , where one could randomize rhythms based on the database. ?
I'll keep an eye on this, I can see myself using it for sure with a drag and drop arranger (thats what its called!) part at the bottom, and I love the ability to save the URL!
I can see a lot of people wanting to use this.