Giter VIP home page Giter VIP logo

python-midi-monitor's Introduction

Browser MIDI monitor

Surprisingly, it can be quite hard to find a decent MIDI monitor for windows. And since I wanted to play around with MIDI coding and NiceGUI anyway, this seemed like a good project for that.

In the UI it is possible to select a MIDI device and connect and disconnect from it. All MIDI messages show up in the textboxes (50 messages in each). For now this is all it does, since this is all I need (just a simple tester for MIDI connections). But I might expand this later to at least a better visualisation of the incoming MIDI messages.

For now this is meant to be used standalone by starting the program from the commandline:

python midiMonitor.py

You can clone my Conda environment using the environment.yaml file with the following command

conda env create --file=environment.yaml

The minimal required dependencies are (see below for doc links):

  • mido
  • python-rtmidi
  • nicegui

Currently, I have only tested this on my own Windows PC.

Details

The MidiMonitor class holds the last 100 MIDI messages (in a deque, configured with a max length of 100). Rtmidi delivers the data in byte format, so mido is used to parse the message and this is directly converted into a string to display. There is a lot to gain here in terms of verstility and visualisation, but for now this works fine. The connect and disconnect methods are coupled directly to the UI buttons at the top. A MIDI port must be selected before connecting.

TODO

  • Improve visualisation
  • Add MIDI functions (possibly sending data)

References

python-midi-monitor's People

Contributors

florian-heringa avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.