Hello fellow Unitees,
I was playing around with the piano for a while and decided to see if I could make it play it self, so to speak.
So I made this quick program to see if it was possible, which it turns out to be.
I would like to share it in case other people would like to join in on the fun, maybe even give some input to improvements and stuff like that. For this purpose the program is open source here
If you want to check out the program it can be downloaded from my dropbox here.
A legacy version of the program is available. This version is the first iteration of the program and is not recommented for use and is only made available so that people can get a compiled version of the code on the Legacy branch on github.
You can find the legacy version here
Latest update: Version 2.0.1 (Sun. June 12th. 01:38 GMT+2)
Latest legacy update: Version 1.2.2 (Mon. May 30th. 20:12 GMT+2)
Legacy vs. Experimental:
Experimental is much more dynamic and customizable than legacy and more features in this direction is planned.
Experimental is smarter than legacy as it constructs the notes as theyāre added and informing the user of wrong syntax and illegal notes. In legacy the notes werenāt checked before you pressed play, and thus unexpected behaviour could happen while playing.
The source code for experimental is much easier to read and well documented (if I do say so myself) with a larger focus on user friendlyness and readabillity.
The experimental version is more like an API that you build a GUI on top of. This opens the possibillity for creative users to make custom GUIs for the program that fits their needs. The default GUI utilizes all features of the API, but many are completely optional.
NOTE: The latest update to the legacy version introduces a new save format. Saves from versions prior to version 1.2.2 WILL load in newer versions, however, saves made in 1.2.2+ will not work in versions prior to 1.2.2.
ANOTHER NOTE: The experimental version introduces yet a new save format. Again, this is compatible with earlier versions, but not the other way around.
YET ANOTHER NOTE: The experimental version is now the stable version and has been put on the master branch on github. Legacy version can be found on the Legacy branch.
Below is some useful info you most likely should read before using the software
How to use:
- Read Known issues and Important
- Paste the song you want to play in the text box
- Make sure the song is a appropriate format and does not contain special characters
- Make sure your in-game character is sitting by the piano
- Click play
- If the game window does not become the active window on its own, do so now
An example of a working input is as such:
A B C ABC [ABC] {ABC}
An example of invalid input is as such:
(x2) (x3) etc.
as described in Known issues.
Save file example and syntax
The notes used in the example are made by Kite and can be found here
Example file for legacy (v1.2.2)
Example file for experimenal (v2.0)
Planned features:
Suggestions?
Known issues:
Cannot play black keys.
(I have tried to overcome this issue with everything I could think of, no luck so far.
Iāve tried to send capital letters and Iāve tried emulating holding the shift key.
But it looks straight through my trixes. If anyone has any idea how to solve this issue, please tell me :> )
Does not support (x2) etc. tags. The workaround is to paste it for each iteration.
These issues may lead to the software crashing or the in game character leaving the piano (See āImportantā).
Important
Please see this reply regarding the use of macros in Tower Unite
The software will send keypresses to the game until it completes the sequence or the stop button is pressed.
This means that if you leave the piano prematurely it WILL continue to send keypresses!
Use the software at your own risk.