TuneSage progress update 6

My goal last week was to “finish backend and overhaul frontend”, which definitely did not happen.

My work on the backend unfortunately came to another dead end. I was trying automate the training of the AI so that I could just give it melodies and it would train on them with little oversight. It worked, but too inefficiently; it must be continually tweaked to work well, so the whole endeavor ends up taking even more time. For now, it seems it will be more efficient time-wise to train it manually. In other words, I think it will be more time-efficient to use supervised learning rather than unsupervised learning. (Which is perhaps an obvious outcome, but it was worth a try.)

So I’m already weeks behind! Schedule now looks like this:

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

Admittedly, it will still likely take longer than that…

Questions about startup idea:

The last startup school webinar was about evaluating your idea for a startup, and included a number of good questions to ask yourself about an idea to help with that. Granted, I’ve already chosen an idea (AI music SaaS), but I thought it still might be interesting to answer the questions:

  1. Does your team have founder / market fit to work on this idea? I don’t really have a team, but yes, as a programmer and a music composer, I think I have good founder / market fit. The product is something I want for myself and would use.
  2. How big is the market for this idea today? I don’t know. There are other AI music services out there, but I don’t know how good their profits are. The market for music software in general, however, is huge.
  3. How big could it be in a few years? Again, I don’t know, but I haven’t seen any indication that it’s growing rapidly at the moment.
  4. What is the problem you hope this product will solve? Have you seen this problem first hand? How are confident are you that it’s actually a problem? For your users, how acute and frequent is the problem? Composing music can be time consuming; there are lots of creative decisions to make. It can also be difficult to get going if you’re just getting started or haven’t done it in a while. Yes, I have experienced this first hand. I know others have this problem as well, as my previous melody generating apps attracted some users. As for how frequent and acute the problem is, I don’t know; I’ll have to talk to more users.
  5. Do you have entrenched competition? If so, how will you beat them? Yes, there are a few competitors in AI music. I need to do some more research on them, but in my opinion, they’re of limited use, particularly because they do not generate interesting melodies. They’re output tends to sound either too random or too bland. My focus on melody may be a good starting point to beat them.
  6. Is this something you personally want and would use? Definitely!
  7. Did this idea only recently become possible, or only recently become necessary? Yes and no. The algorithms would certainly be possible to run on older computers, but they take time to come up with.
    1. If not, why has no one solved it before? The algorithms are not obvious, I suppose, even with popular modern AI paradigms.
  8. What are the proxies – large, successful companies that do something similar to this? I don’t know if there are any. None that I know of, anyway.
  9. Is this a problem that you personally care about? Is it something that you would be willing to work on for a long time? Yes and yes.
  10. Can your solution scale? Could this be a consulting business in disguise? Since it’s an SaaS, yes, scaling is possible.
  11. Is this idea in a good “idea space”? I think? I’m not really sure what the “idea space” for AI music is.
  12. How did you come up with this idea? Did you start with the problem or the solution? Started with the problem. In fact, don’t even have solutions to all the problems yet! But I think the solutions are reachable.
  13. Do you have a new insight about this idea, one that few others have? Yes, I think my approach to generating melodies is a new insight; I don’t see any other service offering decent melody generation at the moment.
  14. What are the current alternatives that people use instead of your product? Why will people switch to your product? How difficult will it be to get them to switch? I admittedly don’t know; I’ll have to talk to users.
  15. How will you make money? SaaS!
  16. If this the kind of business that has a chicken-and-egg problem (i.e., a marketplace, a dating site), how will you solve it? No chicken-egg problem here!

    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.