Giter Site home page Giter Site logo

scrawlon / web-midi-nrpn-tester Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 112 KB

Simple app for creating MIDI NRPN controllers and sending NRPN messages to external devices via Web MIDI.

License: MIT License

CSS 14.67% JavaScript 65.97% HTML 19.36%
midi nrpn control

web-midi-nrpn-tester's Introduction

Web MIDI NRPN Tester

Simple app for creating MIDI NRPN controllers and sending NRPN messages to external devices via Web MIDI.


NOTE: Web MIDI is not supported in all browsers. Google Chrome is recommended, but check caniuse.com for more info on browser support.


Quick Intro to MIDI NRPN

If you're new to the idea of NRPN midi events, it can be a bit confusing. Normal MIDI CC messages are sent as one event, including MIDI Channel, CC # and value. However, NRPN MIDI messages are sent as three or four separate events in this specific order:

  • MIDI Channel, CC 99, MSB value
  • MIDI Channel, CC 98, LSB value
  • MIDI Channel, CC 6, value
  • MIDI Channel, CC 38, value

NOTE: The fourth event is optional, and sets a "fine-tune" value. More info available on Wikipedia

For example, from the Novation Circuit Programmers Reference Guide, NRPN "FX Bypass" is a Session parameter (default MIDI Channel 16), with the following settings:

Control Number Range
1:21 0-1

To change "FX Bypass" NRPN value to "1" you would need to send the following three MIDI events:

  • MIDI Channel 16, CC 99, MSB value 1
  • MIDI Channel 16, CC 98, LSB value 21
  • MIDI Channel 16, CC 6, value 1

User Guide

This app allows you to experiment with MIDI NRPNs by:

  • Connecting to an external MIDI device via Web MIDI
  • Creating interactive MIDI NRPN controllers
  • Monitoring the MIDI NRPN events as they're being transmitted to your external MIDI device

1. Open the App

Click here to launch the application.

Google Chrome is recommended, but check caniuse.com for more info on browser support.

2. Connect a MIDI Device

Connect an external MIDI device to your computer. Once connected, the "MIDI OUT" display at the top of the screen should change from a red "x" to a "โœ“".

I'll be using the Novation Circuit as an example in this guide. It uses a USB cable to connect to a computer.

3. Create an NRPN Controller

The Novation Circuit Programmers Reference Guide lists the following for the Session NRPN parameter "FX Bypass".

Control Number Range
1:21 0-1

For an NRPN controller, this translates to:

  • MSB: 1
  • LSB: 21
  • Value: 0 - 1
  • MIDI Channel: 16 (default for Session parameters on the Novation Circuit)

To create an NRPN test controller for this parameter, enter those values in the form, and choose a controller type.

Create an NRPN controller form

There are three available controller types: "slider", "select" and "radio". For the above, there are only two possible values (0 and 1), so I would choose the "radio" type.

NRPN test controller

4. Send NRPN MIDI events

Once you have one or more NRPN test controllers, you can send NRPN MIDI events by adjusting the "SEND MIDI" controls. For the "FX Bypass" controller described above, you could select "0" or "1" to transmit the NRPN value to a Novation Circuit.

A small status window will display information about the last MIDI sent MIDI event.

NRPN MIDI event status

web-midi-nrpn-tester's People

Contributors

scrawlon avatar

Watchers

 avatar  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.