0.6.6 Preview r584-r598

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

Post by Nicholas »

PREVIEW r584
Download from the pink box above.

Changes in r584 since r576:
  • Difficulty and rating controls in the Song Library!
  • Song library now scales some column widths when running at larger horizontal resolutions.
  • Game no longer crashes when last row in a DataGrid is deleted. (This problem was introduced in r572.) (Thanks Alain!)
  • Song library no longer scans forever when a watched folder no longer exists. (Thanks again, Alain!)
  • Notes played while the game is paused will no longer count against you in practice mode. (Thanks BenJackson!)
  • All the new-style buttons (which will eventually become 100% of the buttons) and other UI elements don't register a click unless they saw both a mouse-down and mouse-up (instead of just a mouse-up). This prevents mis-clicks. (Thanks BenJackson!)
  • Date formatting on the Mac now uses your current date format settings. (Thanks maccer, hopefully this is good enough. ;) )
Not only is the difficulty and rating stuff cool, but I got a handful of fixes in this one too. No known issues. Next is the song library wrap-up (auto-preview) at which point I'll mark it complete in the voting list.

Things are starting to look pretty good. Here is a screenshot:
difficultyAndRating.png
difficultyAndRating.png (54.47 KiB) Viewed 19671 times
maccer
Posts: 222

Post by maccer »

Nicholas wrote:Date formatting on the Mac now uses your current date format settings. (Thanks maccer, hopefully this is good enough. ;) )
Yep, now the date is readable :-D
And the new controls for difficulty and rating look very nice, too!
Songs learned using Synthesia:
CT: Wind Scene, The Trial | FF7: Prelude | SMB: Overworld, Underwater | Tetris: Theme A | Zelda: Lost Woods | Other: Für Elise
TonE
Synthesia Donor
Posts: 1180

Post by TonE »

Nicholas what is the measure for difficulty or how do you calculate it? Is difficulty the inverse average score you had on a song?
maccer
Posts: 222

Post by maccer »

Currently you set the difficulty yourself by clicking on the difficulty bar.
Songs learned using Synthesia:
CT: Wind Scene, The Trial | FF7: Prelude | SMB: Overworld, Underwater | Tetris: Theme A | Zelda: Lost Woods | Other: Für Elise
vicentefer31
Posts: 899

Post by vicentefer31 »

Looks great and works great! Even better I could imagine!
A very good work,
Congratulations!
Picasso: I am always doing that which I cannot do, in order that I may learn how to do it.
TonE
Synthesia Donor
Posts: 1180

Post by TonE »

Thanks maccer for the clarification.
Nicholas
Posts: 13135

Post by Nicholas »

Wow, all of you are here bright and early. :)
TonE wrote:Nicholas what is the measure for difficulty or how do you calculate it?
maccer is right, you just click it in for now. There won't be any automatic detection for now. However, there will be another layer placed on top of it once I create the metadata editor.

In the editor, there will be the idea of an initial/default rating and difficulty. When any of those are discovered during the background scan in the game, they'll be integrated into the list automatically. And, I'll be supplying default difficulties for the built-in songs (which I'd love to get all of your feedback on!)

The rule for how they work and which difficulty/rating will actually be shown is:
#1) Your local in-game clicked-in values.
#2) External meta-data files that you've created or downloaded from someone else that are discovered via the background scan.
#3) External meta-data files that I've created and built into the game executable itself covering the built-in songs.

So, say while we discuss it here, we agree that the "Dragon Warrior - Town" song should have a default difficulty of 25 (difficulty is out of 100). I would put a 25 into the pre-made .synthesia file that will be packaged right inside the game .exe file. At that point, you'd see a 25 in the game.

Then, if you use the meta-data editor, include that song in a meta-data file, assign it a difficulty of 37, and put that file somewhere along your Watched Folders paths, the game would show a 37 (because user meta-data files override the built-in values).

Finally, if you (or someone you sent that meta-data file to) decides they want to set a difficulty based on their own experience, they can manipulate the control right there in the game (say, to 19) and that will be the value shown from that point on.

Basically, the first two rules are so me and song package authors can suggest difficulties. But, users can always change them if they want.
TonE
Synthesia Donor
Posts: 1180

Post by TonE »

Everything sounds cool. Having the sorting feature in the file manager is beautiful and now I will also use the file manager mainly for this, because usually one could imagine the files you played mostly in the past were the ones you also liked mostly, so even after a longer pause period inbetween you can easily detect those files and do not have to remember them elsewhere.
tommai78101
Posts: 766

Post by tommai78101 »

Everything is going along according to schedule. Unfortunately, I'm currently busy preparing for my mid-terms...:(

Once there is a full 0.6.6 release, I'll try to squeeze my free time and try to make up everything that I missed so far... ;)
Hardware Information: Dell Alienware 15 R4, Intel Core i7-8750H @ 2.20GHz / 2.21 GHz, 16GB RAM, Nvidia RTX 2070 / Nvidia GTX 1060 dual-GPU, Roland FP-10, MIDI-OX + LoopMIDI combo.
Rickeeey
Posts: 647

Post by Rickeeey »

Great work! Keep it coming.
Mos
Posts: 183

Post by Mos »

looks great and works great but there is one thing that I really don't like in this new release: The new interface management code (have to press and unpress) is really good using the mouse, however, for touch screen (and tablet pen), it became much harder to press the buttons. Now, i have to press on the button and keep pressing for a little bit and than remove the pressure to get it pressed. before: you just tab and it works!!!

I really liked the old one and was really happy when you put the exit and pause button in the play screen because it meant that that i can use the tablet mode everywhere in the game. I think the tablet mode is important because the labtop takes less space in tablet mode.

Please do something about it (as a last resort, put an option to choose what kind of interface to use)!!!
-----------------
Other small things: can we have some kind of number appears somewhere when we are moving the difficulty bar?
-----------------

Suggested New features!!!:
- how about being able to rename the file inside the game? having a lot misnamed files really socks. and after playing a one that i like, i like to rename it to a better name!!
- number of tracks in the MIDI column: choosing the best MIDI for playing with a keyboard can be tricky. most of the time, having less tracks means better MIDI for pianos!

thanks, the rating and difficulty are really cool :) and very responsive. They are actually better than i expected them to be (cool factor wise :) )

by the way, why don't u just include a meta file for each packaged MIDI (in their folder just like what will happen for user created metafiles) and just use those for them instead of creating a special rule for them? also, just change the settings in the meta-file once a user change the difficulty!!! instead of storing it somewhere else?
vicentefer31
Posts: 899

Post by vicentefer31 »

Do you like it?
Attachments
SongGenre.png
SongGenre.png (104.94 KiB) Viewed 19607 times
Picasso: I am always doing that which I cannot do, in order that I may learn how to do it.
tommai78101
Posts: 766

Post by tommai78101 »

Films? You meant "Soundtracks", right?
Hardware Information: Dell Alienware 15 R4, Intel Core i7-8750H @ 2.20GHz / 2.21 GHz, 16GB RAM, Nvidia RTX 2070 / Nvidia GTX 1060 dual-GPU, Roland FP-10, MIDI-OX + LoopMIDI combo.
vicentefer31
Posts: 899

Post by vicentefer31 »

tommai78101 wrote:Films? You meant "Soundtracks", right?
Yes, first I wrote Soundtracks but it´s was too long for the button, so I wrote Films. So you are right, it´s Soundstracks.
By the way, this is a idea for the future, when the SongMetada is ready.
Thanks
Picasso: I am always doing that which I cannot do, in order that I may learn how to do it.
Nicholas
Posts: 13135

Post by Nicholas »

Mos wrote:The new interface management code ... is really good using the mouse, however...
I'll have to think about that touch-screen thing. And here I was thinking that was the least controversial change this time around. ;)

I wonder if it's a frame rate thing. You shouldn't have to hold for any length of time, really. 1 frame for the press and 1 frame for the release. Assuming you're running as slow as 30fps, that's (quite a bit) less than a tenth of a second. What frame rate are you getting on your tablet? (Press F6 to see it in the top-left corner.)
Mos wrote:Other small things: can we have some kind of number appears somewhere when we are moving the difficulty bar?
I wasn't planning on it for now. Why do you think the numbers would be more helpful than the little graphic?
Mos wrote:how about being able to rename the file inside the game?
Something close: the meta-data editor will be able to override song names. So, when they're discovered and match a known song signature, the title shown in the list will be from the meta-data. I guess that doesn't fit your use-case very well because you have just discovered the name you want to use just after playing it. It wouldn't be very helpful to jump out of the game, load up the meta-data editor and change the title.
Mos wrote:number of tracks in the MIDI column
Hmm... I've been trying my best to avoid song details in the columns because that would require loading up each song and getting the details out of it. Right now I'm just doing a quick pass over the file to get the MD5 hash (signature), which is extremely fast. Loading the MIDI would take a lot longer (think, 10+ seconds for a hundred songs instead of near instantaneous).
Mos wrote:by the way, why don't u just include a meta file for each packaged MIDI ... instead of creating a special rule for them?
It's not really a special rule the way I'll be coding it. I just broke it out in that list for clarity. Built-in meta-data files and your own meta-data files are really the same thing... the game will just see its own first. So, if you read that list in reverse, you can think of it like which order meta-data will be overwritten.
Mos wrote:just change the settings in the meta-file once a user change the difficulty!
I've also been trying to keep my design such that the game never has to modify or create one of the .synthesia files. From it's perspective, they're basically read-only files, just like MIDI.

That way, if you guys write any tools to create/edit the meta-data yourselves, you don't have to worry about the game mangling your xml output, or omitting extra stuff you put in there.

And, any work that would have been saved by doing it that way (treating everything uniformly instead of having two sets of stored difficulties/ratings) is already complete. So, it'd just be more work to switch it over now.
vicentefer31 wrote:Do you like it?
Here's my take: the meta-data editor will allow you to include any number of "tags" for a song. That gets around the single-genre problem: how do you classify an exercise that teaches a blues principle? Is it "Exercise" or is it "Blues"? With tags, you just add both.

Then, instead of buttons (which you already mentioned has a weakness when you try to fit a lot on the screen at once), you just include tag searching in the same Spotlight-like search box.
Phatency
Posts: 22

Post by Phatency »

Nicholas wrote:
Mos wrote:
Mos wrote:number of tracks in the MIDI column
Hmm... I've been trying my best to avoid song details in the columns because that would require loading up each song and getting the details out of it. Right now I'm just doing a quick pass over the file to get the MD5 hash (signature), which is extremely fast. Loading the MIDI would take a lot longer (think, 10+ seconds for a hundred songs instead of near instantaneous).
I think you're exaggerating a bit. You don't need to load the whole midi, just the the header, which is only 22 bytes (plus title). And now that I think of it, you know this better than I do. My theory: your current code doesn't have anything which would read just the header, it also counts the number of keys, going through the whole midi, and you just don't see a "channels" column worth of your efforts.
Also you could just cache all information read from the midis, so it would first be slow, and then near instantaneous again.

By the way, good job calculating the md5 of all the demo-songs and making sure synthesia is actually loading the same songs you intended it to, making sure no one "accidentally" edited the resources in the .exe ;)
Nicholas
Posts: 13135

Post by Nicholas »

Phatency wrote:You don't need to load the whole midi, just the the header...
Sure, for track count. Others have already asked for note count. The general case requires loading the whole file. And, the moment track count is in there, you guys will ask for note count (and more) again. ;)
Phatency wrote:By the way, good job calculating the md5 ... making sure no one "accidentally" edited the resources in the .exe ;)
Uh huh. I'm curious how you stumbled on this fact. ;) Still, it's an automatic consequence of the way I'm doing it. You can actually load those same songs off the hard-drive from the "Synthesia Music" folder and they'll work in demo-mode.

In either case, I've made no secret that there aren't any real protections to keep the game from being pirated. All I've got is the low price and letting people know that this is a solo project I'm trying to turn into something that I can live off of. If that doesn't convince them to buy, no amount of DRM or activation would have, anyway.
vicentefer31
Posts: 899

Post by vicentefer31 »

Nicholas wrote: Then, instead of buttons (which you already mentioned has a weakness when you try to fit a lot on the screen at once), you just include tag searching in the same Spotlight-like search box.
The Spootlight has a weakness: you need write with the keyboard from your PC or Mac; and with the buttons you can use only the piano (when Keyboard-only Navigation is ready) to filter and select the song you want.

And what about buttons + Spotlight?
Picasso: I am always doing that which I cannot do, in order that I may learn how to do it.
Nicholas
Posts: 13135

Post by Nicholas »

I guess the common solution there (buttons + spotlight) is usually the search box near the tag cloud. Still, those are kind of ugly, so I could see just listing the most popular tags (across the top or down the side) until it runs out of space.
Mos
Posts: 183

Post by Mos »

Ok, here are more info

Build R576
Main screen = about 60 FPS
Song selection screen = about 35 FPS

Build R584
Main screen = about 60 FPS
Song selection screen = about 30 FPS

I don't think it is because of FPS because
- the touch doesn't work correctly in the main screen (R584) even though you have the same FPS
- the grid touch still works perfectly (R584).

This means that the problem is what changed in the button system. Also, I tried my tablet pen (not just touch) and the same problem occurs. I guess this thing will be hard to solve because you don't have a touch labtop :(

----------------------
For the difficulty number: I just wanted that because i would like to know exactly what number i put. i guess i like to put roundup numbers (e.g. 55 instead of 54). also, it will help in organizing. I still like the graphic as a way to look at them but when putting the difficulty i would like to see the number :D
---------------------
for the track number: ok, i understand why you don't want it. how about this then, when the meta file creator creates a new metafile for an MIDI, it analyzes the MIDI and store some info (number of notes, number of tracks, ....) along with user inputed data (author, track names, ....) . I am guessing retrieving those information is much faster. Than when you go to the game, it will be fast too.

with increasing information in the list, maybe you can do a small window where you choose the columns that you want to show (new suggesting :) ) or putting the info outside the grid (like some suggested screenshot before)
---------------------
for meta-file orginization: i guess you are right!!! :D once some kind of story play mode kicks in, you will have to use the difficulty proposed by the author. so keeping that separate is a good choice. saying that, in the future, there should be a way to revert the properties of a certain file back to meta-file defaults.
---------------------
looking forward to the next release (with the song preview, which should be easy to do) :)
Locked