At the end of 2021, I decided I wanted to both learn unreal engine and make a custom song editor for the game paradiddle. I accomplished that and learned a whole bunch along the way!
My patreon if you really want to support me, and My Kofi if one time donations are more your thing
Overview
I have quite a lot of experience mapping in the past for a game called Beat Saber, so I have a decent enough understanding of what makes a comfortable and efficient workflow. The editor in question is EditSaber (or all the preceding forks EditSaber Enhanced, Mediocre Mapper, Mediocre Mapper Assistant 2) and it taught me a huge amount about good workflow. UI element ideas from Chromapper were also adopted for one or two things. If you have used any of those editors listed, you'll be very comfortable using this editor; keybinds are similar, ui is similar, and overall feel is similar.
Good BPM change support. BPM changes are extensively supported, allowing you to place them down, modify their placement after the fact, and retain their relative beats while it's done so. This allows you to deal with drift or odd time signatures with ease. You can also copy and paste them, and include notes in the copy action. Movement between bpm changes with clean snapping is supported, as well as copy and pasting large sections of notes across multiple bpm changes at once.
High quality spectrogram. A huge amount of work went into the 3D spectrogram, but it was well worth it. The spectrogram is both very fast and customizable to a high degree, allowing you to change brightness, frequency logarithm, volume exponent (sharpness), and color, all at run time without needing to regenerate the spectrogram. Additionally, you can clamp the frequencies you want to look at to get a high detail view of just those frequencies, you can separate the left and right audio channels to get a clearer view of each channel, and you can set how many threads you wish to use, up to 24 total threads. Theres also a waveform for the people who want one of those. Much faster than the spectrogram to generate as well, so a good lightweight option for weaker systems.
MIDI Importing. you can import midi files right into ParEdit to quickly put together a map. Songs containing large arrays of instrument with non standard midi values are fully supported. Type 0 tracks can have their channel filtered, and ableton files (which dont contain a BPM) can have their BPM adjusted at import time.
MIDI Out. Using a program like LoopMIDI, you can output the notes to paradiddle or a daw to get real time feedback for timing or if your instruments are correct.
Multi audio format support. To keep parity with the game, the editor supports .Wav, .Flac, .MP3, and .OGG. This gives you wide flexibility in the formats you wish to use for your beat map.
Multi audio track support. Again, to keep parity with the game, multiple tracks are supported and will be loaded, no sweat. The spectrogram track is also separate from the game tracks, allowing you to mix and match the tracks and get exactly what you want from the spectrogram. In editor you can manage the audio tracks, allowing you to mute or solo tracks with ease. You can also view multiple spectrograms simultaneously for multi drum track setups.
Good user made drumset support. You can create custom drum sets in game then add them directly into the map! There's no need to work with the standard 10 piece set for a song only requiring 4 instruments. You can also make unique drum kits that would otherwise not be possible in real life.
Import Recordings From Paradiddle. You can import drum sessions made in paradiddle into ParEdit. This means you can, in theory, make maps totally in paradiddle and just setup the metadata in ParEdit.
high speed note loading and editing with the use of instanced meshes. 50,000 notes loading in half a second? yes please!
More BPM change QOL things, like automatic bpm detection and automatic BPM change placement.
As the game updates, this editor will be too to keep up with all its features.
other than that, lots and lots of bugs and small things to be added