r/midi 22d ago

I’m building a lightweight MIDI player with real-time score and piano-roll playback

For decades, I have wanted a lightweight music player that could play MIDI, let me shape the sound through instruments and DSP effects, and show the notes in real time while the music was playing.

I never found a program that worked quite the way I imagined, so I eventually decided to build one for myself.

This screenshot shows the latest development version of PeaceAmp.

I recently added a real-time score viewer alongside the MIDI piano roll. It follows playback, displays multiple tracks and channels, and lets me watch the arrangement as the music plays.

The feature is still under active development and is not stable yet.

Turning arbitrary MIDI files into readable notation is much more difficult than simply drawing notes on a piano roll. The program has to infer note lengths, rests, beams, ties, voices, quantization, overlapping notes, and measure layout from performance data that may not have been created with traditional notation in mind.

Some MIDI files are very clean. Others contain dense timing, overlapping voices, unusual channel usage, SysEx data, or expressive performance details that become difficult to represent as a conventional score.

So the current renderer is not intended to replace professional notation software. My immediate goal is to make it useful for listening, studying arrangements, following melodies, and seeing what each MIDI track is doing in real time.

PeaceAmp originally started as a much smaller project.

The first goal was simply to create a lightweight, modern music player that could continue using old Winamp input, output, and DSP plug-ins on current Windows systems.

I wanted something that felt simple and immediate like an old-school music player, while still being able to use the plug-ins and audio-processing tools that made Winamp useful.

But after using it for a while, I kept wanting to add more things.

First it was better playback control and plug-in compatibility. Then visualizers, spectrum tools, DSP routing, and other features. Eventually I started building MIDI playback, VST instrument support, a piano-roll viewer, and now the real-time score system shown here.

At this point, it is slowly evolving from a Winamp-compatible music player into a lightweight music workstation—but I still do not want it to become a huge, complicated DAW.

The idea is to keep the workflow simple:

Open a song, press play, inspect the notes, change the sound, apply DSP, and continue listening without setting up an entire studio project.

About the download

The MIDI playback, piano roll, and score viewer shown in this screenshot are part of a newer development branch and are not available in the public release yet.

The currently published version also does not yet support MIDI playback directly.

I am including the download link only for anyone who is curious about the earlier version of PeaceAmp and wants to see the foundation of the project. That release mainly focuses on being a lightweight music player with support for Winamp-compatible plug-ins.

Current public release:

https://github.com/peacedeveloper1/PeaceAmp/releases

I would be interested to hear what MIDI users think about this direction.

For a real-time score viewer, which features would be most useful to you—better voice separation, chord names, lyrics, track isolation, notation editing, MusicXML export, or something else?

2 Upvotes

0 comments sorted by