aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/midi
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-07-07 18:59:32 -0400
committerDavid Robillard <d@drobilla.net>2022-07-17 18:14:00 -0400
commit1eccbe4355685b322194df72b5de2382d5290b3b (patch)
tree0677b5c2f577a5024c351a164527f4bdd91a639b /lv2/midi
parentd4a970f6962dda28133290194832b726b566ddab (diff)
downloadlv2-1eccbe4355685b322194df72b5de2382d5290b3b.tar.xz
Rearrange source tree to be directly usable by dependants
This allows the LV2 source distribution to be used as an include path for compilers and an LV2_PATH for applications, at the expense of self-contained bundles. That's a nice idea, but it made LV2 itself weird and annoying to depend on. This rearranges things so that directories in the source tree correspond more closely to installation directories. To make this possible, the "aux" directory in the documentation output has been changed to "style", to avoid the reserved name "aux" on Windows.
Diffstat (limited to 'lv2/midi')
-rw-r--r--lv2/midi/manifest.ttl9
-rw-r--r--lv2/midi/meson.build40
-rw-r--r--lv2/midi/midi.h248
-rw-r--r--lv2/midi/midi.meta.ttl153
-rw-r--r--lv2/midi/midi.ttl366
5 files changed, 0 insertions, 816 deletions
diff --git a/lv2/midi/manifest.ttl b/lv2/midi/manifest.ttl
deleted file mode 100644
index f141936..0000000
--- a/lv2/midi/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/midi>
- a lv2:Specification ;
- lv2:minorVersion 1 ;
- lv2:microVersion 10 ;
- rdfs:seeAlso <midi.ttl> .
-
diff --git a/lv2/midi/meson.build b/lv2/midi/meson.build
deleted file mode 100644
index 7907dfa..0000000
--- a/lv2/midi/meson.build
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
-
-name = 'midi'
-path = 'ns' / 'ext' / 'midi'
-
-midi_data = files(
- 'midi.meta.ttl',
- 'midi.ttl',
- 'manifest.ttl',
-)
-
-headers = files(
- 'midi.h',
-)
-
-# Install specification bundle
-install_data(midi_data, install_dir: lv2dir / name + '.lv2')
-install_headers(headers, subdir: 'lv2' / name)
-if get_option('old_headers')
- install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
-endif
-
-# Build documentation
-if build_docs
- lv2_midi_docs = custom_target(
- name + '.html',
- command: lv2specgen_command_prefix + [
- '--docdir=../../html',
- '--style-uri=../../aux/style.css',
- '@INPUT@',
- '@OUTPUT@',
- ],
- depends: doc_deps,
- input: files('midi.ttl'),
- install: true,
- install_dir: lv2_docdir / 'ns' / 'ext',
- output: name + '.html',
- )
-endif
diff --git a/lv2/midi/midi.h b/lv2/midi/midi.h
deleted file mode 100644
index f7e0500..0000000
--- a/lv2/midi/midi.h
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- Copyright 2012-2016 David Robillard <d@drobilla.net>
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-#ifndef LV2_MIDI_H
-#define LV2_MIDI_H
-
-/**
- @defgroup midi MIDI
- @ingroup lv2
-
- Definitions of standard MIDI messages.
-
- See <http://lv2plug.in/ns/ext/midi> for details.
-
- @{
-*/
-
-#include <stdbool.h>
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// clang-format off
-
-#define LV2_MIDI_URI "http://lv2plug.in/ns/ext/midi" ///< http://lv2plug.in/ns/ext/midi
-#define LV2_MIDI_PREFIX LV2_MIDI_URI "#" ///< http://lv2plug.in/ns/ext/midi#
-
-#define LV2_MIDI__ActiveSense LV2_MIDI_PREFIX "ActiveSense" ///< http://lv2plug.in/ns/ext/midi#ActiveSense
-#define LV2_MIDI__Aftertouch LV2_MIDI_PREFIX "Aftertouch" ///< http://lv2plug.in/ns/ext/midi#Aftertouch
-#define LV2_MIDI__Bender LV2_MIDI_PREFIX "Bender" ///< http://lv2plug.in/ns/ext/midi#Bender
-#define LV2_MIDI__ChannelPressure LV2_MIDI_PREFIX "ChannelPressure" ///< http://lv2plug.in/ns/ext/midi#ChannelPressure
-#define LV2_MIDI__Chunk LV2_MIDI_PREFIX "Chunk" ///< http://lv2plug.in/ns/ext/midi#Chunk
-#define LV2_MIDI__Clock LV2_MIDI_PREFIX "Clock" ///< http://lv2plug.in/ns/ext/midi#Clock
-#define LV2_MIDI__Continue LV2_MIDI_PREFIX "Continue" ///< http://lv2plug.in/ns/ext/midi#Continue
-#define LV2_MIDI__Controller LV2_MIDI_PREFIX "Controller" ///< http://lv2plug.in/ns/ext/midi#Controller
-#define LV2_MIDI__MidiEvent LV2_MIDI_PREFIX "MidiEvent" ///< http://lv2plug.in/ns/ext/midi#MidiEvent
-#define LV2_MIDI__NoteOff LV2_MIDI_PREFIX "NoteOff" ///< http://lv2plug.in/ns/ext/midi#NoteOff
-#define LV2_MIDI__NoteOn LV2_MIDI_PREFIX "NoteOn" ///< http://lv2plug.in/ns/ext/midi#NoteOn
-#define LV2_MIDI__ProgramChange LV2_MIDI_PREFIX "ProgramChange" ///< http://lv2plug.in/ns/ext/midi#ProgramChange
-#define LV2_MIDI__QuarterFrame LV2_MIDI_PREFIX "QuarterFrame" ///< http://lv2plug.in/ns/ext/midi#QuarterFrame
-#define LV2_MIDI__Reset LV2_MIDI_PREFIX "Reset" ///< http://lv2plug.in/ns/ext/midi#Reset
-#define LV2_MIDI__SongPosition LV2_MIDI_PREFIX "SongPosition" ///< http://lv2plug.in/ns/ext/midi#SongPosition
-#define LV2_MIDI__SongSelect LV2_MIDI_PREFIX "SongSelect" ///< http://lv2plug.in/ns/ext/midi#SongSelect
-#define LV2_MIDI__Start LV2_MIDI_PREFIX "Start" ///< http://lv2plug.in/ns/ext/midi#Start
-#define LV2_MIDI__Stop LV2_MIDI_PREFIX "Stop" ///< http://lv2plug.in/ns/ext/midi#Stop
-#define LV2_MIDI__SystemCommon LV2_MIDI_PREFIX "SystemCommon" ///< http://lv2plug.in/ns/ext/midi#SystemCommon
-#define LV2_MIDI__SystemExclusive LV2_MIDI_PREFIX "SystemExclusive" ///< http://lv2plug.in/ns/ext/midi#SystemExclusive
-#define LV2_MIDI__SystemMessage LV2_MIDI_PREFIX "SystemMessage" ///< http://lv2plug.in/ns/ext/midi#SystemMessage
-#define LV2_MIDI__SystemRealtime LV2_MIDI_PREFIX "SystemRealtime" ///< http://lv2plug.in/ns/ext/midi#SystemRealtime
-#define LV2_MIDI__Tick LV2_MIDI_PREFIX "Tick" ///< http://lv2plug.in/ns/ext/midi#Tick
-#define LV2_MIDI__TuneRequest LV2_MIDI_PREFIX "TuneRequest" ///< http://lv2plug.in/ns/ext/midi#TuneRequest
-#define LV2_MIDI__VoiceMessage LV2_MIDI_PREFIX "VoiceMessage" ///< http://lv2plug.in/ns/ext/midi#VoiceMessage
-#define LV2_MIDI__benderValue LV2_MIDI_PREFIX "benderValue" ///< http://lv2plug.in/ns/ext/midi#benderValue
-#define LV2_MIDI__binding LV2_MIDI_PREFIX "binding" ///< http://lv2plug.in/ns/ext/midi#binding
-#define LV2_MIDI__byteNumber LV2_MIDI_PREFIX "byteNumber" ///< http://lv2plug.in/ns/ext/midi#byteNumber
-#define LV2_MIDI__channel LV2_MIDI_PREFIX "channel" ///< http://lv2plug.in/ns/ext/midi#channel
-#define LV2_MIDI__chunk LV2_MIDI_PREFIX "chunk" ///< http://lv2plug.in/ns/ext/midi#chunk
-#define LV2_MIDI__controllerNumber LV2_MIDI_PREFIX "controllerNumber" ///< http://lv2plug.in/ns/ext/midi#controllerNumber
-#define LV2_MIDI__controllerValue LV2_MIDI_PREFIX "controllerValue" ///< http://lv2plug.in/ns/ext/midi#controllerValue
-#define LV2_MIDI__noteNumber LV2_MIDI_PREFIX "noteNumber" ///< http://lv2plug.in/ns/ext/midi#noteNumber
-#define LV2_MIDI__pressure LV2_MIDI_PREFIX "pressure" ///< http://lv2plug.in/ns/ext/midi#pressure
-#define LV2_MIDI__programNumber LV2_MIDI_PREFIX "programNumber" ///< http://lv2plug.in/ns/ext/midi#programNumber
-#define LV2_MIDI__property LV2_MIDI_PREFIX "property" ///< http://lv2plug.in/ns/ext/midi#property
-#define LV2_MIDI__songNumber LV2_MIDI_PREFIX "songNumber" ///< http://lv2plug.in/ns/ext/midi#songNumber
-#define LV2_MIDI__songPosition LV2_MIDI_PREFIX "songPosition" ///< http://lv2plug.in/ns/ext/midi#songPosition
-#define LV2_MIDI__status LV2_MIDI_PREFIX "status" ///< http://lv2plug.in/ns/ext/midi#status
-#define LV2_MIDI__statusMask LV2_MIDI_PREFIX "statusMask" ///< http://lv2plug.in/ns/ext/midi#statusMask
-#define LV2_MIDI__velocity LV2_MIDI_PREFIX "velocity" ///< http://lv2plug.in/ns/ext/midi#velocity
-
-// clang-format on
-
-/**
- MIDI Message Type.
-
- This includes both voice messages (which have a channel) and system messages
- (which do not), as well as a sentinel value for invalid messages. To get
- the type of a message suitable for use in a switch statement, use
- lv2_midi_get_type() on the status byte.
-*/
-typedef enum {
- LV2_MIDI_MSG_INVALID = 0, /**< Invalid Message */
- LV2_MIDI_MSG_NOTE_OFF = 0x80, /**< Note Off */
- LV2_MIDI_MSG_NOTE_ON = 0x90, /**< Note On */
- LV2_MIDI_MSG_NOTE_PRESSURE = 0xA0, /**< Note Pressure */
- LV2_MIDI_MSG_CONTROLLER = 0xB0, /**< Controller */
- LV2_MIDI_MSG_PGM_CHANGE = 0xC0, /**< Program Change */
- LV2_MIDI_MSG_CHANNEL_PRESSURE = 0xD0, /**< Channel Pressure */
- LV2_MIDI_MSG_BENDER = 0xE0, /**< Pitch Bender */
- LV2_MIDI_MSG_SYSTEM_EXCLUSIVE = 0xF0, /**< System Exclusive Begin */
- LV2_MIDI_MSG_MTC_QUARTER = 0xF1, /**< MTC Quarter Frame */
- LV2_MIDI_MSG_SONG_POS = 0xF2, /**< Song Position */
- LV2_MIDI_MSG_SONG_SELECT = 0xF3, /**< Song Select */
- LV2_MIDI_MSG_TUNE_REQUEST = 0xF6, /**< Tune Request */
- LV2_MIDI_MSG_CLOCK = 0xF8, /**< Clock */
- LV2_MIDI_MSG_START = 0xFA, /**< Start */
- LV2_MIDI_MSG_CONTINUE = 0xFB, /**< Continue */
- LV2_MIDI_MSG_STOP = 0xFC, /**< Stop */
- LV2_MIDI_MSG_ACTIVE_SENSE = 0xFE, /**< Active Sensing */
- LV2_MIDI_MSG_RESET = 0xFF /**< Reset */
-} LV2_Midi_Message_Type;
-
-/**
- Standard MIDI Controller Numbers.
-*/
-typedef enum {
- LV2_MIDI_CTL_MSB_BANK = 0x00, /**< Bank Selection */
- LV2_MIDI_CTL_MSB_MODWHEEL = 0x01, /**< Modulation */
- LV2_MIDI_CTL_MSB_BREATH = 0x02, /**< Breath */
- LV2_MIDI_CTL_MSB_FOOT = 0x04, /**< Foot */
- LV2_MIDI_CTL_MSB_PORTAMENTO_TIME = 0x05, /**< Portamento Time */
- LV2_MIDI_CTL_MSB_DATA_ENTRY = 0x06, /**< Data Entry */
- LV2_MIDI_CTL_MSB_MAIN_VOLUME = 0x07, /**< Main Volume */
- LV2_MIDI_CTL_MSB_BALANCE = 0x08, /**< Balance */
- LV2_MIDI_CTL_MSB_PAN = 0x0A, /**< Panpot */
- LV2_MIDI_CTL_MSB_EXPRESSION = 0x0B, /**< Expression */
- LV2_MIDI_CTL_MSB_EFFECT1 = 0x0C, /**< Effect1 */
- LV2_MIDI_CTL_MSB_EFFECT2 = 0x0D, /**< Effect2 */
- LV2_MIDI_CTL_MSB_GENERAL_PURPOSE1 = 0x10, /**< General Purpose 1 */
- LV2_MIDI_CTL_MSB_GENERAL_PURPOSE2 = 0x11, /**< General Purpose 2 */
- LV2_MIDI_CTL_MSB_GENERAL_PURPOSE3 = 0x12, /**< General Purpose 3 */
- LV2_MIDI_CTL_MSB_GENERAL_PURPOSE4 = 0x13, /**< General Purpose 4 */
- LV2_MIDI_CTL_LSB_BANK = 0x20, /**< Bank Selection */
- LV2_MIDI_CTL_LSB_MODWHEEL = 0x21, /**< Modulation */
- LV2_MIDI_CTL_LSB_BREATH = 0x22, /**< Breath */
- LV2_MIDI_CTL_LSB_FOOT = 0x24, /**< Foot */
- LV2_MIDI_CTL_LSB_PORTAMENTO_TIME = 0x25, /**< Portamento Time */
- LV2_MIDI_CTL_LSB_DATA_ENTRY = 0x26, /**< Data Entry */
- LV2_MIDI_CTL_LSB_MAIN_VOLUME = 0x27, /**< Main Volume */
- LV2_MIDI_CTL_LSB_BALANCE = 0x28, /**< Balance */
- LV2_MIDI_CTL_LSB_PAN = 0x2A, /**< Panpot */
- LV2_MIDI_CTL_LSB_EXPRESSION = 0x2B, /**< Expression */
- LV2_MIDI_CTL_LSB_EFFECT1 = 0x2C, /**< Effect1 */
- LV2_MIDI_CTL_LSB_EFFECT2 = 0x2D, /**< Effect2 */
- LV2_MIDI_CTL_LSB_GENERAL_PURPOSE1 = 0x30, /**< General Purpose 1 */
- LV2_MIDI_CTL_LSB_GENERAL_PURPOSE2 = 0x31, /**< General Purpose 2 */
- LV2_MIDI_CTL_LSB_GENERAL_PURPOSE3 = 0x32, /**< General Purpose 3 */
- LV2_MIDI_CTL_LSB_GENERAL_PURPOSE4 = 0x33, /**< General Purpose 4 */
- LV2_MIDI_CTL_SUSTAIN = 0x40, /**< Sustain Pedal */
- LV2_MIDI_CTL_PORTAMENTO = 0x41, /**< Portamento */
- LV2_MIDI_CTL_SOSTENUTO = 0x42, /**< Sostenuto */
- LV2_MIDI_CTL_SOFT_PEDAL = 0x43, /**< Soft Pedal */
- LV2_MIDI_CTL_LEGATO_FOOTSWITCH = 0x44, /**< Legato Foot Switch */
- LV2_MIDI_CTL_HOLD2 = 0x45, /**< Hold2 */
- LV2_MIDI_CTL_SC1_SOUND_VARIATION = 0x46, /**< SC1 Sound Variation */
- LV2_MIDI_CTL_SC2_TIMBRE = 0x47, /**< SC2 Timbre */
- LV2_MIDI_CTL_SC3_RELEASE_TIME = 0x48, /**< SC3 Release Time */
- LV2_MIDI_CTL_SC4_ATTACK_TIME = 0x49, /**< SC4 Attack Time */
- LV2_MIDI_CTL_SC5_BRIGHTNESS = 0x4A, /**< SC5 Brightness */
- LV2_MIDI_CTL_SC6 = 0x4B, /**< SC6 */
- LV2_MIDI_CTL_SC7 = 0x4C, /**< SC7 */
- LV2_MIDI_CTL_SC8 = 0x4D, /**< SC8 */
- LV2_MIDI_CTL_SC9 = 0x4E, /**< SC9 */
- LV2_MIDI_CTL_SC10 = 0x4F, /**< SC10 */
- LV2_MIDI_CTL_GENERAL_PURPOSE5 = 0x50, /**< General Purpose 5 */
- LV2_MIDI_CTL_GENERAL_PURPOSE6 = 0x51, /**< General Purpose 6 */
- LV2_MIDI_CTL_GENERAL_PURPOSE7 = 0x52, /**< General Purpose 7 */
- LV2_MIDI_CTL_GENERAL_PURPOSE8 = 0x53, /**< General Purpose 8 */
- LV2_MIDI_CTL_PORTAMENTO_CONTROL = 0x54, /**< Portamento Control */
- LV2_MIDI_CTL_E1_REVERB_DEPTH = 0x5B, /**< E1 Reverb Depth */
- LV2_MIDI_CTL_E2_TREMOLO_DEPTH = 0x5C, /**< E2 Tremolo Depth */
- LV2_MIDI_CTL_E3_CHORUS_DEPTH = 0x5D, /**< E3 Chorus Depth */
- LV2_MIDI_CTL_E4_DETUNE_DEPTH = 0x5E, /**< E4 Detune Depth */
- LV2_MIDI_CTL_E5_PHASER_DEPTH = 0x5F, /**< E5 Phaser Depth */
- LV2_MIDI_CTL_DATA_INCREMENT = 0x60, /**< Data Increment */
- LV2_MIDI_CTL_DATA_DECREMENT = 0x61, /**< Data Decrement */
- LV2_MIDI_CTL_NRPN_LSB = 0x62, /**< Non-registered Parameter Number */
- LV2_MIDI_CTL_NRPN_MSB = 0x63, /**< Non-registered Parameter Number */
- LV2_MIDI_CTL_RPN_LSB = 0x64, /**< Registered Parameter Number */
- LV2_MIDI_CTL_RPN_MSB = 0x65, /**< Registered Parameter Number */
- LV2_MIDI_CTL_ALL_SOUNDS_OFF = 0x78, /**< All Sounds Off */
- LV2_MIDI_CTL_RESET_CONTROLLERS = 0x79, /**< Reset Controllers */
- LV2_MIDI_CTL_LOCAL_CONTROL_SWITCH = 0x7A, /**< Local Control Switch */
- LV2_MIDI_CTL_ALL_NOTES_OFF = 0x7B, /**< All Notes Off */
- LV2_MIDI_CTL_OMNI_OFF = 0x7C, /**< Omni Off */
- LV2_MIDI_CTL_OMNI_ON = 0x7D, /**< Omni On */
- LV2_MIDI_CTL_MONO1 = 0x7E, /**< Mono1 */
- LV2_MIDI_CTL_MONO2 = 0x7F /**< Mono2 */
-} LV2_Midi_Controller;
-
-/**
- Return true iff `msg` is a MIDI voice message (which has a channel).
-*/
-static inline bool
-lv2_midi_is_voice_message(const uint8_t* msg)
-{
- return msg[0] >= 0x80 && msg[0] < 0xF0;
-}
-
-/**
- Return true iff `msg` is a MIDI system message (which has no channel).
-*/
-static inline bool
-lv2_midi_is_system_message(const uint8_t* msg)
-{
- switch (msg[0]) {
- case 0xF4:
- case 0xF5:
- case 0xF7:
- case 0xF9:
- case 0xFD:
- return false;
- default:
- return (msg[0] & 0xF0u) == 0xF0u;
- }
-}
-
-/**
- Return the type of a MIDI message.
- @param msg Pointer to the start (status byte) of a MIDI message.
-*/
-static inline LV2_Midi_Message_Type
-lv2_midi_message_type(const uint8_t* msg)
-{
- if (lv2_midi_is_voice_message(msg)) {
- return (LV2_Midi_Message_Type)(msg[0] & 0xF0u);
- }
-
- if (lv2_midi_is_system_message(msg)) {
- return (LV2_Midi_Message_Type)msg[0];
- }
-
- return LV2_MIDI_MSG_INVALID;
-}
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-/**
- @}
-*/
-
-#endif /* LV2_MIDI_H */
diff --git a/lv2/midi/midi.meta.ttl b/lv2/midi/midi.meta.ttl
deleted file mode 100644
index 7efdb01..0000000
--- a/lv2/midi/midi.meta.ttl
+++ /dev/null
@@ -1,153 +0,0 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix midi: <http://lv2plug.in/ns/ext/midi#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/midi>
- a doap:Project ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 MIDI" ;
- doap:shortdesc "A normalised definition of raw MIDI." ;
- doap:maintainer <http://drobilla.net/drobilla#me> ;
- doap:created "2006-00-00" ;
- doap:developer <http://lv2plug.in/ns/meta#larsl> ,
- <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.10" ;
- doap:created "2019-02-03" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix incorrect range of midi:chunk."
- ]
- ]
- ] , [
- doap:revision "1.8" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Use consistent label style."
- ] , [
- rdfs:label "Add midi:binding and midi:channel predicates."
- ] , [
- rdfs:label "Add midi:HexByte datatype for status bytes and masks."
- ] , [
- rdfs:label "Remove non-standard midi:Tick message type."
- ] , [
- rdfs:label "Add C definitions for message types and standard controllers."
- ] , [
- rdfs:label "Fix definition of SystemExclusive status byte."
- ]
- ]
- ] , [
- doap:revision "1.6" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add class definitions for various message types."
- ] , [
- rdfs:label "Document how to serialise a MidiEvent to a string."
- ] , [
- rdfs:label "Merge with unified LV2 package."
- ]
- ]
- ] , [
- doap:revision "1.4" ;
- doap:created "2011-11-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2-midi-1.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Update packaging."
- ] , [
- rdfs:label "Improve documentation."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2011-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-midi-1.2.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add build system for installation."
- ] , [
- rdfs:label "Switch to ISC license."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2010-10-04" ;
- doap:file-release <http://lv2plug.in/spec/lv2-midi-1.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
- lv2:documentation """
-
-This specification defines a data type for a MIDI message, midi:MidiEvent,
-which is normalised for fast and convenient real-time processing. MIDI is the
-<q>Musical Instrument Digital Interface</q>, a ubiquitous binary standard for
-controlling digital music devices.
-
-For plugins that process MIDI (or other situations where MIDI is sent via a
-generic transport) the main type defined here, midi:MidiEvent, can be mapped to
-an integer and used as the type of an LV2 [Atom](atom.html#Atom) or
-[Event](event.html#Event).
-
-This specification also defines a complete vocabulary for the MIDI standard,
-except for standard controller numbers. These descriptions are detailed enough
-to express any MIDI message as properties.
-
-"""^^lv2:Markdown .
-
-midi:MidiEvent
- lv2:documentation """
-
-A single raw MIDI message (a sequence of bytes).
-
-This is equivalent to a standard MIDI messages, except with the following
-restrictions to simplify handling:
-
- * Running status is not allowed, every message must have its own status byte.
-
- * Note On messages with velocity 0 are not allowed. These messages are
- equivalent to Note Off in standard MIDI streams, but here only proper Note
- Off messages are allowed.
-
- * "Realtime messages" (status bytes 0xF8 to 0xFF) are allowed, but may not
- occur inside other messages like they can in standard MIDI streams.
-
- * All messages are complete valid MIDI messages. This means, for example,
- that only the first byte in each event (the status byte) may have the
- eighth bit set, that Note On and Note Off events are always 3 bytes long,
- etc.
-
-Where messages are communicated, the writer is responsible for writing valid
-messages, and the reader may assume that all events are valid.
-
-If a midi:MidiEvent is serialised to a string, the format should be
-xsd:hexBinary, for example:
-
- :::turtle
- [] eg:someEvent "901A01"^^midi:MidiEvent .
-
-"""^^lv2:Markdown .
-
-midi:statusMask
- lv2:documentation """
-
-This is a status byte with the lower nibble set to zero.
-
-"""^^lv2:Markdown .
-
diff --git a/lv2/midi/midi.ttl b/lv2/midi/midi.ttl
deleted file mode 100644
index 81f3495..0000000
--- a/lv2/midi/midi.ttl
+++ /dev/null
@@ -1,366 +0,0 @@
-@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
-@prefix ev: <http://lv2plug.in/ns/ext/event#> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix midi: <http://lv2plug.in/ns/ext/midi#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-
-<http://lv2plug.in/ns/ext/midi>
- a owl:Ontology ;
- rdfs:label "LV2 MIDI" ;
- rdfs:comment "A normalised definition of raw MIDI." ;
- rdfs:seeAlso <midi.h> ,
- <midi.meta.ttl> .
-
-midi:ActiveSense
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemRealtime ;
- rdfs:label "Active Sense" ;
- rdfs:comment "MIDI active sense message." ;
- midi:status "FE"^^xsd:hexBinary .
-
-midi:Aftertouch
- a rdfs:Class ;
- rdfs:subClassOf midi:VoiceMessage ;
- rdfs:label "Aftertouch" ;
- rdfs:comment "MIDI aftertouch message." ;
- midi:statusMask "A0"^^xsd:hexBinary ;
- midi:chunk [
- midi:byteNumber 0 ;
- midi:property midi:noteNumber
- ] , [
- midi:byteNumber 1 ;
- midi:property midi:pressure
- ] .
-
-midi:Bender
- a rdfs:Class ;
- rdfs:subClassOf midi:VoiceMessage ;
- rdfs:label "Bender" ;
- rdfs:comment "MIDI bender message." ;
- midi:statusMask "E0"^^xsd:hexBinary ;
- midi:chunk [
- midi:byteNumber 0 ,
- 1 ;
- midi:property midi:benderValue
- ] .
-
-midi:ChannelPressure
- a rdfs:Class ;
- rdfs:subClassOf midi:VoiceMessage ;
- rdfs:label "Channel Pressure" ;
- rdfs:comment "MIDI channel pressure message." ;
- midi:statusMask "D0"^^xsd:hexBinary ;
- midi:chunk [
- midi:byteNumber 0 ;
- midi:property midi:pressure
- ] .
-
-midi:Chunk
- a rdfs:Class ;
- rdfs:label "Chunk" ;
- rdfs:comment "A sequence of contiguous bytes in a MIDI message." .
-
-midi:Clock
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemRealtime ;
- rdfs:label "Clock" ;
- rdfs:comment "MIDI clock message." ;
- midi:status "F8"^^xsd:hexBinary .
-
-midi:Continue
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemRealtime ;
- rdfs:label "Continue" ;
- rdfs:comment "MIDI continue message." ;
- midi:status "FB"^^xsd:hexBinary .
-
-midi:Controller
- a rdfs:Class ;
- rdfs:subClassOf midi:VoiceMessage ;
- rdfs:label "Controller" ;
- rdfs:comment "MIDI controller change message." ;
- midi:statusMask "B0"^^xsd:hexBinary ;
- midi:chunk [
- midi:byteNumber 0 ;
- midi:property midi:controllerNumber
- ] , [
- midi:byteNumber 1 ;
- midi:property midi:controllerValue
- ] .
-
-midi:HexByte
- a rdfs:Datatype ;
- owl:onDatatype xsd:hexBinary ;
- owl:withRestrictions (
- [
- xsd:maxInclusive "FF"
- ]
- ) ;
- rdfs:label "Hex Byte" ;
- rdfs:comment "A hexadecimal byte, which has a value <= FF." .
-
-midi:MidiEvent
- a rdfs:Class ,
- rdfs:Datatype ;
- rdfs:subClassOf ev:Event ,
- atom:Atom ;
- owl:onDatatype xsd:hexBinary ;
- rdfs:label "MIDI Message" ;
- rdfs:comment "A single raw MIDI message." .
-
-midi:NoteOff
- a rdfs:Class ;
- rdfs:subClassOf midi:VoiceMessage ;
- rdfs:label "Note Off" ;
- rdfs:comment "MIDI note off message." ;
- midi:statusMask "80"^^xsd:hexBinary ;
- midi:chunk [
- midi:byteNumber 0 ;
- midi:property midi:noteNumber
- ] , [
- midi:byteNumber 1 ;
- midi:property midi:velocity
- ] .
-
-midi:NoteOn
- a rdfs:Class ;
- rdfs:subClassOf midi:VoiceMessage ;
- rdfs:label "Note On" ;
- rdfs:comment "MIDI note on message." ;
- midi:statusMask "90"^^xsd:hexBinary ;
- midi:chunk [
- midi:byteNumber 0 ;
- midi:property midi:noteNumber
- ] , [
- midi:byteNumber 1 ;
- midi:property midi:velocity
- ] .
-
-midi:ProgramChange
- a rdfs:Class ;
- rdfs:subClassOf midi:VoiceMessage ;
- rdfs:label "Program Change" ;
- rdfs:comment "MIDI program change message." ;
- midi:statusMask "C0"^^xsd:hexBinary ;
- midi:chunk [
- midi:byteNumber 0 ;
- midi:property midi:programNumber
- ] .
-
-midi:QuarterFrame
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemCommon ;
- rdfs:label "Quarter Frame" ;
- rdfs:comment "MIDI quarter frame message." ;
- midi:status "F1"^^xsd:hexBinary .
-
-midi:Reset
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemRealtime ;
- rdfs:label "Reset" ;
- rdfs:comment "MIDI reset message." ;
- midi:status "FF"^^xsd:hexBinary .
-
-midi:SongPosition
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemCommon ;
- rdfs:label "Song Position" ;
- rdfs:comment "MIDI song position pointer message." ;
- midi:status "F2"^^xsd:hexBinary ;
- midi:chunk [
- midi:byteNumber 0 ,
- 1 ;
- midi:property midi:songPosition
- ] .
-
-midi:SongSelect
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemCommon ;
- rdfs:label "Song Select" ;
- rdfs:comment "MIDI song select message." ;
- midi:status "F3"^^xsd:hexBinary .
-
-midi:Start
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemRealtime ;
- rdfs:label "Start" ;
- rdfs:comment "MIDI start message." ;
- midi:status "FA"^^xsd:hexBinary .
-
-midi:Stop
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemRealtime ;
- rdfs:label "Stop" ;
- rdfs:comment "MIDI stop message." ;
- midi:status "FC"^^xsd:hexBinary .
-
-midi:SystemCommon
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemMessage ;
- rdfs:label "System Common" ;
- rdfs:comment "MIDI system common message." .
-
-midi:SystemExclusive
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemMessage ;
- rdfs:label "System Exclusive" ;
- rdfs:comment "MIDI system exclusive message." ;
- midi:status "F0"^^xsd:hexBinary .
-
-midi:SystemMessage
- a rdfs:Class ;
- rdfs:subClassOf midi:MidiEvent ;
- rdfs:label "System Message" ;
- rdfs:comment "MIDI system message." ;
- midi:statusMask "F0"^^xsd:hexBinary .
-
-midi:SystemRealtime
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemMessage ;
- rdfs:label "System Realtime" ;
- rdfs:comment "MIDI system realtime message." .
-
-midi:TuneRequest
- a rdfs:Class ;
- rdfs:subClassOf midi:SystemCommon ;
- rdfs:label "Tune Request" ;
- rdfs:comment "MIDI tune request message." ;
- midi:status "F6"^^xsd:hexBinary .
-
-midi:VoiceMessage
- a rdfs:Class ;
- rdfs:subClassOf midi:MidiEvent ;
- rdfs:label "Voice Message" ;
- rdfs:comment "MIDI voice message." ;
- midi:statusMask "F0"^^xsd:hexBinary .
-
-midi:benderValue
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "bender value" ;
- rdfs:range xsd:short ;
- rdfs:comment "MIDI pitch bender message (-8192 to 8192)." .
-
-midi:binding
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:range midi:MidiEvent ;
- rdfs:label "binding" ;
- rdfs:comment "The MIDI event to bind a parameter to." .
-
-midi:byteNumber
- a rdf:Property ,
- owl:DatatypeProperty ;
- rdfs:label "byte number" ;
- rdfs:domain midi:Chunk ;
- rdfs:range xsd:unsignedByte ;
- rdfs:comment "The 0-based index of a byte which is part of this chunk." .
-
-midi:channel
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "MIDI channel" ;
- rdfs:range xsd:unsignedByte ;
- rdfs:comment "The channel number of a MIDI message." .
-
-midi:chunk
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:range midi:Chunk ;
- rdfs:label "MIDI chunk" ;
- rdfs:comment "A chunk of a MIDI message." .
-
-midi:controllerNumber
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "MIDI controller number" ;
- rdfs:range xsd:byte ;
- rdfs:comment "The numeric ID of a controller (0 to 127)." .
-
-midi:controllerValue
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "MIDI controller value" ;
- rdfs:range xsd:byte ;
- rdfs:comment "The value of a controller (0 to 127)." .
-
-midi:noteNumber
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "note number" ;
- rdfs:range xsd:byte ;
- rdfs:comment "The numeric ID of a note (0 to 127)." .
-
-midi:pressure
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "key pressure" ;
- rdfs:range xsd:byte ;
- rdfs:comment "Key pressure (0 to 127)." .
-
-midi:programNumber
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "program number" ;
- rdfs:range xsd:byte ;
- rdfs:comment "The numeric ID of a program (0 to 127)." .
-
-midi:property
- a rdf:Property ,
- owl:ObjectProperty ,
- owl:FunctionalProperty ;
- rdfs:label "property" ;
- rdfs:domain midi:Chunk ;
- rdfs:range rdf:Property ;
- rdfs:comment "The property this chunk represents." .
-
-midi:songNumber
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "song number" ;
- rdfs:range xsd:byte ;
- rdfs:comment "The numeric ID of a song (0 to 127)." .
-
-midi:songPosition
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "song position" ;
- rdfs:range xsd:short ;
- rdfs:comment "Song position in MIDI beats (16th notes) (-8192 to 8192)." .
-
-midi:status
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "status byte" ;
- rdfs:range midi:HexByte ;
- rdfs:comment "The exact status byte for a message of this type." .
-
-midi:statusMask
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "status mask" ;
- rdfs:range midi:HexByte ;
- rdfs:comment "The status byte for a message of this type on channel 1." .
-
-midi:velocity
- a rdf:Property ,
- owl:DatatypeProperty ,
- owl:FunctionalProperty ;
- rdfs:label "velocity" ;
- rdfs:range midi:HexByte ;
- rdfs:comment "The velocity of a note message (0 to 127)." .
-