top | item 24090959

Show HN: Warp, a Python based music-theory aware MIDI sequencer

98 points| mpdehaan2 | 5 years ago |warpseq.com

35 comments

order

mpdehaan2|5 years ago

Hi everyone,

I've been making music with synthesizers for a long time, and I always saw great ideas in DAW tools and in hardware, but never all of those ideas in one place. I wanted more music theory awareness in my compositional tools, like the ability to access easy scale changes. I wanted patterns to be symlinks, and to make it easy to have multiple patterns in a single clip.

I wrote Warp to make it happen. Today there's a Python API that can make full songs, and the work on the UI is getting started, which will be available this Fall.

The Python API doesn't technically even require using a loop, so it should be accessible to programmers who aren't Python experts.

Let me know if there are questions, and if you'd like updates, you can also follow @warpseq on twitter.

tachyonbeam|5 years ago

Hello there. This looks interesting, but I think that from a promotional standpoint, your website needs screenshots or a video of the user interface for your program. It's cool that you can make this music with it, but I would like to quickly get a feel for how your program is used.

IMO, most people will want to see that before they invest time reading documentation or downloading and installing your software.

Just my two cents! I hope this is helpful.

Mizza|5 years ago

This is cool!

I've build a much cruder version that I use for generating chord sequences to bring into DAWS:

https://github.com/Miserlou/chords2midi

It even has voice leading, which required translating an "algorithm" written in German in the 1800's!

mpdehaan2|5 years ago

oh cool, I had a friend who mentioned (I think another one though) program that generated tiny MIDI clips. That would be great for dragging into a DAW and repositioning them around. Nice!

StavrosK|5 years ago

I tried to use this, but the PYTHONPATH weirdness was a minor impediment, I tried to actually install it but setup.py is missing a quote, installing it doesn't actually install the notation module, and then finally relenting and redefining PYTHONPATH runs to the point where it tells me I need a MIDI device, and I don't have one.

Can I not just make it output sound to my computer speakers?

jestar_jokin|5 years ago

A MIDI sequencer just outputs MIDI instructions, it doesn't generate sound unless it implements a synth (sound generator) of some sort.

You'd need to install something like loopMIDI, and direct the output of the sequencer to the input of a VST host, where you can load whatever synths you want.

kbob|5 years ago

This looks a little like the NDLR from Conductive Labs. The NDLR is a hardware box. While you can enter chord progressions into it, it's intended for live performance where you enter chords as it plays them.

My issue with the NDLR is that its sequences have no random variation. If you don't keep tweaking the parameters ("noodling"), it starts sounding repetitive quickly.

Any idea whether Warp would run on MicroPython? The NDLR, or a box like it, might make a nice UI.

jsilence|5 years ago

Would be awesome if it ran on Micropython or Circuitpython. Preferably on a Teensy 4.0.

mpdehaan2|5 years ago

Yeah, I don't know what it would take. We're currently using very few dependencies so... maybe? Shoot me an email using the links on the homepage if you like and we can continue the conversation.

LeoPanthera|5 years ago

I love the idea, but if successful, I don't how the Warp record label will feel about the name. https://warp.net

TaupeRanger|5 years ago

"music theory aware"? Like...it snaps sequences to scales like every other decent sequencer? I can't actually tell why this is useful from the front page description.

mpdehaan2|5 years ago

Nope! With those systems you have no way to input accidentals. Here, notes are entered in scale degree, so if you say "4 5 6" you get the 4th, 5th, and 6th scale note, every time. If you later want to transpose to Eb Pentatonic, everything remains musical. The arp can also tranpose by scale notes instead of just semitones too.

Also, there's quite a bit more, all in the docs. There's a ton more there.

henearkr|5 years ago

Maybe Julia would be the more natural language for music theory, as both are one-based indexed.

kazinator|5 years ago

Two wrongs won't make a right.

A much better idea is to represent intervals internally in such a way that unison is zero.

The jury may be out on how to enumerate items in a sequence, but a delta offset must be zero-based. That is simply not negotiable.

Western music theory is crazy.

Come on: every seven diatonic notes, we get another octave? What? And then we need a "rule of nine" for inverting an interval?

adamnemecek|5 years ago

I've been working in an IDE for music composition http://ngrid.io. Releasing soon.

main_gi|5 years ago

Are there previews or short videos with this?