All Projects â†’ jcelerier â†’ Libremidi

jcelerier / Libremidi

Licence: other
A modern C++ MIDI real-time & file I/O library. Supports Windows, macOS, Linux and WebMIDI.

Programming Languages

cpp17
186 projects

Projects that are alternatives of or similar to Libremidi

Managed Midi
[Past project] Cross-platform MIDI processing library for mono and .NET (ALSA, CoreMIDI, Android, WinMM and UWP).
Stars: ✭ 130 (+88.41%)
Mutual labels:  midi, alsa
Crosswindow
💻📱 A cross platform system abstraction library written in C++ for managing windows and performing OS tasks.
Stars: ✭ 155 (+124.64%)
Mutual labels:  emscripten, uwp
Python Rtmidi
Python bindings for the cross-platform MIDI I/O library RtMidi
Stars: ✭ 189 (+173.91%)
Mutual labels:  midi, alsa
alsa-midi-latency-test
Measure the roundtrip time of MIDI messages.
Stars: ✭ 20 (-71.01%)
Mutual labels:  midi, alsa
Unimidi
Realtime MIDI IO for Ruby
Stars: ✭ 229 (+231.88%)
Mutual labels:  midi, alsa
rtpmidid
RTP MIDI (AppleMIDI) daemon for Linux
Stars: ✭ 109 (+57.97%)
Mutual labels:  midi, alsa
Low Latency Android Ios Linux Windows Tvos Macos Interactive Audio Platform
🇸Superpowered Audio, Networking and Cryptographics SDKs. High performance and cross platform on Android, iOS, macOS, tvOS, Linux, Windows and modern web browsers.
Stars: ✭ 1,121 (+1524.64%)
Mutual labels:  midi
Openframeworks
openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
Stars: ✭ 8,652 (+12439.13%)
Mutual labels:  emscripten
Modern Midi
🎼 C++11 MIDI file & realtime io library
Stars: ✭ 61 (-11.59%)
Mutual labels:  midi
Sass.js
Sass.js - API for emscripted libsass to run in the browser
Stars: ✭ 1,111 (+1510.14%)
Mutual labels:  emscripten
Magnum Bootstrap
Bootstrap projects for Magnum C++11/C++14 graphics engine
Stars: ✭ 69 (+0%)
Mutual labels:  emscripten
Mahapps.metro.iconpacks
Awesome icon packs for WPF and UWP in one library
Stars: ✭ 1,157 (+1576.81%)
Mutual labels:  uwp
React Uwp
📱⌨ React Components that Implement Microsoft's UWP Design & Fluent Design.
Stars: ✭ 1,145 (+1559.42%)
Mutual labels:  uwp
Midi.net
MIDI for .NET on Windows.
Stars: ✭ 64 (-7.25%)
Mutual labels:  midi
Audiokit
Swift audio synthesis, processing, & analysis platform for iOS, macOS and tvOS
Stars: ✭ 8,827 (+12692.75%)
Mutual labels:  midi
Audiobench
Open source modular synthesizer
Stars: ✭ 63 (-8.7%)
Mutual labels:  midi
Uwp Machinelearning Sample
Demonstrates how to use ML.NET to implement some Machine Learning use cases in UWP.
Stars: ✭ 69 (+0%)
Mutual labels:  uwp
Uwpx Client
A WIP secure XMPP client for UWP (Windows 10) devices.
Stars: ✭ 61 (-11.59%)
Mutual labels:  uwp
Abcjs
javascript for rendering abc music notation
Stars: ✭ 1,141 (+1553.62%)
Mutual labels:  midi
Inthehand.forms
Extras for Xamarin Forms including MediaElement
Stars: ✭ 68 (-1.45%)
Mutual labels:  uwp

libremidi

Build status

libremidi is a header-only cross-platform C++17 library for MIDI input and output.

This is a fork based on two libraries:

Instead of adding another abstraction layer like ModernMIDI does, this directly modernizes the RtMidi codebase with new C++ features and improvements:

  • Callbacks are passed by std::function and generally simplified.
  • Ability to use boost::small_vector to pass midi bytes instead of std::vector to reduce allocations.
  • Less indirections, virtuals and memory allocations.
  • Simplify usage of some functions, use C++ return style everywhere.
  • Use of standard C++ snake_case.
  • Use of standard C++ folder hierarchy ; just add the current folder to your include path.
  • Simplification of exceptions.
  • The library can be used header-only with the define LIBREMIDI_HEADER_ONLY.
  • Passes clean through clang-tidy, clang analyzer, GCC -Wall -Wextra, etc etc.
  • JACK support on Windows.
  • JACK support through weakjack to allow runtime loading of JACK.

To-dos:

  • Work-in-progress support for notification on device connection / disconnection (currently ALSA only)
  • Work-in-progress support for UWP MIDI support on Windows
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].