There are several MIDI or NoteSequence visualizers available. You can connect it to an mm.Player to update the visualization in sync with the audio.
Load a melody in any of these formats:
Note: This has the same visual output as mm.PianoRollSVGVisualizer, but using a canvas instead of an svg. This visualizers also redraws the entire sequence on every time step. For longer sequences, canvases become really expensive and big, and might crash the renderer. We recommend using the PianoRollSVGVisualizermm.PianoRollSVGVisualizer, if performance is a concern.
SVG visualizers (piano roll and waterfall) support CSS! Use a selector like svg rect.note to match notes, and style them using the available CSS properties. More advanced styling is possible:
.active class.data-instrument, data-program, data-is-drum and data-pitch.--midi-velocity custom property is defined on every note and can be accessed using the var() CSS function. To demonstrate this, we need a slightly juiced up version of our NoteSequence:
Click below to apply the following style sheet: