A Few Small Projects

Archived development update discussion from past versions
Archived development updates.
Nicholas
Posts: 12068

Post by Nicholas » 01-10-15 12:32 am

With 10.1 out the door, things are pretty stable, so it's time to talk about what's next. We're hoping to tackle a few important smaller projects before the next major release:

Synthesia 10.2 - Complete (four times)!

With the tiny 10.1 bug-fix release out the door, I'd like to make a 10.2 feature-polish release. There are five or six improvements to things added in 10.0 that I want to make a little nicer. The largest two are improved labels and loop delays specified in beats (instead of arbitrary milliseconds). Beyond that, there are a handful of code quality and technical debt things that I ran out of time for in the 10 development cycle. This will also be a nice opportunity to catch and fix any more bugs that may have been introduced since 10.

Synthesia Video Creator - Complete!

I've mentioned it a few times here-and-there, but this will be a tool to create fluid, perfectly-synced 60 FPS, HD videos of Synthesia playing songs with the UI hidden. While this utility is a little outside the mission statement of "create the best piano practice tool", it has become abundantly clear that people are going to make these types of videos regardless. So, if Synthesia is going to be on public display, we should help it look its best. We've even knocked out a few of the major technical challenges already.

Website Updates - Complete enough for now

The shift from "Learning Pack" to "Unlock Synthesia" has obsoleted a few pages on the site. Adding Android has left a gap on the Keyboard Help screen. And the front page is looking a little old-timey these days. This gap between major releases is a good time to take care of those.

Synthesia Help Guides - Complete!

It's long past time to have a better answer to the question "where is the manual?" A nice answer is a series of multimedia help guides/tutorials to replace the woefully out of date wiki. Those can be linked right inside the app. At the outset I'd like to have a few to start with and add more over time.

Classroom Installer - Complete!

This is another micro-project that shouldn't take more than a couple days, but it's worth mentioning. I've had some feedback from a few teachers that the steps in the Classroom Guide are a little user-hostile, to the point of IT departments refusing to follow them. That means every time a student logs into a machine for the first time (in certain network environments), everything is reset and Synthesia appears to be locked as though it had just been installed. This little utility will help get things configured in a machine-wide location (in a single click) to make the initial setup process easier (effortless!) for schools.

(Real life: Nicholas is moving) - Complete!

Not Synthesia related, but definitely schedule-impacting: I'll be moving near the end of February (2015). That's two or three weeks of lost project time, unfortunately. I'll be doing my best just to keep up with email and forum support.

(Business/accounting grab bag) - Complete!

Wearing virtually all the hats means that business stuff sometimes takes a little more time than I'd like. I only mention it to explain where a little of the time has gone. Quite a bit of miscellany had piled up, and I was able to do everything at all once: our code signing certificate expired, but the rules had changed in the meantime to require a business phone number. Our address just changed, too, so records had to be updated everywhere. A few people wanted a D-U-N-S number. Business taxes. All kinds of stuff that took a couple weeks. It's done now, though.


After that, it'll be time for the next deep-dive: MusicXML in Synthesia 11!

Birdman87
Posts: 60

Post by Birdman87 » 01-10-15 3:18 pm

This may be the wrong place to post this so please move it if it isn't.

At the current pace i see synthesia very slowly moving towards its full potential, have you considered taking synthesia to the next level? As in something like start a kickstarter, get a team together and make synthesia the powerful learning tool it can be. Here are my thoughts:

- As far as learning goes synthesia can be upgraded in such a way that the learning process is fully automated, something like video examples in the note area screen, then it makes you practice the example and teaches you theory too, done in a proper way it could remove the need for a piano teacher completely.

- songs can be arranged with ease according to various levels and maybe have you accompany a band inside an actual song, you arrange like 10-20 songs for level 1(along with future dlc for level 1 of course) and when the user learned enough songs with enough accuracy from the first level, level 2 opens. If for example the user is very experienced he can set his own starting level at the beginning of the game or there could be something like dynamic difficulty where the song progresses.

- piano drills with exercices made in a game like fashion, as in, you practice the scale in C and super slow speed, and it gradually increases the difficulty based on your performance, drills for ear training, theory knowledge checking and much more, not to mention the possibility of making them custom.

These are just my preliminary thoughts on the idea, of course the community in general has lots more ideas and opinions on how they would like such a tool to be designed so that everybody is satisfied and has every featured they dreamed of.

Considering the fact that most piano learning software costs around 200-300 dollars or more, marketing this as a videogame at about 60 would make it sell like crazy.

Nicholas
Posts: 12068

Post by Nicholas » 01-10-15 9:41 pm

So, I look at direction and speed as two separate things to consider.

For direction, you're spot-on. After omitting "remove the need for a piano teacher completely" -- which would be a good way to lose support from piano teachers -- most of the other things you mention are actively on future road maps.

For speed... this is a personal compromise. I've mentioned several times over the years that I'm a terrible business person. Much of that comes from a specific, guilty pleasure: my desire to work essentially alone. Adding Timothy to the project was a major departure, but he's about as self-motivated and independent as I've ever seen another developer, so it still works. (Also, his work on the Android version was the only way that was going to get done... I didn't want to do it! :lol: )

It's an interesting tension. I would love to see Synthesia meet its full potential some day. And I understand that being selfish and keeping the project (very) small does real damage to the speed it can achieve those things. In the end some other company is going to get some round of investment funding, pour twenty thousand man-hours into a competing product, and effectively beat Synthesia to market on the scale you're talking about.

I've spent some time thinking about what that would mean for the project. As long as people continue to show interest, I plan to continue working on it. I am prepared to make Synthesia my life's work. We're actually still in the early days, taking into account all the cool stuff I'm hoping to tackle eventually. But to continue working on it, I need to enjoy the work. And once it turns into a large production and I am relegated to being a manager or CEO or whatever that spends their day answering to investors and stockholders, there is an excellent chance I won't enjoy it anymore.

serkol
Posts: 14

Post by serkol » 01-12-15 12:13 am

Nicholas, I do not know about any successful large-scale software in the music education field. I'm not in this field, so I may be wrong (I'm helping my kids learn music). The largest project that I'm aware of is smartmusic by makemusic.com, but they cater to public schools (that means school band instruments, not piano), and I have heard that their "makemusic" product is not profitable.

I think that JoyTunes will fail. They will not get enough money to pay for a large development team. My gut feeling is that a project like this can get enough money for just a few developers, like 2-3 (I'm an independent software developer myself). Like some other companies in this field, they will run out of financing and will either shrink to 2-3 developers, or switch to something different... like Zenph Sound Innovations (Home Concert Xtream) ran out of financing and turned into thezoen.com

So my prediction is that JoyTunes will fail, and Synthesia will live on, if you add full support for MuicXML.

JoyTunes do not support neither MIDI interface, no MusicXML. Fail.

- MIDI interface: they think that acoustic sound recognition is the way to go. I think that they are wrong. Digital pianos have outsold acoustic upright pianos in the U.S. since about 1997. And I mean digital PIANOS, not cheap midi keyboards. People complain that PianoMaestro does not recognize pitches of their pianos. Look at their music library - the highest level that they offer is a very simple easy-piano style music for children who have been studying piano for 1 year. I bet that their sound recognition technology is not capable of dealing with anything more complex. MAYBE it is possible to create perfect acoustic pitch recognition software, but there's no such software at the moment, so it has to be researched and developed, which needs a lot of talent and money.

- MusicXML: They have a big development team, they need a lot of money every month, so they want people to pay recurring subscription to get access to music. I don't think that they will ever add MusicXML capability, and that's their big minus in my opinion.

Good luck to you in 2015!!!

Nicholas
Posts: 12068

Post by Nicholas » 01-30-15 3:52 am

serkol wrote:... like Zenph Sound Innovations (Home Concert Xtream) ran out of financing and turned into thezoen.com
Reading over this again a few days later, I went poking around and found something funny: http://www.timewarptech.com/news.php
TimeWarp Technologies wrote:In February 2011, we sold our software assets to another company that imploded within a year. Those assets subsequently changed hands several times. I am delighted to say that our programs returned home to TimeWarp on July 31, 2014.
Sounds like they might be getting back to work again pretty soon. Something about "SuperScore" which is apparently "a new platform for the electronic distribution of interactive sheet music". I am curious. My guess is a DRM-laden version of MusicXML.

Nicholas
Posts: 12068

Post by Nicholas » 02-08-15 6:50 pm

You wanted a Kickstarter project? This guy saved me the trouble. :lol:

Fr3dY
Posts: 12

Post by Fr3dY » 02-09-15 5:12 pm

From that website ($59,070 pledged of $5,000 goal!!):

What about Synthesia? Is there a difference?

A big one, yep. Synthesia is a software product while Pianu is a website.
Pianu requires no download or installation, and works on any computer connected to the internet.
Synthesia, on the other hand, must be purchased and installed on your computer's hard drive.

Pianu also has a growing library of ready-to-play songs, while Synthesia requires you to provide the MIDI files of each song you want to learn.

Birdman87
Posts: 60

Post by Birdman87 » 02-10-15 10:59 am

Looks like a piece of crap, not to mention roll out keyboards are a nightmare to play on. I can not believe they got 60k on such a crappy looking interface while presenting 0 features....

kiwi
Synthesia Donor
Posts: 1178

Post by kiwi » 02-13-15 12:39 pm

I think the same things.

Chompy
Posts: 161

Post by Chompy » 02-25-15 2:36 pm

There should be freedom of colour choice. Not just any Red Orange Yellow Green Blue Purple. In the next release, you should include a feature that allows you to colour the falling note tracks with just about any colour you can think of, like white or black etc, on a colour wheel, where you select your palette for the current track's colour. There should also be a special effects option in the Setting's menu, like, making it like film grain and make it look sepia or black and white and even achieve totally out of the blue effects like waves on the keyboard when a note strikes it. You should also include a colour choice in the colors.xml to change the black keys to any desired colour you want. (e.g: white keys = black, black keys = white!). That would be cool. :idea:

Another thing is latency/lag. This has been bugging me for years. This could be reduced to almost none if you can try to. :?:

A rainbow keyboard option would be great! :idea:

Nicholas
Posts: 12068

Post by Nicholas » 02-25-15 10:43 pm

For many years, this has been a technical limitation more than a conscious choice. The good news is that a change in Synthesia 10 made the technical limitation go away, so now it's just a matter of adding arbitrary color support.

Korados
Posts: 62

Post by Korados » 02-27-15 11:09 am

Nicholas wrote:For many years, this has been a technical limitation more than a conscious choice. The good news is that a change in Synthesia 10 made the technical limitation go away, so now it's just a matter of adding arbitrary color support.
Hey Nicholas! I hope your move worked the way you wanted! :)
More colors would be smashing! I just would need some more colors when I listen to septets or other ensembles with more than six instruments, for example. I'm looking forward to it! :D

qazxsw21000
Posts: 39
Location: London, KY

Post by qazxsw21000 » 03-15-15 1:30 am

So just out of curiosity, how are the track colors stored/remembered? A look-up table (as in "user chose color 3" where "color 3" is red, blue, etc.)? I, myself, would imagine the hardest part would be implementing a color picker. But, again, I don't know how the current system works.

Nicholas
Posts: 12068

Post by Nicholas » 03-15-15 3:45 pm

Yeah, the old system is a look-up table like you described. The actual RGB values are hard-coded and the data files just refer to one of the colors in the list.

The color picker shouldn't be too hard. Really, the biggest task will be unwinding the single-white-texture assumptions so that note blocks can be drawn using arbitrary colors. That stuff runs pretty deep in the keyboard/falling-note code. Once that's finished, the .exe will get smaller (note textures will be ~1/6 their previous size), drawing will get faster, and you'll be able to pick any color you like.

qazxsw21000
Posts: 39
Location: London, KY

Post by qazxsw21000 » 03-15-15 4:50 pm

I see. Well that does seem like it'd be a bit of work. I am looking forward to it.

qwertyo76
Posts: 22

Post by qwertyo76 » 03-15-15 7:46 pm

I will love you forever if you did that. I love color so much. I've always been amazed at how much you can do with only six color tracks but sometimes you just wanna make a rainbow-colored mess. And we've always been missing Magenta....

How would it work? Would it be a fluid color wheel? Would there be a slider for saturation or brightness? Would there be RGB or Hex codes? Would we still have six track colors by default? (Some people are lazy and don't wanna pick their own colors.)

I figure there would be some sort of simple system by default but you could unlock advanced color picking in the options or something. I dunno.

Nicholas
Posts: 12068

Post by Nicholas » 03-15-15 10:39 pm

qwertyo76 wrote:How would it work? Would it be a fluid color wheel?
What I've been thinking so far is a hue-picker with a number of steps. Much like this image I just found someplace:

Image

Though instead of only 12 gradations, there might be somewhere closer to 36. I don't like the idea of exposing saturation or value so that Synthesia can still automatically show a distinction between notes that belong to white and black keys. (Although, maybe giving a couple sat/val choices like this image might not be a bad idea.)

My reason for not giving a smooth wheel with all 360 hues is just for repeatability. If you were trying to quickly change the color of several tracks (or had a favorite go-to color), a smooth wheel can be frustrating and a little fiddly when trying to get exactly what you're looking for.

Regarding advanced customization, that's something I tend to tuck under more interface or in data files. Giving advanced users access to plain hex RGB input shouldn't be too tricky.

qwertyo76
Posts: 22

Post by qwertyo76 » 03-18-15 1:09 am

Oops. Sorry I didn't reply for a few days. I blanked that this was here.

Anyway, that's cool. A smooth wheel probably is a bad idea. I have a few concerns though. Mostly that 36 colors would actually be too excessive. There could be just 24 colors. Looking at it, it doesn't seem as though having 36 colors actually adds any variety that 24 doesn't really include.

- this post was incredibly ramble-y so I'm snipping it :p -

I dunno. Here's a visual substitute for what I mean: http://i.imgur.com/eNtfpo5.png

I'm really not against having that many colors mind you, I just think some people would.


Aside from all that, I notice that the doughnut-shape leaves a lot of gaps for potential stuff. Namely in the corners and in the middle. For example you could have a button in the middle that cycles though three or four different levels of saturation/brightness, if you decide to go through with that. I don't really think there's enough room for multiple rings, though I suppose you could just increase the size of the menu....

I also suppose that the colors wouldn't actually have names anymore since they wouldn't fit, but ah well.
Last edited by qwertyo76 on 03-18-15 6:08 am, edited 1 time in total.

Nicholas
Posts: 12068

Post by Nicholas » 03-18-15 4:20 am

That's a great picture. Holy moly indeed. :lol:

Of course you're right. I just threw a number out that was more than the 12 shown in the wheel image I found. I hadn't thought it through. I was going to pick the final number based on experimentation. 18 or 24 is looking pretty good now that I've seen your image.

Raymond
Posts: 528
Location: United States, Washington

Post by Raymond » 03-18-15 5:06 am

I am not a color expert by any means.
If you look at these sites, it seems to me that you can have more then 9 unique looking colors. (including the fact that we need two shades per 'color'.)
http://phrogz.net/css/distinct-colors.html
http://colorbrewer2.org/

Locked