Difference between revisions of "Lua Midi"

From GiderosMobile
m (Text replacement - "<source" to "<syntaxhighlight")
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
Line 10: Line 10:
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
 
require "luamidi"
 
require "luamidi"
</source>
+
</syntaxhighlight>
  
 
See '''[https://github.com/dwiel/luamidi/blob/master/src/luamidi.cpp luamidi syntax]''' for full syntax.
 
See '''[https://github.com/dwiel/luamidi/blob/master/src/luamidi.cpp luamidi syntax]''' for full syntax.
Line 23: Line 23:
 
local s, n, v, _t = pcall(luamidi.getMessage, 0) -- get message at first IN port
 
local s, n, v, _t = pcall(luamidi.getMessage, 0) -- get message at first IN port
 
if not status then return end
 
if not status then return end
</source>
+
</syntaxhighlight>
  
 
'''Example for sending a message'''
 
'''Example for sending a message'''
Line 33: Line 33:
 
luamidi.sendMessage(0, 144, 60, 127) -- send a maximum velocity (volume/strength) Note On middle C message to first OUT port
 
luamidi.sendMessage(0, 144, 60, 127) -- send a maximum velocity (volume/strength) Note On middle C message to first OUT port
 
luamidi.sendMessage(0, 144, 60, 0) -- send a Note Off middle C message to first OUT port
 
luamidi.sendMessage(0, 144, 60, 0) -- send a Note Off middle C message to first OUT port
</source>
+
</syntaxhighlight>
  
 
{|-
 
{|-

Latest revision as of 14:30, 13 July 2023

Supported platforms: Platform mac.pngPlatform pc.png
Available since: Gideros 2018.12

Description

Provides a simple interface for MIDI I/O.

To add Midi support to your application you call:

require "luamidi"

See luamidi syntax for full syntax.

Examples

Example for getting a message

local midiCount=luamidi.getinportcount()
if midiCount==0 then return end -- no midi device
_midiDeviceName=luamidi.enumerateinports()[0] -- the name of the device at first IN port

local s, n, v, _t = pcall(luamidi.getMessage, 0) -- get message at first IN port
if not status then return end

Example for sending a message

local midiCount=luamidi.getoutportcount()
if midiCount==0 then return end -- no midi device
_midiDeviceName=luamidi.enumerateoutports()[0] -- the name of the device at first OUT port

luamidi.sendMessage(0, 144, 60, 127) -- send a maximum velocity (volume/strength) Note On middle C message to first OUT port
luamidi.sendMessage(0, 144, 60, 0) -- send a Note Off middle C message to first OUT port

Methods

luamidi:base0 sets that when sending messages the channels are in the range 0-15
luamidi:base1 sets that when sending messages the channels are in the range 1-16
luamidi:enumerateinports gets a table of Midi IN port names
luamidi:enumerateoutports gets a table of Midi OUT port names
luamidi:getInPortName gets the Midi IN port name
luamidi:getMessage gets the next incoming message from the queue of the chosen IN port
luamidi:getOutPortName gets the Midi OUT port name
luamidi:getinportcount gets the number of Midi IN ports
luamidi:getoutportcount gets the number of Midi OUT ports
luamidi:noteOff sends a Note Off message to the chosen OUT port
luamidi:noteOn sends a Note On message to the chosen OUT port
luamidi:openin opens the Midi IN port
luamidi:openout opens the Midi OUT port
luamidi:sendMessage sends a message to the chosen OUT port
luamidi:setQueueSizeLimit sets the Midi queue size limit

Events

Constants