TouchOSC provides the following global functions.
function getVersion()
-- example
local t = getVersion()
print(table.unpack(t))
> 1 2 5 183 -- major minor patch build
Returns a list containing the application's version as major minor patch
    build number values.
function getMillis()
-- example
local n = getMillis()
print(n)
> 576970.847
Returns the number of milliseconds since application start.
function getDate()
-- example
local t = getDate()
print(table.unpack(t))
> 2023 10 31 32400 -- year month day tzd
Returns a list with the current local date's year month day tzd
    number values. tzd refers to the timezone differential in seconds.
function getTime()
-- example
local t = getTime()
print(table.unpack(t))
> 10 11 37 893 -- hour minute second millisecond
Returns a list with the current local time's hour minute second millisecond
    number values.
function hasAccelerometer()
-- example
local b = hasAccelerometer()
print(b)
> true
Returns true if the host device provides an accelerometer sensor, false otherwise.
function getAccelerometer()
-- example
local t = getAccelerometer()
print(table.unpack(t))
> -8.925 0.134 4.078 -- x y z
Returns a list of three number values that are sampled from the host device's accelerometer sensor. If no accelerometer sensor is available, the values will be all zero.
function hasGyroscope()
-- example
local b = hasGyroscope()
print(b)
> true
Returns true if the host device provides a gyroscope sensor, false otherwise.
function getGyroscope()
-- example
local t = getGyroscope()
print(table.unpack(t))
> -8.925 0.134 4.078 -- x y z
Returns a list of three number values that are sampled from the host device's gyroscope sensor. If no gyroscope sensor is available, the values will be all zero.
function getBatteryLevel()
-- example
local n = getBatteryLevel()
print(n)
> 0.84
Returns the current battery charge level as a number ranging from 0.0 to 1.0 on mobile
    devices, 1.0 otherwise.
function bytesToInt(number, number, number, number)
-- example
local i = bytesToInt(0x4D,0x01,0x00,0x00)
print(i)
> 333
Returns a number that is the 32-bit integer representation created from the four byte number parameter values given.
function bytesToFloat(number, number, number, number)
-- example
local f = bytesToFloat(0x00,0x00,0x99,0x42)
print(f)
> 76.5
Returns a number that is the 32-bit floating point representation created from the four byte number parameter values.
function vibrate()
-- example
vibrate()
On devices that support it, a short vibration will be triggered. Has no effect otherwise.
TouchOSC provides the following functions to send MIDI and OSC messages.
function sendMIDI(table [, table])
-- example
sendMIDI({ 176, 0, 102 })            -- control change
sendMIDI({ 0xF0, 0x00, 0x01, 0xF7 }) -- system exclusive
Send a MIDI message on one or multiple configured connections.
The first argument table is a list of byte values that make up the MIDI message.
Starting with version 1.2.1.171 the function will process byte data for multiple messages and continue
    until either the end of the list or an invalid MIDI message is encountered.
The optional second argument table is a list of boolean values that specify which connections to send
    the message on. If the argument is omitted, the default is to broadcast the message on all configured connections. If
    the list has fewer elements than the number of connections, the omitted elements default to false.
For more usage examples see the Sending MIDI Messages example.
function sendOSC(string [, ... [, table]])
-- example
sendOSC('/1/fader1', 0.5)
sendOSC('/3/xy1', 0.25, 0.75)
sendOSC('/hello', 'world')
Send an OSC message on one or multiple configured connections.
string is the path of the OSC message to be sent.
The optional argument values ... will be auto-converted to boolean, float or
    string OSC types and added to the OSC message as arguments.
Note that argument values are never auto-converted to integer OSC types as scripts do
    not treat floating point and integer numbers as separate types. Use the complex OSC
        message send function instead.
The optional last argument table is a list of boolean values that specify which connections to send the
    message on. If the argument is omitted, the default is to broadcast the message on all configured connections. If the
    list has fewer elements than the number of connections, the omitted elements default to false.
For more usage examples see the Sending OSC Messages example.
function sendOSC(table [, table])
-- example
sendOSC(
  {
    '/complex',
    {
      { tag = 'i', value = 42 },                   -- int
      { tag = 'f', value = 3.14159 },              -- float
      { tag = 's', value = 'Goodbye Cruel World' } -- string
    }
  }
)
Sends an OSC message on one or multiple configured connections.
The first argument table is a list that represents the OSC message to be sent, where the first element
    is the path string of the message, and the second element is a list of argument tables with tag and
    value keys for each argument:
{
    path,
    {
        { tag = 'argumentTypeTag', value = argumentValue },
        { tag = 'argumentTypeTag', value = argumentValue },
        { tag = 'argumentTypeTag', value = argumentValue },
        ...
    }
}
Each argument value will be converted to an OSC type according to the type tag
    provided:
| Tag | OSC Type | |
T | 
            Boolean true | |
F | 
            Boolean false | |
N | 
            Nil | |
I | 
            Infinitum | |
i | 
            int32 | |
h | 
            int64 | since 1.1.3.141 | 
f | 
            float32 | |
d | 
            double | since 1.1.3.141 | 
s | 
            string | |
S | 
            symbol | since 1.3.9.226 | 
c | 
            ASCII character | since 1.3.9.226 | 
r | 
            32 bit RGBA color | since 1.3.9.226 | 
m | 
            4 byte MIDI message | since 1.3.9.226 | 
b | 
            blob | 
If the tag key is omitted, the value will be auto-converted the same way as when sending simple OSC messages.
The T F N and I types do not need a value to be specified. 
The b OSC blob type expects the value to be a list of byte values making up the blob data.
The optional second argument table is a list of boolean values that specify which connections to send
    the message on. If the argument is omitted, the default is to broadcast the message on all configured connections. If
    the list has fewer elements than the number of connections, the omitted elements default to false.
For more usage examples see the Sending OSC Messages example.
function sendOSCBundle(table [, table])
-- example
sendOSCBundle(
  {
    { '/message1', { { tag = 'i', value = 1337 } } },
    { '/message2', { { tag = 'f', value = 2.71828 } } },
    { '/message3', { { tag = 's', value = 'Hello World' } } }
  }
)
Sends one or more OSC messages as a bundle on one or multiple configured connections.
The first argument table is a list of one or more OSC messages to be sent. The messages are
    in the same format as described in Complex OSC Messages above.
The optional second argument table is a list of boolean values that specify which connections to send
    the message on. If the argument is omitted, the default is to broadcast the message on all configured connections. If
    the list has fewer elements than the number of connections, the omitted elements default to false.
For more usage examples see the Sending OSC Messages example.
TouchOSC provides the following functions to convert Lua tables to and from JSON encoded strings. All JSON functions
    are provided inside the global table json.
function json.fromTable(table)
-- example
local t = { a = 123, b = 'hey', c = false, d = json.null }
local str = json.fromTable(t)
Convert a Lua table to a JSON encoded string. The special value json.null can be used to store a null
    value in the Lua table.
    The input table should either be a sequential list of values, which will be converted to the JSON array
    type, or a list of key/value pairs, which will be converted to the JSON object type.
function json.toTable(string)
-- example
local str = '{ "a":123, "b":"hey", "c":false, "d":null }'
local t = json.toTable(str)
Parse a JSON encoded string and return the result as a Lua table. The JSON null value will be written to
    the output table as the special value json.null.
We use cookies to deliver website content. By continuing without changing your preferences, you agree to our use of cookies.