Minimum Unviable Product

It’s been about two weeks since TuneSage launched! Let’s see how many customers we have…

0

What?! Who could have foreseen this?

Anyway, full steam ahead. I’m continuing to work on TuneSage’s next feature, which is basic accompaniment generation, allowing users to add multiple tracks that provide harmonic support for melodies and help fill out the texture.

But honestly I’ve been sidetracked this week on a different secret feature. If I can get it to work as well as I want, it may actually be the next deliverable. Still a good bit of work to do on it though. Stay tuned!

TuneSage has launched! (Update 15)

I finally launched the MVP version of TuneSage yesterday!

Less than two months ago I posted about finally honing in on a productive algorithm that made progress smoother. So less than two months from that to launching an MVP is pretty satisfying!

Granted, it’s just an MVP with the bare minimum of what I want it to be capable of, but one must start somewhere, and having a live version that people can try out as I continue to develop it should be useful in terms of getting feedback.

What’s not so satisfying is just how insanely crowded the AI music space has become in recent years, and most of it is, in my biased opinion, pretty awful. Suno is fun, but it focuses on full audio more than the individual notes. That surely has much wider appeal, but free open models are constantly on its heels; it will be interesting to see what becomes of it in 10 years; how much will it have to pivot to becoming an AI-powered DAW to survive?

The more MIDI-focused AIs out there are far less impressive, in my opinion, and that’s the niche I’d really like to fill. But battling them in the SEO and getting TuneSage noticed at all is probably going to be a long, boring, unforgiving trudge. Still, it must be done. Someone must do it. I shall journey forth.

So it’s launched, but that’s just the start. Up next on the roadmap is:

  • Continuing to fine-tune the generator so that it can begin to generate differentiated styles (I wanted to do this before launching, but realized that it would take too long)
  • Adding more accompaniment (more tracks supplying more harmonic and rhythmic material)
  • Creating full song templates so the generator can generate entire multi-track pieces

The grand vision is for TuneSage to be able to generate a full (and completely customizable) Mozartean symphony with a single click. Still a ways away, but should be perfectly possible eventually!

You can help me reach this dream… go subscribe to TuneSage today!

TuneSage progress update 14

TuneSage is almost ready to launch, at least as an initial MVP. On the todo list:

  • Fix a few bugs
  • Add a few user account features (account info type stuff)
  • Get the app working online (rather than just on my local computer)
  • Add some maintenance and analytics to the back end

Then it will finally be time for the business stuff:

  • Register as an LLC
  • Open business bank account and Stripe account
  • Integrate Stripe
  • Integrate some Terms of Service
  • Integrate a feedback / bug reporting field
  • And an FAQ and a news or blog section to the site

… and I think that’s it. Some of those business items may need approval time, so I probably won’t launch this week as I’d hoped, but fingers crossed for next week!

Oh, I also vibe-coded a little MIDI animator for sharing some TuneSage melodies (though the chordal accompaniment is still very generic for now):

TuneSage progress update 13

In my latest TuneSage devlog, I demonstrate the generator’s ability to compose different melodic forms, custom chord progressions, and partial rerolls for selected notes! Which, as mentioned in the last post, were pretty much the final features I wanted to include before launching…

I’m hoping to launch the web app in just a week or two, between July 31st and August 7th. I want to spend a few more days honing the default generic style it will launch with, then do an overhaul of the interface, polishing up its look and feel. I’ve also got to set up user accounts, logins, that sort of thing, but that shouldn’t be difficult.

It will be a SaaS, a subscription web app, monthly or yearly. At launch, I’ll probably offer an “early adopter” price for the first 100 or 250 users, perhaps $5 a month? And then upping to $9 a month afterwards. And then the fun of seeing how long it will take to get traction! (As I continue building the tool, of course.)

TuneSage progress update 12

I’ve recently been working on a “pop” style for melodies, but they still sound a bit generic at this point. (There are plenty of samples in the video below.) With melodic styles having a lot of overlap, I’m not quite sure how or where I’ll end up drawing distinctions. But I’m less focused on delineating styles at the moment, and more focused on broad capabilities, making sure new things it learns remain compatible with what it’s already learned. For now, it’s got two new “forms”: a 4-bar phrase that repeats, and a 2-bar phrase that repeats twice followed by a 2-bar closing. It’s also does some minor syncopation now and then, and I’ve added a setting that allows users to set the “note density” to fine, medium, or coarse. (Fine means: more syncopation, more 16th notes, sounds better at slower tempos. Coarse means the opposite: less syncopation, no 16th notes, sounds better at faster tempos.)

I also added “theme blocks”, the idea being that one can write a mockup for a whole song by stringing together multiple themes.

Still much work to do, including what I mentioned last time: allowing the user to “lock in” part of a melody and have TuneSage regenerate the rest. I need more forms, especially ones longer and shorter than 8 bars. I’d like to allow the user to generate chord progressions separate from the melody, or supply their own chord progressions.

Even with such a lot of remaining work to do, I’d really like to release the app as soon as possible, despite its initial shortcomings, just to see if anyone out there is even interested in paying for such a thing, and if so, get some real user feedback. I’m aiming for releasing it at the end of July or early August. I’m tempted to continually put it off later and later as I add more capabilities, but I could probably continually do that for years, and I’ve already spent way too many years just getting my initial music theory ideas to this current state. Stay tuned!

(P.S. I’m also making the devlog videos on YouTube to help me practice presenting, as I don’t think I am very good at it.)

TuneSage progress update 11

Haven’t blogged in a while! Does anyone read blogs anymore anyway?

Also haven’t made an update about TuneSage in a few years. But I’ve been working on it on and off, trying a lot of approaches and doing a lot of experiments that ultimately failed. Lots of trial and even more error.

But I finally have a completely overhauled algorithm that is both extremely fast and much easier to iterate on (unlike previous versions), so I’m excited and finally feel like I’m making good progress once more (despite the emergence of a vocal anti-AI crowd that didn’t much exist 10+ years ago).

Anyway, I’ve just made a YouTube video demonstrating TuneSage as it is at the moment:

As I mention in the video, the three main things I want to add before launching the product:

  • Melodic styles (right now the melodies are purposefully very random and generic sounding)
  • The ability to write melodies more or less than 8 bars long, and the ability to string melodies together for larger forms
  • The ability to edit individual notes or chords, and the ability to “lock” notes or chords in place while re-generating the rest

Plus, I’ll probably move the chordal accompaniment to a separate track so that the user can choose different instruments for both.

Still, the app will focus only on generating melodies with chords at first. I’ll work on expanding the accompaniment generation abilities after the app is actually launched.

(P.S. As of this writing, tunesage.com is down because I switched hosts and still haven’t reuploaded the landing page… I should do that soon.)

TuneSage progress update 10

To my eternal shame, it’s been some months since I made any decent progress on TuneSage. But I’ve been back at it in the last few weeks, trying to tackle the time-consuming problems I’ve been having. Clearly my initial plans were not practical. Here are my current plans:

The AI

I’m vastly simplifying the “AI” element. In fact, I might even stop using “AI” to describe the app altogether. It’s become an overused marketing buzzword in the last couple years anyway. Users will still be able to generate melodies automatically, of course. But the backend will be a lot less complicated.

So I’m rethinking the whole concept of musical styles. My initial plan was simple enough: feed musical examples into a neural network, have it identify styles, and then use it to help write new music in those styles, pairing it with the melody-generating algorithm I already have. But that’s just not working very well, and I’ve spent way too much time fooling around with that approach.

But what exactly is musical style anyway? For melodies at least, we can probably get similar results by simply identifying and using melodic tropes, or signatures, and avoiding melodic rarities for a particular style. And on the melodic level, such tropes are simple enough that they can be identified and implemented without needing to train anything. Instead, we can just say, “hey, melody generator, make this melodic trope more likely to occur in what you generate.” Done. Easy.

Anyway, for the sake of just getting this darn app launched and getting a minimum viable product out there, I think I’m going to ignore styles for now altogether.

The front-end

I’ve been having difficulty figuring out just what the front-end should look like and how it should work.

Firstly, the app will focus, at least for now, only on writing or generating melodies. It won’t be for composing and mixing entire pieces, not at first anyway, unless they’re extremely simple. So, because the paradigm is focused on writing tunes, the traditional piano roll view or the track view, both of which I’ve spent some time putting together, just feel too clunky for editing melodies. The whole point of the TuneSage app is to change the paradigm of composing music, at least melody-wise, so it needs a view / layout designed for that purpose.

So I think I’ve finally come up with something that might work, which I’ll reveal when I get closer to launching (or on Twitch if / when I stream my programming again).

The current to-do list

  • Front-end
    • Buttons for: create new melody, generate melody, delete melody, move melody
    • Set tempo option
    • Allow user to “lock” notes & chords to allow for regenerating only a part or parts of a melody
    • Chordal accompaniment templates (mostly already done)
    • Chord chooser options (mostly already done)
    • Export MIDI / Save / Load options
    • Melody options
      • Time signature (probably only 2/3, 4/4, 3/4, 6/8 to start)
      • Key signature
      • Instruments for melody and chordal accompaniment
      • Volume
    • Play functionality (play, pause, stop)
    • Demo settings (not sure what the limits should be yet… perhaps limited time, no MIDI export, can only create a certain amount of melodies? Also need to find a way to discourage bots.)
  • Back-end
    • Melody generation code (mostly already done)
  • Overall app stuff
    • User login system
    • Terms of service page
    • Subscription service (Stripe?)
    • Create landing page
    • Actually incorporate as a company
    • LAUNCH

I think that’s it. Lots of stuff, but should all be doable, especially as I’m going to stop fooling around so much with the backend AI stuff for now.

TuneSage progress update 9

Getting closer to launching an initial version of TuneSage. I obviously bit off more than I could chew in creating the front-end. It still lacks a ton of features I’d like, but it’s just taking too long to program. I should’ve started with something much simpler. Oh well, too late now, I’m almost done. Here’s what I have left to do:

Front-end:

  • Delete track button
  • Copy / cut / paste sections
  • Melody / phrase options
  • Edit key signature
  • Ctrl+z undo
  • Export MIDI file
  • Finalize soundfont
  • Finalize icons

Back-end:

  • Use melody / phrase options sent from front-end
  • More training / styles

Overall site:

  • Create user / login
  • Boilerplate terms of service
  • Integrate user subscriptions (decide on a payment collector)
  • Create a landing page
  • Actually incorporate

I might just skip the front-end Ctrl+z stuff for now, because I’m not quite sure how to implement it efficiently and I’m afraid it might be too time consuming. Otherwise, I think I can finish the front-end stuff by the end of next week.

I’m not sure how long the back-end training will take, because it takes of a lot of tedious data formatting and trial and error.

And the final overall site stuff shouldn’t take long. I’ve never integrated a subscription service before, but I’m guessing most payment services make that pretty easy these days.

I’d love to launch before the end of the month. We’ll see how it goes!

TuneSage progress update 8

There’s still a lot of work to do, but I think I just might actually be able to launch TuneSage’s MVP this month! I’m done with all the difficult and time-consuming backend algorithmic programming. All that’s left with the backend now is manual training and calibration. That will still take some time, but it’s mostly data entry and testing. I think the melodic styles TuneSage will offer on launch will consist of:

  • Irish / Scottish folk song
  • American folk song
  • Sea Chantey
  • Hannifin (trained from my own compositions)
  • Generic

Of course, I’ll later add more styles, but these are easy to train for, as I can use simple public domain examples as training data, and they’ve already stood the test of time.

Still lots of stuff on the todo list though:

  • Melody generation options GUI on the frontend
  • Overhaul frontend design
  • Finalize soundfont
  • Allow setting track volume1
  • Recreate the landing page / home page
  • Add user account system (register / login / logout)
  • Add some basic terms of service
  • Setup payments system / trial period2
  • Setup some sort of analytics to track usage metrics
  • Register company (officially found it as a company)

So still quite a bit of work, but it’s all very doable, and I know (or am confident I can easily figure out) how to do it.

Then, after launching, I’ll be focused on iterating, iterating, iterating repeatedly, trying to improve the app and get users and feedback!

Stay tuned, I should be able to release some example melodies soon!

TuneSage progress update 7

The time is flying by too quickly! But I am making progress. The backend melody-generating code is working much better now, though it’s actually only writing four-bar phrases at the moment. So I’ll be working on expanding that capability for the rest of the week, as well as expanding its stylistic palette with more training data. (A melody is just a collection of related phrases, so the foundation is already there.) If I’m lucky, I may even be able to share some example output next week.

Frontend-wise, I think the only other feature I need to work on for now is the ability to add, move, and delete tempos, which should only take a couple of hours. The frontend it still needs a design overhaul, though, which will take another day or two.

The frontend will be missing a lot of features on launch, but users should at least be able to generate tunes and export them as MIDI files to open in their favorite DAW or notation program or whatever.

So I think my schedule is close to the same as it was in my last progress update:

  • This week: Finish backend and redesign frontend
  • Next week: Soundfont and user account system, start releasing samples
  • Week 3: Register company, install payment and analytics systems
  • Week 4: Set up trial, front page update, and launch!

If I can actually accomplish that, I could launch as soon as August 15!

But of course that’s probably not going to happen…

Still, we’re getting closer and closer!