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