Tunesage

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!)

By S P Hannifin, ago
Tunesage

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!)

By S P Hannifin, ago
Tunesage

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)

By S P Hannifin, ago
Programming

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.

By S P Hannifin, ago
Tunesage

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.

By S P Hannifin, ago
Tunesage

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.

By S P Hannifin, ago
Tunesage

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.)

By S P Hannifin, ago
Business

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.

By S P Hannifin, ago