Description
Overview

PXR MIDI Player is a powerful, native macOS application for playing Standard MIDI Files, through a software synthesiser or real hardware, exactly the way they were meant to be heard. Since Apple dropped built-in MIDI playback from QuickTime, macOS has had no native way to open and play them, and PXR brings that back and then goes a great deal further…
PXR fully supports the General MIDI, Roland GS, Yamaha XG and GM2 standards, automatically detecting each file’s format and adapting its interface to match. If you own vintage MIDI hardware such as a Roland Sound Canvas or a Yamaha MU series module, PXR routes output directly to your device through CoreMIDI with sub-millisecond timing accuracy. For those without external hardware, a built-in GS Lite synthesiser (using Apple’s DLS bank) gives you instant sound.
Load your own SoundFonts and PXR plays them through a SoundFont engine written from scratch for the app: you can assign a different .sf2 to each channel, effects such as reverb and chorus are applied per channel rather than globally so every part keeps its own character, and it plays melodic variation banks the system synthesiser cannot. Custom .dls banks are supported too. PXR’s engine is checked against the SoundFont Spec Implementation Test, a public set of thirty-two tests across three suites covering the parts of the format you hear, and it passes every one. So a SoundFont should sound the way its creator intended.
The real-time visualiser shows note activity, velocity, volume, pan and controller data for all 16 channels of a port at once, with several display modes including segmented meters, a scrolling piano roll and a per-channel keyboard view. Multi-port files with up to 64 channels are fully supported, with every channel available in the Mixer. A SysEx console decodes every System Exclusive message during playback into plain English, covering Roland GS, Yamaha XG, PLG board and MT-32 parameter sets.
Beyond playback, PXR gives you real depth of control: live GS and XG effect monitors you can view and even adjust as the music plays, a Part Inspector that breaks any channel down to its individual controllers, and dedicated support for Yamaha PLG daughterboards and the Roland MT-32.
PXR MIDI Player is a free download, with an optional pay-what-you-like contribution to support ongoing development.
Features
Segment visualisation of note velocity
The activity meter displays real-time note velocity across all 16 channels as a segmented bar, inspired by classic hardware LED meters. Each channel row fills with colour-coded segments – green through the lower range, yellow as intensity builds, and red at peak velocity – giving you an instant visual read on the dynamics of every part in the arrangement. The meters sit alongside volume faders, pan dials, and controller bars for expression, reverb, chorus, and variation, so every parameter is visible at a glance.
Piano-roll animation
Switch to piano roll mode and every channel becomes a scrolling timeline of notes. Played notes stream to the left of the playhead while upcoming notes scroll in from the right, giving you a live overview of the arrangement as it unfolds. Active notes burst into particle effects as they cross the playhead, with SysEx events triggering flame animations. You can choose between a classic colour scheme or a multicolour pitch-based palette that maps low-to-high notes across a full spectrum. A velocity meter sits alongside each channel, so you can see both the note data and its dynamics in one view.
Keyboard visualisation
Keyboard mode places a full 88-key piano across every channel, rendered entirely on the GPU. Each key lights up in real time as notes play, with a unique colour per channel that flows from red through orange, green, purple, and blue across the 16 rows. Black and white keys are drawn with 3D shading to mimic the look of a real keyboard, and a retrigger flash highlights repeated notes so fast passages stay readable. It is an intuitive way to see exactly which notes are sounding on every channel at once, without needing to interpret bars or numbers.
Live Mixing Console
The mixer lays out a full channel strip for every part: voice name, fader with live level meter, pan, mute and solo, plus dials for expression, reverb, chorus, variation and brightness, and a transpose control that shifts the part by up to 24 semitones either way. Every control is live, sending real changes to your hardware as you drag, and you can lock any channel to a different instrument with a click. Controls a format cannot use are dimmed, so what you see always reflects what your synth can actually do. It is ideal for reshaping a mix as it plays.
Part Inspector

Ever wondered exactly what a file is doing to one instrument? Pick any single channel and the Part Inspector lays out everything shaping that part in one window: its voice, volume, expression and pan, the reverb, chorus and variation sends, tone tweaks such as vibrato, filter cutoff, resonance and envelope, plus pitch-bend range, tuning, portamento and mono or poly mode. A live panel shows the notes on a mini keyboard alongside pitch bend, expression, aftertouch and modulation, and its own volume strip carries the same transpose dial, level meter, mute and solo as the Mixer.
Live Track Context


Two always-visible information strips beneath the LCD show the loaded file’s musical and technical context.
One row lists the file’s active effect blocks (reverb, chorus, delay and insertion effects for XG and GS, or channel/voice/track counts for GM and GM2 files), tagging hardware defaults as “(default)” so file-explicit settings stand out.
The other shows the song’s key signature (read from the file or inferred), the chord currently sounding in real time and a quick file readout: note count, PPQN timing resolution and file size.
MT-32 Mode
Mark any MIDI file as Roland MT-32 and PXR pivots its whole front face to match: the visualiser collapses to the MT-32’s 9 parts (1โ8 + Rhythm) with the right labels, voice names and a status panel modelled on a real MT-32 front face sits below the part rows.
Pair a track with its original .syx setup and PXR streams it to your MT-32 (or MUNT) before playback, then reads it back to drive the visualiser. The SysEx Monitor speaks fluent MT-32 too! LA-synthesis parameters decode to readable names.
Speaker Visualiser
Turn on the Speaker Visualiser in Display settings to surround the player with a full studio rig. A speaker cabinet appears on each side of the player window (optional in settings), with a woofer and tweeter that physically respond to the music – the woofer cone pulses with bass frequencies, the tweeter dome with treble. A LED meter bar sits beside each cabinet, and a curved LED bar above the title bar adds a stereo level display across the top of the player. Below each speaker, a small format-themed LCD mirrors the main display’s 16-channel meters and changes colour with the file’s format.

Mini Player
The mini player collapses the interface down to just the LCD display and transport controls, tucking neatly into a corner of your desktop. The visualiser is now a representation of what you might see on real hardware of the MIDI era and the window shrinks to a compact size, so you can keep music playing without it taking over your screen. Toggle the playlist on and it extends from the bottom of the window, letting you browse and switch tracks without leaving the mini layout.

Listening Stats
PXR keeps a private history of what you have played, entirely on your own Mac. The Listening Stats window shows your totals, most-played files and listening rhythm over time, with a shareable summary image. Nothing leaves your machine!

Tempo Graph
The Tempo Graph plots a file’s tempo across its whole length, so you can see ritardandos, accelerandos and sudden changes at a glance. It zooms around the current playback position, and you can pinch to zoom on a trackpad to study a passage in detail.

File Info
The File Info window gathers everything about the loaded file in one place: title and metadata, format, track and channel counts, timing resolution and any embedded cover art, so you always know what you are listening to.
XG A/D Part
For Yamaha XG modules with an audio input, the XG A/D Part window shows how a file sets up the mic or line part: a Part 1 / Part 2 switch, mixer and effect-send controls, routing and receive switches, so external audio sits alongside the 16 MIDI channels.
MIDI Instrument Voice Libraries
PXR MIDI Player includes a comprehensive voice library covering the instrument sets of the General MIDI, GM2, Roland GS and Yamaha XG standards.



For Roland GS, the library spans the voice lists from the SC-55 through to the SC-88, SC-88 Pro and SC-8850, including all map variations and drum kits.
For Yamaha XG, instrument names are provided across the entire family: from the original MU-series sound modules (MU80, MU90, MU100, MU128 and MU1000/MU2000) and their PLG expansion boards (PLG100-VL, PLG100-DX, PLG100-SG), through to the modern XG-derived workstations and arrangers, including Tyros 1 through Tyros 5, the Genos and Genos 2 flagships, and the PSR line that shares much of the XG voice library. S.Art articulations, Live! and MegaVoice variants are recognised and labelled with the family they come from.

Yamaha PLG board monitors

For files that drive Yamaha’s PLG expansion boards, PXR opens dedicated live monitors: PLG100-VL (virtual acoustic) with its breath, pitch-bend and modulation display, PLG100-DX (FM) and PLG100-SG (singing).
Lyrics Window

For MIDI files that contain embedded lyrics, the lyrics window opens as a dedicated display with synchronised karaoke-style highlighting. The current syllable is picked out in pink with a soft glow, while sung text turns white and upcoming words stay visible so you can follow along in real time. Previous and next lines sit above and below for context, and a progress bar with timestamp runs along the bottom. It reads lyric events directly from the MIDI file, so there is no need to supply a separate lyrics file.
SysEx Log Window
The SysEx console is a real-time monitor that logs every System Exclusive message as it is sent during playback. Each entry shows the timestamp, manufacturer, data length, and a decoded human-readable description of the command, drawn from a built-in database of Roland GS, Yamaha XG and Universal SysEx definitions. Select any message to open a detail panel with the decoded information and raw hex data. Voice fallback warnings are flagged inline so you can spot when a file references patches your device may not support and track separators keep the log organised when moving through a playlist.
Live effect windows | GS & XG
See exactly what the file is doing to the synth. PXR MIDI Player now ships dedicated monitor windows for every effect block on a Roland GS or Yamaha XG module, with live parameter dials, channel send meters and a cross-link bar so you can jump straight from one effect block to the next without diving back through menus.

Interface
- 16-Channel Visualiser: Note activity, velocity, volume, pan, expression, reverb, chorus, pitch bend, modulation, sustain and aftertouch per channel
- Piano Roll: Scrolling note timeline showing past and upcoming notes, with classic or multicolour display modes
- LCD Display: Measure, beat, time signature, BPM and 16-channel activity meters with format-themed colours
- Center display modes in the visualiser: switch the centre column between Note Roll, Meters (volume/pan/expression/reverb/etc.) and 88-key Keyboards per channel
- 64-Channel switching: View the other channels of compatible MIDI files by using CH-UP and CH-DN buttons to view on the visualiser in 16 channel increments
- Comprehensive voice naming across formats: General MIDI, GM2, Roland GS (with model-specific names for SC-55, SC-88, SC-88Pro and SC-8850), Yamaha XG (MU80/90/100/128/1000/2000), and the modern XG family of 1,700+ voices from Tyros, Genos and Motif models
- Modern XG voices: S.Art, S.Art2, MegaVoice, Live!, Cool!, Sweet!, FM, OrganFlutes, Legacy and the Live!/Revo/Ambi drum kits are tagged with type-tinted badges in the visualiser so each category reads as distinct
- Per-channel instrument icons in the visualiser: (piano, drum kit, etc., changing as Program Change messages land)
- Yamaha PLG expansion board voices recognised: DX (FM), SG (singing) and VL (virtual acoustic)
- Lyrics Display: Synchronised lyrics with word-level highlighting, key transposition and melody channel mute
- Format badge right-click menu: switch a track between XG BASIC and XG NATIVE on the fly so the right voice library renders.
- Chapter/Marker Support: Navigate MIDI files by embedded markers with chapter buttons and seek bar indicators
- Playlist: Drag-and-drop, auto-advance, shuffle, repeat, search, sort, import and export
- Solo/Mute: Per-channel solo and mute controls with interactive volume and pan adjustment
- Mini Player: Compact playback-only mode with format-specific visualiser (โโงM)
Settings
- SoundFont Loading: Load custom .sf2 & .dls SoundFont files for the built-in synthesiser with master volume and reverb controls
- Per-channel SoundFonts: assign a different SoundFont to individual channels from the Mixer, and clear them again while keeping the main one loaded
- Multi-Port Presets: Create custom port configurations for multi-port MIDI setups, assigning channel ranges across up to four MIDI ports
- GM Reset Before Playback: Optional GM System On reset before each track to ensure clean instrument selection
- LCD Display Style: Auto-detect from MIDI format or manually choose Blue (GM), Green (XG) or Orange (GS)
- Visualiser Frame Rate: Choose between 30 for battery saving or auto FPS depending on your preference for smoothness or CPU usage
- Always on Top: Keep the Mini Player above other windows
- Auto-route by Format: automatically sends GM, Roland GS (per Sound Canvas model) and Yamaha XG traffic to different connected hardware ports
Playback
- Timing: Sub-millisecond accuracy using mach_absolute_time with a 5ms/200Hz scheduler and 15ms lookahead
- Hardware MIDI Output: CoreMIDI integration for output to physical devices
- Software Synth: a built-in GS Lite synthesiser (Apple’s DLS bank) for instant playback, plus PXR’s own SoundFont engine that renders custom .sf2 files, with master volume and reverb controls (custom .dls banks also supported)
- Format Detection: Automatic detection of GM, Roland GS, Yamaha XG, GM2 formats with format-specific LCD themes
- Media Keys: Play, pause, next and previous track from your keyboard’s media keys or macOS Now Playing controls
- Bounce Audio: render the built-in synth’s output to WAV, either the current track or the entire playlist, in CD (44.1 kHz / 16-bit) or Studio (48 kHz / 24-bit) quality, with optional silence trim and level normalisation
- Tempo control: (50โ200%) and pitch transpose (ยฑ12 semitones), with drag-to-adjust on the value text
- Per-channel transpose: shift any single channel by up to 24 semitones from the Mixer or Part Inspector, separate from the global playback transpose
- Sleep Timer: with preset and custom minutes plus a 1-minute warning sheet before silence
Monitoring
- SoundFont Instruments window: See every preset in the loaded .sf2 or .dls at a glance,
laid out as one column per bank with drums on the end. - SysEx Console: Real-time SysEx message log with a library of decoded parameters
- Track Separators: Shows which file each SysEx message belongs to
- Roland GS & Yamaha XG Decoding: Human-readable parameter names and values
- Resizable Detail Panel: Adjustable message detail view Inbound hardware
- SysEx capture: the SysEx Monitor also logs SysEx coming back from the connected device, not just outgoing
File Support
- Standard MIDI Files: Type 0 and Type 1
- Drag & Drop: Files and folders directly to the playlist
- Playlist Files: Import and export .m3u playlists
- Recent Files and Recent Playlists: menus for quick re-opening
- Cover art: drop a cover.jpg, cover.jpeg, or cover.png next to your MIDI files in a folder and PXR uses it everywhere – the File Info tile, the macOS Now Playing widget on the lock screen and Control Center and the track-start notification banner. One image per folder is all it takes.
Performance Mode

Performance Mode (โ4) provides a live MIDI controller for playing and controlling hardware MIDI devices in real time.
Virtual Keyboard
- On-screen 88-key piano keyboard with mouse click and drag
- Pitch bend and modulation wheels
MIDI Input Routing
- Connect a physical MIDI keyboard to play through PXR to your output device
- Input notes are shown on the virtual keyboard in real time
Integration with Playback
- During MIDI file playback, Performance Mode inherits the current channel state (instrument, bank, volume) so you can play over the file
- See the notes highlight as your MIDI file plays for the channel you have selected
Instrument Selection
- Supports GM, GM2, GS, and XG sound standards
- Model picker for GS (SC-55, SC-88, SC-88Pro, SC-8850) and XG (MU80, MU90, MU100, MU128, MU1000/2000)
- Bank and voice selection from the full voice library for the chosen standard and model
- Channel selector for any of the 16 MIDI channels
Effects and Controls
- Reverb and chorus send level sliders
- Sustain pedal toggle
- Panic button to silence all notes and reset controllers
PXR MIDI Player – Frequently Asked Questions
To find out more, read our extensive PXR MIDI Player Wiki.
Setup and Configuration
From version 1.2.6 onwards, PXR MIDI Player is signed with an Apple Developer ID and notarised by Apple. macOS can see exactly where it came from and opens it without complaint, so the security warnings older downloads produced are gone. See Installing & First Launch.
To select your MIDI device, go to PXR MIDI Player โ Settings (โ,) and select your MIDI output port from the list. Your selection is saved automatically.
Copyright ยฉ 2025-2026 James Woodcock. All rights reserved.
This software is proprietary. No license is granted for use, modification, or distribution without explicit permission from the copyright holder. Names of MIDI hardware, formats, and standards (including Roland, Yamaha, GS, XG, GM, SC-55, SC-88, MU-series, NS5R, and similar marks) are the property of their respective owners and are used here for compatibility and identification only. PXR MIDI Player is not affiliated with, endorsed by, or sponsored by any of these companies.
Discover more from Pixel Refresh
Subscribe to get the latest posts sent to your email.






















Stephen Wong (verified owner) –
I’ve some last century MIDI sound modules (like Yamaha MU90R, P50-m, QY70, QY100) and quite a lot of bought MIDI files. I’ve searching for a MIDI player which can resurrect those ‘old good days memory’. Just found this PXR MIDI player for MacOS. Great! Even better, it supports XG (Yamaha’s extended GM standard), so, I’ve been able to play back my MIDI files. The UI of this program is very good, nothing fancy, but just good to let me see all the 16 tracks what’s going to happen, and there is also a SysEx window, which I can see what special messages are sent from those MIDI files. Very good, thank you for making this program!
jphsd (verified owner) –
What a fantastic little player! It makes a nice addition to MuseScore4 which I’ve been using since Apple axed MIDI support in QT. I’ve not had any issues running it on my Mini M4 running Tahoe.
Kreeblah (verified owner) –
I have a couple of different modules (an MU2000 and an SC-55), and I’ve been looking for a good MIDI player for a long time. Up until I found this one, I’d been using something basic but functional, but I always wished I had something that integrated better with the weird non-GM stuff that Roland and Yamaha did. This one does. It recognizes the modules I have plugged in, identifies what standard the MIDI files I have conform to (MIDI, MIDI 2, GS, or XG), and offers a lot of neat options like displaying the PXR logo on my synth when it’s not playing things back.
This has more features than I ever knew I wanted, and it works really well. I did run into a couple of edge cases (hooray for being an outlier), but James was more than willing to look into them. That said, for just about everything I want to do with MIDI playback, it works great. This is clearly a labor of love, and it really shows with how well-designed it is, and how well it supports actual hardware synthesizers from back in the day.
weave.maroons-1b (verified owner) –
A really cool player especially if you have a whole stack of vintage MIDI synths hooked up to your mac! The interface is modern and responsive and the player is already very feature rich for such a fresh project. I think word of mouth will travel fast in the retro community for this, and I look forward to seeing how it develops over time. :)
Patrik W. (verified owner) –
Actually the best app of its kind that I have tried so far. Very close to five stars.
James Woodcock (store manager) –
Thanks for your review. What would make it 5 stars for you?
Mark Jarjisian (verified owner) –
Very nice MIDI Player.
therensdaniels (verified owner) –
love the way it works, would be nice if the loop feature would work a bit better so you dont notice it
James Woodcock (store manager) –
Thanks for your review. I’ve contacted you for more information about the looping you would like to see improvement on so hopefully I can make more adjustments here for you. The next release will see improvements in looping for those using Apple’s own MIDI voices or any other soundfonts too.
bermalv (verified owner) –
The software is still in beta, but itโs already very well-crafted and highly promising. A must-have for Mac users who love MIDI and karaoke. I shared a few UI suggestions on Reddit, and they were acknowledged the same dayโwith updates rolling out just two days later. Truly incredible work; this team earns my highest respect! It passes with flying colors, and Iโm certain it will become the best MIDI/Karaoke app in the Apple ecosystem.
n9yty (verified owner) –
I am most interested in the (Experimental) Performance Mode. A few things that make that a little less than optimal right now (it is Experimental, so hey, no complaints!):
The fonts colors used in the window are very hard to read
When playing to a soundfont it would be nice if it could retrieve and use the instrument names from the sound font
I am primarily looking for a simple program that can play my external MIDI instrument’s sounds on the mac. I used to use SimpleSynth but it is having problems on modern macs. This program looks fantastic and well above and beyond this simple function, but if it could do this thing well it would be awesome! :)
James Woodcock (store manager) –
Thanks for the feedback, I’ll see what can be done for soundfont usage in performance mode. This mode is quite rough at the moment, it’s my next focus most certainly.
James Woodcock (store manager) –
Soundfont selection in Performance Mode where it shows what sounds are available in the loaded soundfonts will be available in the next version for you ๐
Alexandro Rivieccio (verified owner) –
I love this!
Is there a way to change which instrument it uses for a particular channel?
James Woodcock (store manager) –
Not currently, but I’ll consider that as a feature update for you…
James Woodcock (store manager) –
This feature is now available in the Mixer window. Just click the instrument name at the top to change the sound.
G Q (verified owner) –
very nice app
Jose S. (verified owner) –
Great player with several options to play via GS or XG midi files. it does provide info as which track are being played by instrument. There are additional capabilities that I haven explored but I will as prepare my midi files. I appreciate the fact that is a free for the Mac and provides a capability long gone. Thanks and great job.
James Woodcock (store manager) –
Thank you Jose ๐ Glad you’re enjoying my app!
Jacob (verified owner) –
Just what the MIDI doctor ordered!
James Woodcock (store manager) –
Thank you for your kind review. Never thought of my app being on a prescription ๐
Adi N. (verified owner) –
This is the best example of under promise over deliver that I have seen!!!
This piece of software does way more than many paid apps can and it’s very easy to use.
I should buy another one, just so I can pay the price it deserves.
James Woodcock (store manager) –
Thank you very much for your excellent review! I’m really pleased you’re enjoying my app.