Synthesia 8.4

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

Post by Nicholas »

Regulars around here know that 8.4 is the long awaited iPad release. The goal is to port Synthesia more or less completely intact over to that platform. I've already worked on many of the technical challenges and now it's time to really buckle down and get to work.

Synthesia for iPad

Every feature we have today, optimized for a touch screen. External device support, all the Learning Pack features (unlocked via an in-app purchase), flick through the song library, pinch/zoom the song display, all of that...

Platform Update

Every year or so it's time to update my tool-chain: latest version of all my 3rd party libraries, compiler updates, and making tough calls on what to continue supporting.

Apple makes it challenging to support backwards compatibility to the degree I enjoy. If I were to buy a Mac today (or a year ago) I wouldn't even be able to develop for 10.4. (The tools aren't available anymore... you can only use them if you already have them.) And it looks like 10.7 is the end of the road for my development iMac. When they force my hand to move to 10.8 (to keep up with iOS development) I won't easily be able to support the older stuff anymore. So, this is as good a time as any to pull off that band-aid:

The Mac version of Synthesia 8.4 will now be OS 10.5+ Intel only. (My stats show this should impact less than 0.15% of users.)

Desktop improvements due to the iPad version

Getting the code to build on the device is only the first step. The touch interface requires a number of improvements. More than that, the ecosystem there isn't as laid back as on the desktop. So, there needs to be a level of polish that Synthesia has never seen before. The good news is, all that polish is coming to the desktop version too.
  • Improved graphics. The Retina display on the 3rd generation iPad means I have to rebuild all of my art assets. This gives a good opportunity for things like the sheet music display to auto-switch to a higher resolution once you stretch it far enough. The falling notes and keyboard are also going to see an update.
  • Reduced system requirements. The iPad isn't nearly as powerful as a desktop computer, so I have to squeeze and optimize. There is a good chance computers that struggle with Synthesia today will be able to run 8.4 smoothly.
  • Data saved regularly. In the unlikely event that Synthesia crashes, you won't lose scores or other data anymore.
  • Lots of small improvements. Things like being able to click the new version notice on the title screen to launch a browser, many more function bindings, and smooth-scrolling song library (again, finally).
I can imagine this isn't as exciting to a desktop-only user as most other releases, but rest assured: once this sees the light of day, 8.5 is going to bring a raft of new features with a vengeance. :D
Pianotehead
Posts: 321

Post by Pianotehead »

This is great news, but I have to post my complaints about the 0.8.3 release here, since all other threads in this category seem to have been locked.

The information toolbar has been moved from the bottom to the top and is auto-hidden. I was a bit disturbed to find (or rather not find) it was gone, but then it reappeared, by hovering the mouse over the top. I can imagine this was done to make more room for the sheet music or bars. However the piano feels a little naked at the bottom, you almost feel like a part of the window is missing and there must be something below it, or the keyboard is sliding off an imaginary table or stand. *

Up to some extent it's an improvement that one can see the highest score for left and right hands respectively and hand together in all modes and that you can hit the score for each part to play again. However this feature is almost useless, because all of the previous settings are wiped out that way. For example, I wanted to play Ash's arpeggios with right hand only and have the left hand notes hidden. When I clicked the mode button the notes always appeared for both hands. Which forced me to switch to advanced view and change the settings, each and every time I wanted to play with the same settings. Is it possible to have the last settings saved until they are changed?

One more thing, in older versions there was always a back arrow to get to the last screen and finally where you could exit the game. It's gone (or isn't it?) so the user has to rely on the ESC button to go back. Not sure that's positive for a user having medium or less computer experience.

* Have to mention that I'm running Synthesia in a window, so I can drag it to my external monitor. For some reason I can't make my external monitor the default one. When Synthesia is in full screen mode it can't be dragged.
Nicholas
Posts: 12471

Post by Nicholas »

Pianotehead wrote:The information toolbar has been moved from the bottom to the top and is auto-hidden.
There is an advanced setting in the Synthesia Configuration tool ("Gameplay.PinMenuDrawerOpen") that will force it to always appear fully extended, if you'd prefer to always see that stuff.
Pianotehead wrote:Is it possible to have the last settings saved until they are changed?
They normally are saved, but the act of clicking a button on the simple view counts as a change. There is an option on the Options screen to always show the advanced view by default though, if that's your preference.
Pianotehead wrote:... there was always a back arrow to get to the last screen and finally where you could exit the game.
The Synthesia logo in the top-left corner takes you to the title screen. Because it's now present on the song screen too, it saves you a click.
Pianotehead wrote:For some reason I can't make my external monitor the default one.
The "Full-screen using specific video mode" in the Synthesia Configuration tool (under video settings) isn't letting you set your other monitor as default?
Pianotehead
Posts: 321

Post by Pianotehead »

Well I like the new view in many ways, but if the only way to not having to manually change my setting everytime I repeat a song, because it defaults to an unwanted setting, then the advanced view is my choice.

I don't think the monitor problem has anything to do with Synthesia, I have the same problem not running the software. Can't remember if I tried the OpenGL setting. Still I don't mind using the windowed mode, it almost fills the screen anyway.
aria1121
Posts: 1505

Post by aria1121 »

Nicholas wrote:Reduced system requirements. The iPad isn't nearly as powerful as a desktop computer, so I have to squeeze and optimize. There is a good chance computers that struggle with Synthesia today will be able to run 0.8.4 smoothly.
Could you detail this more? This sounds interesting.

What I've learned from some games (other than Synthesia) is that you can mod a program in such a way to limit the resources for greater performance (where in this case FPS I believe). So if we lower the resolution of the moving particles, you should get some higer FPS where you can do this with the skin change-stuff made by Lemo (a while back ago made in AHK). Like one of the first development versions. Not only reducing the resolution of the particles, you can limit the particles or afcourse change the sytem resolution. (These are just ideas)

Edit BTW Nicholas do you, as a C programmer, know how it would look like if you would combine some of the Play screen scripts with some other language (e.g. Lua)?
Nicholas
Posts: 12471

Post by Nicholas »

aria1121 wrote:Could you detail this more? This sounds interesting.
Everything is still up in the air. The idea is I will keep making things run faster until it is acceptable on the iPad 1. If that doesn't take much effort, it won't get that much better on the desktop... but if I have to pour dozens and dozens of hours into optimizing, there should be a substantial boost on the desktop. Right now the first few I'm considering are storing note block vertices instead of calculating them each frame and pulling all the MIDI stuff into a separate thread from the drawing stuff. (The iPad 2 & 3 are dual-core, so that would be a pretty big win. It's also something I've been meaning to do forever.)
aria1121 wrote:... if you would combine some of the Play screen scripts with some other language (e.g. Lua)?
I actually downloaded the Lua SDK a few years ago to take a look at it for exactly the purpose of scripting all the screens (and allowing modding support) in Synthesia. It actually looked really easy to incorporate. The Lua folks did a great job at easing integration.

(I've also cobbled together a few World of Warcraft add-ons in the past, so I'm even already familiar with Lua language on top of that. ;) )
Raymond
Posts: 528

Post by Raymond »

Is there anything different in 0.8.3 vs r1722?

It's nice to here we might get multithreading. :D
Nicholas
Posts: 12471

Post by Nicholas »

I suppose that depends on which 0.8.3 you have. ;)

There was quite a scramble here the next morning after the release as a few problem report emails started rolling in. If you don't have r1732, I would grab the official link again.

Changes between r1722 and (official 0.8.3) r1732 include:
  • A couple composer name updates in the G Major metadata.
  • Synthesia URLs, umm... work again. :lol:
  • The d3dx_42.dll dependency crept back in unbeknownst to me, so I removed it again. ;)
  • The "#watch" option in Synthesia URLs now works for all songs, even those that can't use the simple view.
  • Er, don't crash the next time you start Synthesia after using a Synthesia URL and exiting from the song screen.
All but the first bullet point were also in the first 0.8.3 release to hit the live website (r1727). If you have r1727, I strongly encourage you to get r1732. I didn't make a big fuss over it because it was only out there for the first few hours (overnight), so I'll handle any problems that crop up from users on a case-by-case basis.
Raymond
Posts: 528

Post by Raymond »

Yup Im running r1722. :roll:

Thanks for letting me know about the changes. :D
aria1121
Posts: 1505

Post by aria1121 »

Nicholas wrote:I actually downloaded the Lua SDK a few years ago to take a look at it for exactly the purpose of scripting all the screens (and allowing modding support) in Synthesia. It actually looked really easy to incorporate. The Lua folks did a great job at easing integration. (I've also cobbled together a few World of Warcraft add-ons in the past, so I'm even already familiar with Lua language on top of that)
Some of the programmers here on this board know about AHK. Some of my scripts are in AHK and some of my scripts on my computer merge with DOS. That's quite powerful. I think you can make some awesome by-graphics as plugins (future feature?) or skins if you write it in AHK with some Lua libraries for AHK. I haven't really read what those libraries do but it sounds cool.

Edit I am having this in my mind, actually, because I want to make some plugin system for Synthesia with AHK. Some graphics plugin maybe? This is maybe gonn' be a little hard because Synthesia is in C I believe? I'm planning to make the script scan Synthesia's video output then apply a mod to enhance performance analysis and log them. Maybe.
Nicholas
Posts: 12471

Post by Nicholas »

aria1121 wrote:... scan Synthesia's video output then apply a mod to enhance performance analysis and log them. Maybe.
That sounds like quite an undertaking. ;)
User avatar
DC64
Posts: 830

Post by DC64 »

Wow, this is really great. Can't wait for the next version.
What would the in-game mode be like when the notes are falling in the ipad version?
"And now for something completely different."
mitchells00
Posts: 3

Post by mitchells00 »

Android ICS? We all know you can, why not? :)
Nicholas
Posts: 12471

Post by Nicholas »

One thing at a time. ;)
kiwi
Synthesia Donor
Posts: 1178

Post by kiwi »

If cosmetic changes are planned please can you make particle less flashy; since the beginning i was always forced to disable them because of my old eyes ...
By the way u working very fast these times, i can't test so much the soft because i have gave my keyboard to a child for 6 month ...
However Good job and good luck with the ipad version (even if i don't have one )
Nicholas
Posts: 12471

Post by Nicholas »

There will probably be (lots) of changes to the look of the menus -- what better time than when I have to rebuild all the graphics for a higher DPI display? -- but the play screen should end up more-or-less the same as it is today. The clutter-removal efforts in 0.8.3 were primarily to prepare for the smaller iPad screen. Screen real-estate is at a premium there, so I wanted to finish that work first.

"particles less flashy" is sort of an oxymoron though... being flashy is sort of their job. :D Though, I'm curious how they cause trouble. Do they make it harder to focus on the notes? My eyes are also starting to get a little old, so I'm definitely interested to hear what sort of problems the particles are causing.
kiwi
Synthesia Donor
Posts: 1178

Post by kiwi »

Well for the "not too flashy" things i simply suggest to remove the glow from the effects.
And if u want to know what is my feelling when i use them well it's like a Christmas tree with a lot of stuff on it :)
Nicholas
Posts: 12471

Post by Nicholas »

kiwi wrote:... it's like a Christmas tree with a lot of stuff on it :)
Isn't that the best part? :D I can totally get mesmerized by my Christmas tree for minutes at a time because of the glowing lights.
User avatar
swalker133
Posts: 246

Post by swalker133 »

Hey, check this out:

http://www.youtube.com/watch?v=_CkTcOaD1zc

Might be a good pair for Synthesia on iPad...

P.S. The ION Piano Apprentice is Core MIDI compliant
Learning, creating, recording, and performing music on the iPhone and iPad...
http://www.iosmusician.com/
Nicholas
Posts: 12471

Post by Nicholas »

Yeah, if it does CoreMIDI it should work just fine. Though, I'm not sure how useful two octaves is. If they went to all the trouble to produce an actual physical device, it's a shame they didn't decide to make it bigger.
Locked