Thanks to visit codestin.com
Credit goes to github.com

Skip to content

jazz-soft/JZZ-midi-RTC

Repository files navigation

JZZ-midi-RTC

MIDI via WebRTC

npm npm build Coverage Status

This module allows two WebRTC peers communicate with each other's MIDI ports.
And YES, these ports are visible from the Web MIDI API!
Please see the demo here ...

If, instead, you are building a client-server application,
you may want to check https://github.com/jazz-soft/JZZ-midi-WS

Usage

Plain HTML
<script src="JZZ.js"></script>
<script src="JZZ.midi.RTC.js"></script>
//...
CDN (jsdelivr)
<script src="https://cdn.jsdelivr.net/npm/jzz"></script>
<script src="https://cdn.jsdelivr.net/npm/jzz-midi-rtc"></script>
//...
CDN (unpkg)
<script src="https://unpkg.com/jzz"></script>
<script src="https://unpkg.com/jzz-midi-rtc"></script>
//...
CommonJS
var JZZ = require('jzz');
require('jzz-midi-rtc')(JZZ);
//...

Example

var MidiRTC = new JZZ.RTC();
var RTCPC = new RTCPeerConnection();
// ...
// ... boilerplate WebRTC code here ...
// ...
MidiRTC.connect(RTCPC);

API

var MidiRTC = new JZZ.RTC(name);

Constructor. name - name to be used as preffix for remote MIDI ports. If not set, will be WebRTC, WebRTC1, WebRTC2, etc...

MidiRTC.connect(RTCPC);

Connect to a WebRTC session. RTCPC - a RTCPeerConnection object.
If the previous WebRTC session was closed, MidiRTC can be connected to another session.

MidiRTC.close();

Disconnect and close all remote MIDI ports.

MidiRTC.addMidiIn(name, port);
MidiRTC.addMidiOut(name, port);

Add MIDI port. name - name to bee seen by the remotr peer; port - MIDI port (real or virtual).

MidiRTC.removeMidiIn(name);
MidiRTC.removeMidiOut(name);

Remove MIDI port.

{add/remove}Midi{In/Out}(...) functions can be called before or after the connection is made.

See also

About

MIDI via WebRTC

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published