Skip to content

obiwanjacobi/midi.net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIDI.NET

Release-CI

MIDI.NET allows any .NET developer to access the power of MIDI without (the developer) having to do P/Invokes.

MIDI.NET provide .NET developers with an easy an robust way to employ MIDI in their applications. It handles all unmanaged code for you and interfaces with the Windows Multimedia API. It consists of two major parts: the MidiPorts and the Midi Messages.

It is very much appriciated if you...Donate

Or join the Discord Server https://discord.gg/A8xe9YC

Come visit MIDI.NET on Facebook. https://www.facebook.com/midi4net

NOTE: For Windows 8 WinRT (StoreApps) you can use: https://www.nuget.org/packages/Microsoft.WindowsPreview.MidiRT/


Midi Ports

The "Chain of Responsibilities" pattern is used to move MIDI data to and from the MidiPorts. ChainManager classes allow you to easily buildup these chains of processing and provide an excellent extension point for you to customize Midi data handling. Buffers to handle Midi Streams (out) and System Exclusive Midi messages (in/out) are also handled by the library. These buffers are implemented as Streams and allow easy access of the Midi data contained within.

Midi Messages

The wide range of Midi messages are broken down into a group of Midi Message classes that each represent a specific type of Midi message. Also the Meta messages found in Midi Files are present. The "Factory" pattern is used to allow you to easily create these instances and even pool them for more efficient use of memory (this is also known as the "flyweight" pattern).

MIDI.NET runs on any Windows version except WinRT (it will run on the Windows 8 desktop) that has .NET 4.0 (or higher) .NET Core 3.1 installed. It is built using Visual Studio 2019.

MIDI Resources

Canned Bytes The namespace of the MIDI.NET assemblies starts with CannedBytes. This is the name of the company I have started a couple of years ago.