TuneSage progress update 5

It’s been over a year since my last TuneSage update, but work has been progressing. Work on the backend was slow and challenging; I spent some time going down quite a few dead-ends. But it’s actually generating melodies now, so I should be able to release some output samples sometime soon, fingers crossed.

I signed up for this year’s Y Combinator’s Startup School once again. I did it once back in 2019, but other than making a landing page (TuneSage.com), my progress was sparse. I just needed a lot more time than I imagined to make progress with the backend.

Startup School’s Course Guide says: “If you haven’t launched yet, make it a goal to launch during the program and get your first users!”

OK, I guess I’ll make it a goal then! Granted, I have repeatedly failed at making enough progress to launch whenever I have set it as a goal, but one must keep trying I suppose.

My question is: how many features do I need to launch with? For better or worse, my current plan is to just launch the product as a basic melody generator to start with.

So what do I need to do to launch?

  • Prepare the backend
    • Train the AI on more melodies (using public domain melodies)
    • Generate melodies in a variety of styles (these will be basic to start with)
  • Add at least some simple chordal accompinement features to frontend
    • e.g. root notes, arpeggio patterns, alberti bass, etc.
  • Overhaul frontend design (lots of tedious web design) and finalize
  • Figure out what soundfonts TuneSage will use
  • Figure out deployment and version control (honestly this can probably wait until after launch, but not too long after)
  • Create user account system
    • Create new account
    • Confirm email (if necessary)
    • Log in / out / reset password
    • Edit optional personal info
    • Usage stats
    • Terms and conditions
  • Register company
  • Find some payment system to use
  • Allow for a trial period (and decide exactly what that consists of)
  • Install some analytics system (so I can keep track of user engagement or whatever)
  • Stress testing? (In my experiments with “trovedex”, the database kept going down; I really don’t want that to be a problem. Anyway, I can always do invite-only if the system is too stressed, but that would be a good problem to have)
  • Launch! Update front page with information

Is that it? Am I forgetting anything?

Of course, there are many more features I’d still like to add; AI can be used for a lot more than just generating melodies. But it’s a starting point, and melodies are the one area I think other AI music systems struggle with the most at the moment.

So how long will all that take? Can I finish it in a few weeks? Startup School lasts for 7 weeks, so if I can do it in 3 or 4 weeks, that would be awesome. Considering how long things have taken me in the past, however, it will probably take me… 12 years. But for now let’s daydream:

  • Week 1: Finish backend and overhaul frontend
  • Week 2: Soundfont and user account system, start releasing samples
  • Week 3: Register company, install payment and analyctics systems
  • Week 4: Set up trial, stress testing, front page update, and launch!

That’s probably wishful thinking, but it’s better than nothing.

TuneSage progress update 4

It’s already been two weeks since the previous update? Bleh, I program too slowly. The undo / redo system was a bit tricky to implement, as was exporting MIDI files. The saving and loading pieces from a MongoDB database is also tricky, but that’s mostly because I’m having to reacquaint myself with how it works. It should only take about another day’s worth of work to finish that up, I hope.

I’ve added just one more thing to the list that I want to finish before I start focusing more on the back-end, and that’s implementing chord markers. The first thing I’ll implement on the back-end is a chord progression generator, since that’s pretty easy (and hardly innovative), so of course I’ll need a way to display them.

After chords, I can move on to melodies and accompaniment, which is where I hope things will get more interesting.

  • Playing features
    • Play from a selected position 
    • Play or loop a selection (skip!)
    • Show play location in minutes / seconds (skip!)
    • Pause play (saves play position) 
    • Show / hide measure numbers 
  • Move / create tempos (or tempo groups for accelerandos?) (skip!)
  • Note editing
    • Move / create / delete / edit notes or note groups (skip!)
    • Copy / paste notes or note groups (skip!)
    • Edit note velocities (skip!)
  • Measure editing
    • Delete / create / edit measures 
    • Delete / create / edit sections (measure groups)
  • Track editing
    • Load track instrument from MIDI file 
    • Edit track instrument 
    • Edit track volume / stereo positions (skip!)
    • Auto-color tracks differently (skip!)
  • Chords
    • Create / delete chord marks (only triads and 7ths for now)
    • Color lines by chord voice
  • Load / display / edit key signatures (skip!)
  • MIDI loading
    • Load note velocities from MIDI 
    • Fix MIDI loading bug: Extra note at end of file (skip!)
  • Saving / exporting
    • Save / load music pieces to / from personal database
    • Import / Export MIDI files
    • Export music to WAV or MP3 (skip!)
  • Bookmark sections of a piece (skip!)
  • Zoom in and out (horizontally) 
  • Undo / redo support (Ctrl+Z) ✓
  • Import soundfonts from computer (low priority) (skip!)
  • Account
    • Confirm email (if necessary) (skip!)
    • Log in / out / reset password (skip!)
    • Edit optional personal info (skip!)
    • Usage stats (skip!)
  • Final design pass (make everything look good) (skip!)

TuneSage progress update 3

A few more things checked off the list. Added a couple “measure editing” tasks. Quite a few tasks I think can probably be skipped for now, as I’d like to get back to working on the back-end so I can then work on integrating the back-end with the front-end. Most of the skipped items should not be overly difficult anyway (though difficulty is always easy to underestimate). Excluding the skipped items leaves the items in bold: measure editing, save / load / export stuff, and an “undo” system, which I guess will be better to tackle earlier than later.

I still need to have a good think about what features the back-end should include at launch; that is, what specific music-generating features would be most useful. I’ll do that in another post a bit later, I suppose.

  • Playing features
    • Play from a selected position 
    • Play or loop a selection (skip!)
    • Show play location in minutes / seconds (skip!)
    • Pause play (saves play position) 
    • Show / hide measure numbers 
  • Move / create tempos (or tempo groups for accelerandos?) (skip!)
  • Note editing
    • Move / create / delete / edit notes or note groups (skip!)
    • Copy / paste notes or note groups (skip!)
    • Edit note velocities (skip!)
  • Measure editing
    • Delete / create / edit measures
    • Delete / create / edit sections (measure groups)
  • Track editing
    • Load track instrument from MIDI file 
    • Edit track instrument 
    • Edit track volume / stereo positions (skip!)
    • Auto-color tracks differently (skip!)
  • Load / display / edit key signatures (skip!)
  • MIDI loading
    • Load note velocities from MIDI 
    • Fix MIDI loading bug: Extra note at end of file (skip!)
  • Saving / exporting
    • Save / load music pieces to / from personal database
    • Export music to MIDI
    • Export music to WAV or MP3 (skip!)
  • Bookmark sections of a piece (skip!)
  • Zoom in and out (horizontally) 
  • Undo / redo support (Ctrl+Z)
  • Import soundfonts from computer (low priority) (skip!)
  • Account
    • Confirm email (if necessary) (skip!)
    • Log in / out / reset password (skip!)
    • Edit optional personal info (skip!)
    • Usage stats (skip!)
  • Final design pass (make everything look good) (skip!)

TuneSage progress update 2

It’s been five days and, judging by the to-do list, it doesn’t look like I’ve done much. I actually spent a bunch of time fixing various bugs.

Also I added a few new things to the to-do list; “auto-color tracks differently” will be easy; that’s just a matter of cycling through hues when a MIDI is loaded, the same sort of thing I did in the Java-based MIDI animator.

I also want to allow the user to import their own soundfont from their computer. (Although honestly that’s probably a feature that can wait until after launch, so that one’s iffy.)

Finally, we’ll need an “undo / redo” feature so that when the user presses Ctrl+Z, it will undo the last change. Not really sure of the best way to implement that, but we’ll figure it out.

  • Playing features
    • Play from a selected position 
    • Play or loop a selection
    • Show play location in minutes / seconds
    • Pause play (saves play position) 
    • Show / hide measure numbers 
  • Move / create tempos (or tempo groups for accelerandos?)
  • Note editing
    • Move / create / delete / edit notes or note groups
    • Copy / paste notes or note groups
    • Edit note velocities
  • Track editing
    • Load track instrument from MIDI file 
    • Edit track instrument
    • Edit track volume / stereo positions
    • Auto-color tracks differently
  • Load / display / edit key signatures
  • MIDI loading
    • Load note velocities from MIDI
    • Fix MIDI loading bug: Extra note at end of file
  • Saving / exporting
    • Save / load music pieces to / from personal database
    • Export music to MIDI
    • Export music to WAV or MP3
  • Bookmark sections of a piece
  • Zoom in and out (horizontally)
  • Undo / redo support (Ctrl+Z)
  • Import soundfonts from computer (low priority)
  • Account
    • Confirm email (if necessary)
    • Log in / out / reset password
    • Edit optional personal info
    • Usage stats
  • Final design pass (make everything look good)

TuneSage progress update 1

There’s still lots of work to do on TuneSage. I’m hoping if I regularly blog some short progress updates, it may encourage productivity, as it did last year with Trovedex.1

Right now I’m working on the front-end. As always, it’s a bit of a balancing act deciding what features need to be included and what features can wait to be added after launch. So far, the completed features include:

  • Load a MIDI from file
  • Mute / solo tracks
  • Change track colors
  • Show / hide tempo marks (from MIDI)
  • Edit / delete tempos
  • Show / hide measure lines
  • Show / hide pitch lines
  • Play MIDI

Features on the to-do list:

  • Playing features
    • Play from a selected position
    • Play or loop a selection
    • Show play location in minutes / seconds
    • Pause play (saves play position)
  • Move / create tempos (or tempo groups for accelerandos?)
  • Note editing
    • Move / create / delete / edit notes or note groups
    • Copy / paste notes or note groups
    • Edit note velocities
  • Track editing
    • Load track instrument from MIDI file
    • Edit track instrument
    • Edit track volume / stereo positions
  • Load / display / edit key signatures
  • MIDI loading
    • Load note velocities from MIDI
    • Fix MIDI loading bug: Extra note at end of file
  • Saving / exporting
    • Save / load music pieces to / from personal database
    • Export music to MIDI
    • Export music to WAV or MP3
  • Bookmark sections of a piece
  • Zoom in and out (horizontally)
  • Account
    • Confirm email (if necessary)
    • Log in / out / reset password
    • Edit optional personal info
    • Usage stats
  • Final design pass (make everything look good)

That’s not counting the further work of integrating the back-end with the front-end.

Anyway, my goal is to finish all the above before the end of this month (April 2021), and then I can move on to integrating the back-end (which still needs a good bit of work itself).

Feel free to suggest any features you’d like; though, like I said, I’m only trying to do the minimum needed to launch.

Quick TuneSage progress update

I haven’t blogged in a while, so I thought I’d give a very brief progress update on TuneSage.

I’m currently finishing work on the melody generator, which is the heart of TuneSage, as I think melodies are the strongest driving force of music. I’m hoping I can start releasing some examples by the end of the week. And whenever I start releasing examples, I’ll try to release multiple examples per day until TuneSage actually launches to try and build up some anticipation.

I’ve rewritten the melody generator from scratch, so it will hopefully perform much better than any other version I’ve written so far.

I want to launch TuneSage as soon as possible, preferably before the holidays. I’m currently aiming for November 25th since that’s my birthday. Upon its initial release, it will likely be “bare bones” feature-wise. You’ll be able to generate melodies and chord progressions, but probably not much else.

That said, there’s still a ton of work to do on the front-end, so I probably won’t make that November 25th deadline, but I’ll try my best.

Y Combinator’s Startup School in retrospect

Y Combinator’s latest Startup School session ended this week. I still haven’t gotten nearly as far as I would have liked in TuneSage’s development, but I did make some progress, and I’m hoping to launch it near the end of next month. Of course, that prediction is probably still off, since it feels impossible to predict, but I did submit an application to Y Combinator’s core program, so the sooner I can launch it the better. If they’re looking at my application and can find no demo videos or samples online demonstrating what TuneSage can do, so much the worse for me.

Anyway, here are some of the biggest things I’ve learned from this year’s startup school:

  • Launch your product as soon as you can. The initial version doesn’t have to be as polished as you might imagine. They talk quite a bit about launching an MVP, a “minimal viable product”. This allows you to start getting feedback from early adopters. Handling the initial version of your product like a manuscript submission or a film premiere that needs to attract a crowd upon release isn’t the right way to think about a tech startup launch; the initial version won’t be polished. (For TuneSage, the initial version will likely only generate melodies and chords.)
  • After launching, it’s all about growth, and organic growth at that. Pay attention to new users you’re attracting, user retention, and how users are using your product. (Paying to advertise your product isn’t a great idea because having to pay to obtain your first customers isn’t going to scale, and may throw off any traction metrics.) Decide what to work on based on how it will stimulate growth.
  • Set concrete goals (preferably having to do with growth) so that you know whether or not what you’re working on is having the desired affect.

I’ll admit that some of the finance stuff (stock, shareholding, vesting, etc.) is still a bit over my head; some of it is just lingo to learn, but I also think I need to see more examples of it in action.

The Startup School videos are on YouTube, available for anyone to watch (I’m sure I’ll re-watch some of them), but participating in the course also gave me an opportunity to have weekly meetings with other founders. This allowed me to develop my “pitch” and get real feedback. I will admit that I need to get better at talking. A bit too much repeating myself, ending sentences on conjunctions (“and, yeah…”), forgetting words and stammering. Sometimes I wasn’t so bad, but it’s definitely something to practice. And, yeah…

Overall, it was a great experience, and I’m excited to get TuneSage up to a launch-able state. Like I said, I wish I had made more progress during Startup School itself, but I should have more time next month.

Tunesage.com is up… but there’s nothing there yet

It’s just a temporary page. One can sign up for the mailing list, but until I start actually releasing sample work or something, it’s probably not good for much. Better than nothing, though.

I have no idea what the look and feel of the final site will be; I am not a graphic designer. However, I really like the font I found for the title. I was originally trying to reuse the letters I created for Insane Fantasy…

Very similar! An uncanny resemblance, especially the ‘E’ and the ‘S’. I kind of prefer my curved ‘A’. I tried to make a ‘G’ to match the style, but I just failed terribly, it looked horrible. So I’m glad I was able to find something very similar.

Anyway, be sure to head over to TuneSage and join the mailing list! (If you want.)

Startup School 2019

This year, Y Combinator’s Startup School is open for everyone to register, and I’m hoping to participate. As they say on their blog:

Today, we’re opening up registration for Startup School 2019, our free online course for founders looking to get help turning an idea into a startup. The 10 week course will begin July 22, 2019 and is free for everyone to participate.

They’ll also be granting equity-free $15K grants to “the most promising companies that join and complete the course.” (I still hope to apply to the core YC program, but the possibility of a $15K grant if I don’t make it would surely be nice.)

They’ll also be hosting meetups / events around the world, one location being Washington DC, which I’ll try to make it to. (I just hope it’s not on Tuesday, September 10th, as I’m going to a Kamelot concert that day. Or near the end of August, as I’ve got a sibling’s wedding to go to.)

My startup is the AI-powered music generation web app I’ve been working on, now tentatively titled Tunesage. (Can you think of a better name?)

I was hoping to finish a prototype of the web app by the end of this month (July 2019). I’ll still try to, but I’m also giving myself an extension until September 25th (the deadline to apply to the Y Combinator Winter 2020 batch) due to circumstances beyond my control (such as a sibling’s approaching wedding and my parents deciding now is a good time to redecorate parts of the house).

So that’s what I’m up to. I’ve also been learning the programming language Rust as I hope to use that on the music app’s back-end.