Tower Unite

Tower Unite

40 ratings
Using your MIDI device and playing MIDI files on Tower Unite
By Yoshify.
A C# .NET program that allows you to use your MIDI device and play MIDI files on Tower Unite!

   
Award
Favorite
Favorited
Unfavorite
About Tower Unite MIDI .NET
Hi! I'm Yoshify, and I'm the creator of Tower Unite MIDI .NET.

I created Tower Unite MIDI .NET due to a lack of options for using a MIDI piano with Tower Unite. Native support has been in the talks for years, but so far there hasn't been any notable progress. Tower Unite MIDI .NET will convert any MIDI devices input into something Tower Unite can read. Due to popular request during development, playback of MIDI files has also been implemented.

Tower Unite MIDI .NET is written in C# and heavily utilises the DryWetMidi[github.com] library.

Please note that the program will appear different on your computer than the screenshots below as I'm using a custom theme!

Downloading Tower Unite MIDI .NET
To download the program, please proceed to the projects GitHub[github.com] page and download the latest release from the "Releases" section as demonstrated below.

Using Tower Unite MIDI .NET
Using Tower Unite MIDI .NET is simple!

  1. Obtain the latest release from the "Releases" page.
  2. Extract the archive into it's own folder.
  3. Run the program.
  4. You'll notice 2 tabs in the program, MIDI Device Setup and MIDI Playback. MIDI Device Setup is your go-to tab for setting up and using your MIDI devices, where as MIDI Playback is the tab you'll need for playing back MIDI files.
  5. MIDI Device Setup
    • To setup your MIDI device, please select it from the 'Input Devices' dropdown list. If it isn't showing up, please press the 'Scan for devices' button. If it still doesn't show up, please ensure your device is connected properly.
    • Once you have your MIDI device selected, press 'Start Listening' to start receiving input from your device. Alternatively, you can open your Tower Unite window and hit the F1 key.
    • To stop receiving input from your MIDI device, press the 'Stop Listening' button, or alternatively press the F2 key.
    • By default, the note's are transposed so that middle C (C4) on your device aligns with Tower Unite. If you're unhappy with this transposition, and your device doesn't natively support transposing, you can use the 'Octave Transposition' slider to customise it to your liking.
  6. MIDI Playback
    • First, browse for your file using the 'Browse' button.
    • If you wish to transpose or modify the playback speed of your file, you can do so using the provided sliders. Note that you cannot modify this while the file is playing.
    • Open your Tower Unite window and press the F1 key to begin file playback.
    • If you wish to stop playing the file early, hit the F2 key.
  7. Options
    • Ping Input
      • On laggier connections, you'll notice some dud black keys. This is because Tower Unite doesn't have enough time to register the fact that the program has hit the shift key. To combat this, the program has a miniscule delay (15ms) built in to key presses, but sometimes that's not enough. If you're having problems, use this to input your Tower Unite ping and the program will do its best to assign a more appropriate key delay. Please note that this will add latency between your key presses vs. when you hear them.
    • Detailed Logging
      • Enables the logging of events such as MIDI key presses.
Doesn't a program like this already exist?
Yes, it was written in python by a steam user called Mattio. This was great for a while, but my reason for creating this alternative is primarily because Mattio's version had some limitations.
  1. It hasn't been updated in 2 years.
  2. It required devices to specifically use MIDI channel 1.
  3. It rarely had good black key presses.
  4. It didn't offer MIDI file playback.
My program not only solves these limitations, but offers a fair bit more in terms of functionality.
Is this against the rules?
Macroing is a touchy subject in Tower Unite. As stated here[forums.pixeltailgames.com] by the lead developer of Tower Unite, piano macro's are okay, and I've personally never experienced an issue during testing. Even though this software doesn't inject anything and only sends keypresses, I'd still take care as Tower Unite is VAC protected, and VAC doesn't discriminate. Please always make sure to take care in starting and stopping the software only while you're on the piano, and as always, this software is used at your own risk.
Known Issues
  1. Sometimes, you may be required to spam the "stop" key or button when playing a MIDI, though I've rarely encountered this and cannot reliably replicate it.
  2. Currently only supports a QWERTY keyboard layout. I'll make other layouts such as AZERTY if demand is high enough.

To report an issue, please either leave a comment here or raise an issue on the project's GitHub page.[github.com]
Thank you
Thank you for reading and using Tower Unite MIDI .NET. I hope it's everything you wanted!

If you have any ideas for new features, please, leave a comment below and I'll be sure to get onto it! :)
18 Comments
Wowzers Oct 4, 2023 @ 10:59am 
How do I open this? I downloaded the newest version on GitHub and unzipped it and see no .exe or anything that opens into a program of any kind.
mai Dec 21, 2022 @ 9:35pm 
So this has been broken for almost 3 years now. I remember it stopped working in 2021. Is OP still around?.
NyTR0S96 Feb 16, 2022 @ 11:56pm 
"It hasn't been updated in 2 years." . . . . . ironic
scrumptious silly lollipop Oct 4, 2020 @ 7:33am 
Best part about this is using it on drums

Suddenly your amazing song just turns into
.
.
.
ting
.
.
.
thump
.
.
.
pop
Yoshify.  [author] Aug 23, 2020 @ 8:25pm 
@Redfurt this is unfortunately a limitation of the game. This software uses a best-effort approach, and whilst it does get the job done it won't ever truly sound 100% due to the latency involved converting standard keypresses into shifted keypresses and then sending it into the game.

Maybe one day the TU dev's will finally implement native MIDI support :)
Jelastronaut Aug 23, 2020 @ 1:27pm 
The black keys still sound a bit awkward...it doesn't play correctly. I don't have a midi device set up; I'm just using the 2nd tab exlusively.
8Z May 18, 2020 @ 5:28pm 
Thanks for the quick reply, and good luck!
Yoshify.  [author] May 18, 2020 @ 2:18am 
@8Z I can do that! I haven't touched this in quite a while but it should be a pretty simple request - give me a little bit to get around to it :)
8Z May 17, 2020 @ 8:50pm 
Tried it out and it works pretty great. If the program could be used to dump the keystrokes into a text file (for people to play themselves), that would be amazing!
Papa Bear Feb 4, 2020 @ 11:06am 
How do I run the program?