
github.com/jonlervold/jontools
jontools is a collection of various coding projects I’ve built that serve practical, experimental, or fun purposes. Each tool came about either from facing a problem where no existing solution quite fit my needs or simply because I thought it would be interesting to create.
Version 1.0 features two tools: a MIDI inverter and a MIDI transformer.
- MIDI Inverter
- Description: Invert the pitches of MIDI files while maintaining the original register.
- Key Capabilities:
- Transforms each MIDI note to its mirror image.
- Preserves the overall musical structure, including key changes and modal interchange, except inverted.
- Includes an octave-matching function to maintain track registers.
- MIDI Transformer
- Description: Apply custom transformations to MIDI files, allowing for complex musical alterations.
- Key Capabilities:
- Supports a wide range of modal transformations based on user-defined parameters.
- Facilitates both automatic and manual transformation selection for precise control.
This project started while I spent half of January in the hospital dealing with the worst ulcerative colitis flare I’ve experienced since getting diagnosed with that obnoxious disease a year ago. While there, I decided to work on a project I nearly finished in 2020: ripping every sample, soundfont, and MIDI file from every N64 game. Once the last bits of that were done, I thought “it would be nice to have all the MIDI files inverted since I want to eventually continue my N64 Tonal Inversion series.” So I wrote the code for the inversion process, wrote some additional code that looped through all of the game folders, and ran the inverter on every file.
I then got released and went home for a few days, but my symptoms immediately came back, so I ended up getting readmitted to the hospital. During my second stint I took a Docker course. I’ve worked with Docker at my job for years, but felt like I would benefit from gaining a more thorough understanding of it. When I was finished with the Docker course, I realized a perfect learning opportunity would be add a frontend to the MIDI inverter I had just built and to containerize the whole project. So I did that. In my spare time over the next few weeks I added the MIDI transformer functionality, which is something that I’ve imagined for a long time, and then figured out how to deploy the application on an AWS Lightsail VPS.
I will be adding more functionality to this site over time. I have many small projects from over the years that could have their own pages here and many ideas for other interesting tools to create.