I’ve added a couple of features, which I’ll describe. But mostly, this is about the state of the distribution effort.
If you wish to download, the itch.io project page MAY require a password (while testing, should be removed soon). The password is: rnktest
New features (version 1.1):
- Pitch adjustments via the tuning slider are now global (affecting all playing notes) and operates in real time.
- The “Hold” function has been augmented. Now, in addition to a “sustain pedal” mode, where notes are extended indefinitely, there is a new “Toggle” mode in which the keys being held can be individually turned off.
Also, there was a bit of work done to figure out how to have the Mac OSX GUI be more closely similar to the Windows GUI. (For example, font sizes for the MacOS are smaller.)
About Distribution on itch.io:
The indie-friendly site has two modes for downloading. If you go to the site with a browser, the download links work as normal links. Programs then have to be run directly from the OS. The second mode is to download and run programs from within the itch.io application.
I’ve decided NOT to recommend or support using the itch.io application. The main reason is that I am using installers. The itch.io application does not work well with installers. The “launch” button from within the itch.io application has problems in that it seems to be set to run the downloaded program (in my case, an installer) instead of the program that the installer installs. (In the case of Windows, actually, for me, the first time I tried “launch”, it ran the installer, but the second time using this button, it actually uninstalled the application instead of running it!)
So, why am I using a packaging tool for the Windows and Mac OSX install instead of their recommended format (a file structure with the executable in the top file folder)?
First, difficulties encountered:
Windows - The jlinked program is executed via a .bat file. The .bat can be easily rewritten so that it runs from the top file folder, but there are a couple issues.
(1) The top level .bat cannot be given an identifying icon.
(2) The top level .bat seems to inevitably open up a console window in addition to opening the application (even when using javaw.exe rather than java.exe).
Mac OSX - For whatever reason, the manually-configured .app, when downloaded by itch.io, ran with the following problem: the top-level form for the application was solid red. All the controls were fully functional, but effectively invisible.
Now, it might be possible to solve both situations. In fact, if any of the readers of this have suggestions or solutions, I would love to hear them. Please reply! Following are what I think are the paths forward for each OS.
Path forward with Windows: try using a bat-to-exe conversion tool, and include the application icon within the .exe. This probably would work and may even allow the application to be run without spawning extraneous console/cmd windows.
Path forward with Mac OSX: instead of using the simpler manually-configured .app, package as a full out Bundle.
However, I’m not sure the effort involved would be worth it. An issue for me is that the itch.io packaging system does NOT support file association. I don’t NEED file association for Reference-Note-Keyboard, but I WILL be wanting it for virtually all the other applications I plan to release. So, am a bit reluctant to do yet more work for a one-off.
Solution currently being used: make use of free packaging tools.
For Windows, I’m packaging the jlinked file system with Inno-Setup 5. [Just found out that the most current release is Inno-Setup 6!] This tool supports application icons, installation to the StartMenu and optional desktop icon, and file association (I’ve tested and verified this). This tool is also referenced in the Oracle documentation on packaging and distribution for Java.
For Mac OSX, I’m packaging the jlinked file system with Packages. This tool has allowed me to set up the installation to occur in a subdirectory of the Users “Home”. By doing so, the installation doesn’t require an Admin ID, as it would if the installation were set to install in the “Applications” directory. This tool also has provisions for running scripts prior or after the install, so my assumption is that via these, it will be possible to establish file association. (Haven’t verified that this works, yet.)
[EDIT, 4/5/19] The “Packages” tool is pretty cool, but it is not allowing me to install in a sub-directory of the user’s Home. I have a query out to the author to ask about some apparent inconsistencies in the Q&A 03 which is supposed to show how to do this. Instead, I’m now doing the following:
made a folder to hold a readme.txt and the manually-created .app, and zipping this and uploading it to itch.io
In the itch.io project page, I’m explicitly recommending that users do NOT use the itch.io application. This is not ideal, but what else?
I’m pondering investigating other distribution platforms.