Hacker News new | ask | show | jobs
Show HN: Melogen – Generate MIDI melodies for free (melogen.ai)
4 points by squirrelon 34 days ago
Melogen generates short melodic phrases as .mid files, no rendered audio, just notes you drop into your DAW. Free to try, no signup required.

I built this because every "AI music" tool I'd tried produces finished audio, which is the opposite of what I want when I'm stuck on a hook. I wanted something that hands me a MIDI seed I can take into Ableton/FL/Logic and shape myself.

Under the hood: - Decoder-only transformer trained on MIDI - Outputs note sequences with timing and velocity - Tuned for short, usable phrases rather than full arrangements

It's still in beta and rough in places. I'd value blunt feedback on: - Whether the generations are actually musical, or just "notes that fit a key" - MIDI handling: timing, velocity, channel assignment - What's missing before it would slot into a real workflow

Happy to get into the model, dataset, or pipeline in the comments.

1 comments

Feel free to comment any enhancement suggestions or points you have.
Cool. Generation of symbolic music using transformers is indeed a pretty neglected field. I assume you have to encode more "musical knowledge" into the embeddings than when you "just" compress waveforms. Can you provide information on your embeddings?
Hi, It is actually not using transformers, those would be too slow. It is using a combination of CNN's and linear layers. Correct, it uses embedings, not waveforms or spectrograms. The inputs are midis, some of which I made myself in FL Studio. The model creates a "latent representation" from each midi, I can then sample randomly from this latent space to get an original piece. The most important part is the preprocessing in my opinion.
That's fascinating. This sounds like a variational autoencoder. The embeddings, which from my humble point of view (as a trained musician) are a largely unexplored field not really supported by existing theory, are at the same time game-deciding. Have you found a good solution for this?