1## Copyright (C) 2019 John Donoghue <john.donoghue@ieee.org> 2## 3## This program is free software: you can redistribute it and/or modify it 4## under the terms of the GNU General Public License as published by 5## the Free Software Foundation, either version 3 of the License, or 6## (at your option) any later version. 7## 8## This program is distributed in the hope that it will be useful, but 9## WITHOUT ANY WARRANTY; without even the implied warranty of 10## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11## GNU General Public License for more details. 12## 13## You should have received a copy of the GNU General Public License 14## along with this program. If not, see 15## <https://www.gnu.org/licenses/>. 16 17## -*- texinfo -*- 18## The Audio package provides basic MIDI functionality for GNU octave. 19## 20## The following MIDI functions are available: 21## 22## @subsubheading MIDI Device query: 23## @table @asis 24## @item mididevinfo 25## list any MIDI devices detected in the system 26## @end table 27## 28## @subsubheading MIDI Device creation and manipulation: 29## @table @asis 30## @item mididevice 31## Create a midi device 32## @item midimsg 33## Create a MIDI message or group of messages 34## @item midireceive 35## receive a MIDI message from a device 36## @item midisend 37## Send a MIDI message to a device 38## @end table 39## 40## @subsubheading MIDI Controller Interface Functions: 41## @table @asis 42## @item midiid 43## Identify a midi controller 44## @item midicontrols 45## Create a MIDI controller object 46## @item midireceive 47## Receive data from a MIDI controller object 48## @item midisend 49## Send data to a MIDI controller. 50## @end table 51## 52## @subsubheading Writing and reading basic MIDI files: 53## @table @asis 54## @item midifileinfo 55## read information about a MIDI file, including number of tracks, 56## comments etc. 57## @item midifileread 58## read a MIDI file into a midimsg array 59## @item midifilewrite 60## write a midimsg array to a MIDI file 61## @end table 62## 63## @subsubheading General usage: 64## 65## Normal usage would involve querying the devices that are available: 66## @example 67## mididevinfo 68## @end example 69## 70## Then selecting the device(s) to connect to, and creating a mididevice to perform read and write functionality: 71## @example 72## dev = mididevice(0); 73## @end example 74## 75## And then performing I/O on the device: 76## @example 77## msg = midireceive(dev) 78## @end example 79 80function audio() 81 help audio; 82endfunction 83 84