MeTA:
Filter:
MeTA/Classes (extension) | performance framework

MeTA
ExtensionExtension

A performance framework

Description

MeTA is part of the MeTA performance framework. It facilitates the integration of multiple software instruments ("generator"), external controllers ("controller") and their mapping ("mapping"). It also provides places for commonly used configurations ("config") and helpers.

MeTA is designed with the Ndef environment in mind, though it should be possible to use it with other paradigms as well.

To get started with MeTA, use the MeTA-install.scd script which will copy a barebone MeTA filestructure to a folder of your choice. Please refer to the README.md file for details.

MeTA was developed at the 3DMIN project. http://3dmin.org

Class Methods

.new

Create new MeTA object.

Arguments:

path

the path to the structured MeTA directory

server

the Server used for playing.

Instance Methods

.guiWarnings

if true, display GUI warnings, Otherwise supress them.

Most of the below methods are intended to provide detailed information on the setup's configuration.

Paths

.topDir

the path to the structured MeTA directory

.fulldirnames

Returns:

array of absolute paths to scripts.

.dirnames

Returns:

array of paths to scripts relative to topDir.

.resourcesDir

Returns:

path to resources relative to topDir.

.samplesDir

Returns:

path to samples directory relative to topDir.

.sampleFormats

list of sample formats in the form [".wav", ".aiff"] (lower-case letters only).

Important Objects

.server

the Server used for playing sound.

The Dictionaries

These dictionaries offer spaces in which one can sort functionality depending on its meaning within the performance setup. Their use and contents are (apart from gens and aux) solely in the hand of the user. It proofed useful to keep e.g. generators apart from effect since it makes it easy to switch on/off all effects at once, or display them in a separate window.

.config

dictionary for configurations. Examples are network configuration and server configuration as well as user-specific configurations. This dictionary is intended for data only, additional functionality (i.e. helper functions to e.g. switch between presets) should go to utils.

.utils

dictionary for utility functions and their potential states. Examples are e.g. functions to switch between presets or instrument setups.

.gens

dictionary for (sound-)generators. For now, Ndefs are explicitely supported, other formats such as Tdef or Pdef may work as well.

.helpers

dictionary for helpers, i.e. server-side Ndefs that are not making sound by themselves (like machine listening devices or VCAs that are shared by multiple generators and should therefore be permanently executed).

.samples

dictionary holding sample buffers loaded with loadSamples

.maps

dictionary holding mapping functions

.efx

dictionary holding non-AUX effects.

.aux

dictionary for AUX-effects loaded via loadAux. For now, Ndefs are explicitely supported.

.ctls

dictionary for control elements like MKtl's (from the Modality toolkit) or custom GUIs.

.views

dictionary for views, e.g. GUI displays.

File handling

.filePaths

Arguments:

identifier

The category (determined by the folder it is located in). Should be one of

util
a utility
config
a configuration file
controller
an interface to a controller
efx
effects
engine
(sound) engine definition
mapping
mapping directive
resource
resource such as (audio) samples, images, or other data
helper
helpers, tools, etc. for sounds and mapping (e.g. Ndef to compute Amplitudes etc.)
docs

Array of document names without extension. Deliberately dis-allowing wildcards (it just got very messy and its usage error-prone).

ext

The extension of the documents (e.g. scd).

warn

Boolean, warn for non-existent Document.

Returns:

sorted array of absolute paths

.openFiles

opens the files for editing.

Arguments:

identifier

The category (determined by the folder it is located in). Should be one of

util
a utility
config
a configuration file
controller
an interface to a controller
efx
effects
engine
(sound) engine definition
mapping
mapping directive
resource
resource such as (audio) samples, images, or other data
helper
helpers, tools, etc. for sounds and mapping (e.g. Ndef to compute Amplitudes etc.)
docs

Array of document names without extension. Deliberately dis-allowing wildcards.

ext

The extension of the documents to be opened

warn

Boolean, warn for non-existent document.

.loadFiles

load files. See also specific methods loadAux and loadGen.

Arguments:

identifier

The category (determined by the folder it is located in). Should be one of

util
a utility
config
a configuration file
controller
an interface to a controller
efx
effects
engine
(sound) engine definition
mapping
mapping directive
resource
resource such as (audio) samples, images, or other data
helper
helpers, tools, etc. for sounds and mapping (e.g. Ndef to compute Amplitudes etc.)
docs

Array of Document names without extension (deliberately fixed to ".scd").

warn

Boolean, warn for non-existent Document.

Returns:

an array of the return values of the file loading routine (i.e. the return value of the last command in the file).

.loadAux

Load an aux-effect from a file in efx/aux. A ProxySubmix is created automatically and all Gens available through getNdefGens are connected to it.

Arguments:

name

filename without extension (deliberately fixed to ".scd").

numChans

number of channels of the aux-effect

defaultInGain

initial gain for all connected gens.

Returns:

the MeTA object.

.loadGen

Load a (sound)generator from a file in the generators directory.

Arguments:

name

filename without extension (fixed to ".scd").

index

a unique index that may be used for addressing it. This is particularly useful to automatically map functionality to controllers like faderboxes.

Returns:

the return value of the file loading routine (i.e. the return value of the last command in the file).

Helpers

.loadSamples

load a subtree of the sample directory to samples.

Arguments:

relPath

the path to the subtree relative to sampleDir

forceReload

if true, force reloading of samples.

.selectGenerator

selects a (sound) generator based on its key by evaluating

Arguments:

genKey

the generator's key as given in loadGen

.getNdefGens

Returns:

all Ndef's known to the system as generator (loaded via loadGen).

Informing

.postServerOptions

posts currenly active server options.

.warnWin

creates a warning window

Arguments:

string

content of the window

title

window title

.loadedFiles

Returns:

a dictionary of all loaded files.

Examples