jontools

jontools.net

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.