BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 /* this file was generated from make bsebasics.idl */ 00002 // bseprocidl: type BseREADWRITE excluded from generation 00003 // bseprocidl: type BseSTORAGE excluded from generation 00004 // bseprocidl: type BseSTANDARD excluded from generation 00005 // bseprocidl: type BseStandardRdonly excluded from generation 00006 // bseprocidl: type BseGUI excluded from generation 00007 // bseprocidl: type BseGuiRdonly excluded from generation 00008 // bseprocidl: type BseGuiReadable excluded from generation 00009 // bseprocidl: type BseSkipDefault excluded from generation 00010 // bseprocidl: type BseSkipUndo excluded from generation 00011 // bseprocidl: type BseDEFAULT excluded from generation 00012 // bseprocidl: type BseMAXINT excluded from generation 00013 // bseprocidl: type BseMININT excluded from generation 00014 // bseprocidl: type BseMAXNUM excluded from generation 00015 // bseprocidl: type BseMINNUM excluded from generation 00016 // bseprocidl: type BseMINDB excluded from generation 00017 // bseprocidl: type BseIntSeq excluded from generation 00018 // bseprocidl: type BseTypeSeq excluded from generation 00019 // bseprocidl: type BseStringSeq excluded from generation 00020 // bseprocidl: type BseFloatSeq excluded from generation 00021 // bseprocidl: type BseMusicalTuningType excluded from generation 00022 // bseprocidl: type BseMidiSignalType excluded from generation 00023 // bseprocidl: type BseMidiControlType excluded from generation 00024 // bseprocidl: type BseMidiChannelEventType excluded from generation 00025 // bseprocidl: type BseMidiChannelEvent excluded from generation 00026 // bseprocidl: type BseNoteSeq excluded from generation 00027 // bseprocidl: type BseItemSeq excluded from generation 00028 // bseprocidl: type BsePropertyCandidates excluded from generation 00029 // bseprocidl: type BsePartNote excluded from generation 00030 // bseprocidl: type BsePartNoteSeq excluded from generation 00031 // bseprocidl: type BsePartControl excluded from generation 00032 // bseprocidl: type BsePartControlSeq excluded from generation 00033 // bseprocidl: type BseNoteDescription excluded from generation 00034 // bseprocidl: type BseNoteSequence excluded from generation 00035 // bseprocidl: type BsePixelSeq excluded from generation 00036 // bseprocidl: type BseIcon excluded from generation 00037 // bseprocidl: type BseCategory excluded from generation 00038 // bseprocidl: type BseCategorySeq excluded from generation 00039 // bseprocidl: type BseDot excluded from generation 00040 // bseprocidl: type BseDotSeq excluded from generation 00041 // bseprocidl: type BsePartLink excluded from generation 00042 // bseprocidl: type BsePartLinkSeq excluded from generation 00043 // bseprocidl: type BseTrackPart excluded from generation 00044 // bseprocidl: type BseTrackPartSeq excluded from generation 00045 // bseprocidl: type BseSongTiming excluded from generation 00046 // bseprocidl: type BseSampleFileInfo excluded from generation 00047 // bseprocidl: type BseDefaultAuthor excluded from generation 00048 // bseprocidl: type BseDefaultLicense excluded from generation 00049 // bseprocidl: type BseUserDataPath excluded from generation 00050 // bseprocidl: type BseDefaultSamplePath excluded from generation 00051 // bseprocidl: type BseDefaultEffectsPath excluded from generation 00052 // bseprocidl: type BseDefaultInstrumentsPath excluded from generation 00053 // bseprocidl: type BseDefaultScriptsPath excluded from generation 00054 // bseprocidl: type BseDefaultPluginsPath excluded from generation 00055 // bseprocidl: type BseGConfig excluded from generation 00056 // bseprocidl: type BseCxxBase excluded from generation 00057 // bseprocidl: type BseEffect excluded from generation 00058 // bseprocidl: type BseProbeFeatures excluded from generation 00059 // bseprocidl: type BseProbe excluded from generation 00060 // bseprocidl: type BseProbeSeq excluded from generation 00061 // bseprocidl: type BseProbeRequest excluded from generation 00062 // bseprocidl: type BseProbeRequestSeq excluded from generation 00063 // bseprocidl: type BseSourceRequestProbes excluded from generation 00064 // bseprocidl: type BseSourceMassRequest excluded from generation 00065 // bseprocidl: type BseSourceGetTickStamp excluded from generation 00066 // bseprocidl: type BseSourceGetMixFreq excluded from generation 00067 namespace Bse { 00068 enum BiquadFilterType { 00069 BIQUAD_FILTER_RESONANT_LOWPASS = Enum (1, "lowpass"), 00070 BIQUAD_FILTER_RESONANT_HIGHPASS = Enum (2, "highpass"), 00071 }; 00072 00073 enum RegistrationType { 00074 REGISTER_PLUGIN = Enum (1, "plugin"), 00075 REGISTER_SCRIPT = Enum (2, "script"), 00076 REGISTER_DONE = Enum (256, "done"), 00077 }; 00078 00079 enum ErrorType { 00080 ERROR_NONE = Enum (0, "none"), 00081 ERROR_INTERNAL = Enum (1, "internal"), 00082 ERROR_UNKNOWN = Enum (2, "unknown"), 00083 ERROR_IO = Enum (3, "io"), 00084 ERROR_PERMS = Enum (4, "perms"), 00085 ERROR_FILE_BUSY = Enum (5, "file-busy"), 00086 ERROR_FILE_EXISTS = Enum (6, "file-exists"), 00087 ERROR_FILE_EOF = Enum (7, "file-eof"), 00088 ERROR_FILE_EMPTY = Enum (8, "file-empty"), 00089 ERROR_FILE_NOT_FOUND = Enum (9, "file-not-found"), 00090 ERROR_FILE_IS_DIR = Enum (10, "file-is-dir"), 00091 ERROR_FILE_OPEN_FAILED = Enum (11, "file-open-failed"), 00092 ERROR_FILE_SEEK_FAILED = Enum (12, "file-seek-failed"), 00093 ERROR_FILE_READ_FAILED = Enum (13, "file-read-failed"), 00094 ERROR_FILE_WRITE_FAILED = Enum (14, "file-write-failed"), 00095 ERROR_MANY_FILES = Enum (15, "many-files"), 00096 ERROR_NO_FILES = Enum (16, "no-files"), 00097 ERROR_NO_SPACE = Enum (17, "no-space"), 00098 ERROR_NO_MEMORY = Enum (18, "no-memory"), 00099 ERROR_NO_HEADER = Enum (19, "no-header"), 00100 ERROR_NO_SEEK_INFO = Enum (20, "no-seek-info"), 00101 ERROR_NO_DATA = Enum (21, "no-data"), 00102 ERROR_DATA_CORRUPT = Enum (22, "data-corrupt"), 00103 ERROR_WRONG_N_CHANNELS = Enum (23, "wrong-n-channels"), 00104 ERROR_FORMAT_INVALID = Enum (24, "format-invalid"), 00105 ERROR_FORMAT_UNKNOWN = Enum (25, "format-unknown"), 00106 ERROR_DATA_UNMATCHED = Enum (26, "data-unmatched"), 00107 ERROR_TEMP = Enum (27, "temp"), 00108 ERROR_WAVE_NOT_FOUND = Enum (28, "wave-not-found"), 00109 ERROR_CODEC_FAILURE = Enum (29, "codec-failure"), 00110 ERROR_UNIMPLEMENTED = Enum (30, "unimplemented"), 00111 ERROR_INVALID_PROPERTY = Enum (31, "invalid-property"), 00112 ERROR_INVALID_MIDI_CONTROL = Enum (32, "invalid-midi-control"), 00113 ERROR_PARSE_ERROR = Enum (33, "parse-error"), 00114 ERROR_SPAWN = Enum (34, "spawn"), 00115 ERROR_DEVICE_NOT_AVAILABLE = Enum (35, "device-not-available"), 00116 ERROR_DEVICE_ASYNC = Enum (36, "device-async"), 00117 ERROR_DEVICE_BUSY = Enum (37, "device-busy"), 00118 ERROR_DEVICE_FORMAT = Enum (38, "device-format"), 00119 ERROR_DEVICE_BUFFER = Enum (39, "device-buffer"), 00120 ERROR_DEVICE_LATENCY = Enum (40, "device-latency"), 00121 ERROR_DEVICE_CHANNELS = Enum (41, "device-channels"), 00122 ERROR_DEVICE_FREQUENCY = Enum (42, "device-frequency"), 00123 ERROR_DEVICES_MISMATCH = Enum (43, "devices-mismatch"), 00124 ERROR_SOURCE_NO_SUCH_MODULE = Enum (44, "source-no-such-module"), 00125 ERROR_SOURCE_NO_SUCH_ICHANNEL = Enum (45, "source-no-such-ichannel"), 00126 ERROR_SOURCE_NO_SUCH_OCHANNEL = Enum (46, "source-no-such-ochannel"), 00127 ERROR_SOURCE_NO_SUCH_CONNECTION = Enum (47, "source-no-such-connection"), 00128 ERROR_SOURCE_PRIVATE_ICHANNEL = Enum (48, "source-private-ichannel"), 00129 ERROR_SOURCE_ICHANNEL_IN_USE = Enum (49, "source-ichannel-in-use"), 00130 ERROR_SOURCE_CHANNELS_CONNECTED = Enum (50, "source-channels-connected"), 00131 ERROR_SOURCE_CONNECTION_INVALID = Enum (51, "source-connection-invalid"), 00132 ERROR_SOURCE_PARENT_MISMATCH = Enum (52, "source-parent-mismatch"), 00133 ERROR_SOURCE_BAD_LOOPBACK = Enum (53, "source-bad-loopback"), 00134 ERROR_SOURCE_BUSY = Enum (54, "source-busy"), 00135 ERROR_SOURCE_TYPE_INVALID = Enum (55, "source-type-invalid"), 00136 ERROR_PROC_NOT_FOUND = Enum (56, "proc-not-found"), 00137 ERROR_PROC_BUSY = Enum (57, "proc-busy"), 00138 ERROR_PROC_PARAM_INVAL = Enum (58, "proc-param-inval"), 00139 ERROR_PROC_EXECUTION = Enum (59, "proc-execution"), 00140 ERROR_PROC_ABORT = Enum (60, "proc-abort"), 00141 ERROR_NO_ENTRY = Enum (61, "no-entry"), 00142 ERROR_NO_EVENT = Enum (62, "no-event"), 00143 ERROR_NO_TARGET = Enum (63, "no-target"), 00144 ERROR_NOT_OWNER = Enum (64, "not-owner"), 00145 ERROR_INVALID_OFFSET = Enum (65, "invalid-offset"), 00146 ERROR_INVALID_DURATION = Enum (66, "invalid-duration"), 00147 ERROR_INVALID_OVERLAP = Enum (67, "invalid-overlap"), 00148 }; 00149 00150 enum ProjectState { 00151 PROJECT_INACTIVE = Enum (0, "inactive"), 00152 PROJECT_ACTIVE = Enum (1, "active"), 00153 PROJECT_PLAYING = Enum (2, "playing"), 00154 }; 00155 00156 enum StandardOscWaveType { 00157 STANDARD_OSC_SINE = Enum (1, "Sine"), 00158 STANDARD_OSC_TRIANGLE = Enum (2, "Triangle"), 00159 STANDARD_OSC_SAW_RISE = Enum (3, "Rising Saw"), 00160 STANDARD_OSC_SAW_FALL = Enum (4, "Falling Saw"), 00161 STANDARD_OSC_PEAK_RISE = Enum (5, "Rising Peak"), 00162 STANDARD_OSC_PEAK_FALL = Enum (6, "Falling Peak"), 00163 STANDARD_OSC_MOOG_SAW = Enum (7, "Moog Saw"), 00164 STANDARD_OSC_SQUARE = Enum (8, "Square"), 00165 STANDARD_OSC_PULSE = Enum (9, "Pulse"), 00166 }; 00167 00168 interface Bus; 00169 interface CSynth; 00170 interface DataPocket; 00171 interface EditableSample; 00172 interface Janitor; 00173 interface MidiNotifier; 00174 interface MidiSynth; 00175 interface Part; 00176 interface Project; 00177 interface Song; 00178 interface Source; 00179 interface Track; 00180 interface Wave; 00181 interface WaveRepo; 00182 interface Item { 00183 void add_parasite (String path, Rec parasite) { 00184 Info help = "Add a new parasite to an item."; 00185 In path = ("Path", "", ":flagstodo"); 00186 In parasite = ("Parasite", "", ":flagstodo"); 00187 } 00188 Bool check_is_a (String type_name) { 00189 Info help = "Check whether an item has a certain type."; 00190 In type_name = ("Type Name", "", ":flagstodo"); 00191 Out is_a = ("is-a", "", FALSE, ":flagstodo"); 00192 } 00193 void clear_undo () { 00194 Info help = "Call the clear-undo function of the project corresponding to this item if any."; 00195 } 00196 Item common_ancestor (Item item2) { 00197 Info help = "Retrieve the common ancestor of two items if there's any."; 00198 In item2 = ("Item2", "Second item", ":flagstodo"); 00199 Out ancestor = ("ancestor", "Common ancestor of both items", ":flagstodo"); 00200 } 00201 Bool editable_property (String property_name) { 00202 Info help = "Test whether a property is editable according to object state and property options."; 00203 In property_name = ("property-name", "Item property name", ":flagstodo"); 00204 Out editable = ("editable", "", FALSE, ":flagstodo"); 00205 } 00206 Icon get_icon () { 00207 Info help = "Get the current icon of an item."; 00208 Out icon = ("icon", "", ":flagstodo"); 00209 } 00210 String get_name () { 00211 Info help = "Retrieve an item's name."; 00212 Out name = ("Name", "", ":flagstodo"); 00213 } 00214 String get_name_or_type () { 00215 Info help = "Retrieve an item's name or type if it has no name."; 00216 Out name = ("Name", "", ":flagstodo"); 00217 } 00218 Rec get_parasite (String path) { 00219 Info help = "Retrieve a parasite from an item."; 00220 In path = ("Path", "", ":flagstodo"); 00221 Out parasite = ("Parasite", "", ":flagstodo"); 00222 } 00223 Item get_parent () { 00224 Info help = "Retrieve an item's parent."; 00225 Out parent = ("Parent", "", ":flagstodo"); 00226 } 00227 Item get_project () { 00228 Info help = "Retrieve an item's project."; 00229 Out project = ("Project", "", ":flagstodo"); 00230 } 00231 PropertyCandidates get_property_candidates (String property_name) { 00232 Info help = "Retrieve tentative values for an item or item sequence property."; 00233 In property_name = ("property-name", "Item property name", ":flagstodo"); 00234 Out candidates = ("Candidates", "", ":flagstodo"); 00235 } 00236 Int get_seqid () { 00237 Info help = "Retrieve an item's sequential ID. The sequential ID depends on the item's type an it's position inbetween siblings of the same type within it's immediate container."; 00238 Out seq_id = ("Sequential ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00239 } 00240 String get_type () { 00241 Info help = "Retrieve an item's type name."; 00242 Out string = ("string", "", ":flagstodo"); 00243 } 00244 String get_type_authors () { 00245 Info help = "Retrieve authors of an item's type implementation."; 00246 Out string = ("string", "", ":flagstodo"); 00247 } 00248 String get_type_blurb () { 00249 Info help = "Retrieve an item's type description."; 00250 Out string = ("string", "", ":flagstodo"); 00251 } 00252 String get_type_license () { 00253 Info help = "Retrieve the license for an item's type implementation."; 00254 Out string = ("string", "", ":flagstodo"); 00255 } 00256 String get_type_name () { 00257 Info help = "Retrieve an item's type name."; 00258 Out string = ("string", "", ":flagstodo"); 00259 } 00260 String get_uname_path () { 00261 Info help = "Retrieve the project relative uname path for this item."; 00262 Out uname_path = ("uname-path", "", ":flagstodo"); 00263 } 00264 void group_undo (String name) { 00265 Info help = "Request multiple modifying actions on an item to be grouped together as single undo operation."; 00266 In name = ("name", "A name for the undo group to be created", ":flagstodo"); 00267 } 00268 Bool internal () { 00269 Info help = "Check whether an item is internal, i.e. owned by another non-internal item."; 00270 Out internal = ("Internal", "", FALSE, ":flagstodo"); 00271 } 00272 StringSeq list_parasites (String path) { 00273 Info help = "List parasites within a parasite path segment."; 00274 In path = ("Path", "", ":flagstodo"); 00275 Out paths = ("Parasite Paths", "", ":flagstodo"); 00276 } 00277 void redo () { 00278 Info help = "Call the redo function of the project corresponding to this item if any."; 00279 } 00280 Int redo_depth () { 00281 Info help = "Call the redo-depth function of the project corresponding to this item if any."; 00282 Out redo_depth = ("redo-depth", "Number of times redo can be called", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00283 } 00284 void set_name (String name) { 00285 Info help = "Set an item's name."; 00286 In name = ("Name", "", ":flagstodo"); 00287 } 00288 void set_parasite (String path, Rec parasite) { 00289 Info help = "Set or change a parasite on an item."; 00290 In path = ("Path", "", ":flagstodo"); 00291 In parasite = ("Parasite", "", ":flagstodo"); 00292 } 00293 void undo () { 00294 Info help = "Call the undo function of the project corresponding to this item if any."; 00295 } 00296 Int undo_depth () { 00297 Info help = "Call the undo-depth function of the project corresponding to this item if any."; 00298 Out undo_depth = ("undo-depth", "Number of times undo can be called", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00299 } 00300 void ungroup_undo () { 00301 Info help = "Ends the undo grouping opened up by a previous group-undo() call."; 00302 } 00303 void unuse () { 00304 Info help = "Decrement use count for when an item is not needed anymore."; 00305 } 00306 Item use () { 00307 Info help = "Increment use count to keep an item alive."; 00308 Out used_item = ("Item", "", ":flagstodo"); 00309 } 00310 signal parasites_added (String a); 00311 signal parasite_changed (String a); 00312 property Int seqid = ("Sequential ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00313 }; 00314 00315 interface PcmWriter : Item { 00316 }; 00317 00318 interface Source : Item { 00319 void clear_inputs () { 00320 Info help = "Disconnect all module inputs."; 00321 } 00322 void clear_outputs () { 00323 Info help = "Disconnect all module outputs."; 00324 } 00325 Int get_automation_channel (String property_name) { 00326 Info help = "Get MIDI channel from an automation property."; 00327 In property_name = ("property-name", "Item property name", ":flagstodo"); 00328 Out midi_channel = ("midi-channel", "", 0, 0, 99, 1, ":flagstodo"); 00329 } 00330 MidiControlType get_automation_control (String property_name) { 00331 Info help = "Get control type from an automation property."; 00332 In property_name = ("property-name", "Item property name", ":flagstodo"); 00333 Out control_type = ("control-type", "", ":flagstodo"); 00334 } 00335 Bool has_output (Int ochannel) { 00336 Info help = "Check whether a module's output channel is connected."; 00337 In ochannel = ("ochannel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00338 Out has_outputs = ("has-outputs", "", FALSE, ":flagstodo"); 00339 } 00340 Bool has_outputs () { 00341 Info help = "Check whether a module has output channel connections."; 00342 Out has_outputs = ("Has Outputs", "", FALSE, ":flagstodo"); 00343 } 00344 String ichannel_blurb (Int input_channel) { 00345 Info help = "Get input channel description."; 00346 In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00347 Out channel_blurb = ("Channel Blurb", "", ":flagstodo"); 00348 } 00349 Int ichannel_get_n_joints (Int input_channel) { 00350 Info help = "Retrieve the number of inputs connected to an input channel."; 00351 In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00352 Out n_joints = ("Number of Connections", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00353 } 00354 Int ichannel_get_ochannel (Int input_channel, Int input_joint) { 00355 Info help = "Retrieve output channel of the module connected to a specific joint of an input channel."; 00356 In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00357 In input_joint = ("Input Joint", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00358 Out ochannel = ("Output Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00359 } 00360 Source ichannel_get_osource (Int input_channel, Int input_joint) { 00361 Info help = "Retrieve output module connected to a specific joint of an input channel"; 00362 In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00363 In input_joint = ("Input Joint", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00364 Out osource = ("Output Source", "", ":flagstodo"); 00365 } 00366 String ichannel_ident (Int input_channel) { 00367 Info help = "Get canonical input channel name."; 00368 In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00369 Out channel_ident = ("Channel Name", "", ":flagstodo"); 00370 } 00371 String ichannel_label (Int input_channel) { 00372 Info help = "Get input channel name."; 00373 In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00374 Out channel_label = ("Channel Name", "", ":flagstodo"); 00375 } 00376 Bool is_joint_ichannel (String input_channel) { 00377 Info help = "Check if an input channel is a joint (multi-connect) channel."; 00378 In input_channel = ("Input Channel", "", ":flagstodo"); 00379 Out is_jchannel = ("Is Joint Channel", "", FALSE, ":flagstodo"); 00380 } 00381 Bool is_joint_ichannel_by_id (Int input_channel) { 00382 Info help = "Check if an input channel is a joint (multi-connect) channel."; 00383 In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00384 Out is_jchannel = ("Is Joint Channel", "", FALSE, ":flagstodo"); 00385 } 00386 Bool is_prepared () { 00387 Info help = "Check whether a source is prepared for synthesis processing."; 00388 Out is_prepared = ("is-prepared", "", FALSE, ":flagstodo"); 00389 } 00390 Int n_ichannels () { 00391 Info help = "Get the number of input channels of a module."; 00392 Out n_channels = ("Number of Channels", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00393 } 00394 Int n_ochannels () { 00395 Info help = "Get the number of output channels of a module."; 00396 Out n_channels = ("Number of Channels", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00397 } 00398 String ochannel_blurb (Int output_channel) { 00399 Info help = "Get output channel description."; 00400 In output_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00401 Out channel_blurb = ("Channel Blurb", "", ":flagstodo"); 00402 } 00403 String ochannel_ident (Int output_channel) { 00404 Info help = "Get canonical output channel name."; 00405 In output_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00406 Out channel_ident = ("Channel Name", "", ":flagstodo"); 00407 } 00408 String ochannel_label (Int output_channel) { 00409 Info help = "Get output channel name."; 00410 In output_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00411 Out channel_label = ("Channel Name", "", ":flagstodo"); 00412 } 00413 ErrorType set_automation (String property_name, Int midi_channel, MidiControlType control_type) { 00414 Info help = "Setup automation parameters for a property."; 00415 In property_name = ("property-name", "Item property name", ":flagstodo"); 00416 In midi_channel = ("MIDI Channel", "The MIDI Channel from which automation events should be received, 0 designates the default MIDI channel", 0, 0, 99, 1, ":flagstodo"); 00417 In control_type = ("Control Type", "The type of control events used for automation", ":flagstodo"); 00418 Out error = ("Error", "", ":flagstodo"); 00419 } 00420 ErrorType set_input (String input_channel, Source omodule, String output_channel) { 00421 Info help = "Connect a module input to another module's output."; 00422 In input_channel = ("Input Channel", "", ":flagstodo"); 00423 In omodule = ("Output Module", "", ":flagstodo"); 00424 In output_channel = ("Output Channel", "", ":flagstodo"); 00425 Out error = ("Error", "", ":flagstodo"); 00426 } 00427 ErrorType set_input_by_id (Int input_channel, Source omodule, Int output_channel) { 00428 Info help = "Connect a module input to another module's output."; 00429 In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00430 In omodule = ("Output Module", "", ":flagstodo"); 00431 In output_channel = ("Output Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00432 Out error = ("Error", "", ":flagstodo"); 00433 } 00434 void set_pos (Real x_pos, Real y_pos) { 00435 Info help = "Set the x and y position of a module. In contrast to setting the position through ordinary object property setters, this function will not update the module position if the passed in arguments are sufficiently equal to the values already set on the object. As such, it does not record an extra undo step for setting properties to values they already have and if necessary turns setting of x and y positions into an atomic undo operation."; 00436 In x_pos = ("X Position", "", ":flagstodo"); 00437 In y_pos = ("Y Position", "", ":flagstodo"); 00438 } 00439 ErrorType unset_input (String input_channel, Source omodule, String output_channel) { 00440 Info help = "Disconnect a module input."; 00441 In input_channel = ("Input Channel", "", ":flagstodo"); 00442 In omodule = ("Output Module", "", ":flagstodo"); 00443 In output_channel = ("Output Channel", "", ":flagstodo"); 00444 Out error = ("Error", "", ":flagstodo"); 00445 } 00446 ErrorType unset_input_by_id (Int input_channel, Source omodule, Int output_channel) { 00447 Info help = "Disconnect a module input."; 00448 In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00449 In omodule = ("Output Module", "", ":flagstodo"); 00450 In output_channel = ("Output Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00451 Out error = ("Error", "", ":flagstodo"); 00452 } 00453 signal probes (ProbeSeq a); 00454 signal io_changed (); 00455 property Real pos_x = ("Position X", "", ":flagstodo"); 00456 property Real pos_y = ("Position Y", "", ":flagstodo"); 00457 }; 00458 00459 interface Snooper : Source { 00460 property Int context_id = ("Context", "If the snooper module is created multiple times, this is the context id, which is used to actually snoop data.", 0, 0, 65535, 1, ":flagstodo"); 00461 }; 00462 00463 interface Constant : Source { 00464 property Real value_1 = ("Value [float]", "Constant signal value", ":flagstodo"); 00465 property Real frequency_1 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo"); 00466 property Int note_1 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo"); 00467 property Real value_2 = ("Value [float]", "Constant signal value", ":flagstodo"); 00468 property Real frequency_2 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo"); 00469 property Int note_2 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo"); 00470 property Real value_3 = ("Value [float]", "Constant signal value", ":flagstodo"); 00471 property Real frequency_3 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo"); 00472 property Int note_3 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo"); 00473 property Real value_4 = ("Value [float]", "Constant signal value", ":flagstodo"); 00474 property Real frequency_4 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo"); 00475 property Int note_4 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo"); 00476 }; 00477 00478 interface Container : Source { 00479 Item get_item (String item_type, Int seq_id) { 00480 Info help = "Retrieve a containers immediate child from it's sequential id."; 00481 In item_type = ("item-type", "Type of the item to retrieve", ":flagstodo"); 00482 In seq_id = ("seq-id", "Sequential ID", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00483 Out item = ("item", "The item with seqid as requested", ":flagstodo"); 00484 } 00485 ItemSeq list_children () { 00486 Info help = "Retrieve all immediate children of a container"; 00487 Out item_list = ("item-list", "", ":flagstodo"); 00488 } 00489 Item lookup_item (String uname) { 00490 Info help = "Find an immediate child of a container from its uname (the uname is the name of the item, unique between all immediate children of a container)."; 00491 In uname = ("UName", "Unique item name", ":flagstodo"); 00492 Out item = ("Item", "The item named by uname", ":flagstodo"); 00493 } 00494 signal item_added (Item a); 00495 signal item_remove (Item a, Int b); 00496 }; 00497 00498 interface Super : Container { 00499 property String author = ("Author", "Person changing or creating this object", ":flagstodo"); 00500 property String license = ("License", "Copyright license applying to this object", ":flagstodo"); 00501 property String copyright = ("copyright", "", ":flagstodo"); 00502 property Num creation_time = ("Creation Time", "", ":flagstodo"); 00503 property Num modification_time = ("Last modification time", "", ":flagstodo"); 00504 }; 00505 00506 interface WaveRepo : Super { 00507 ErrorType load_file (String file_name) { 00508 Info help = "Load wave from file"; 00509 In file_name = ("File Name", "The file to import waves from", ":flagstodo"); 00510 Out error = ("Error", "", ":flagstodo"); 00511 } 00512 void remove_wave (Wave wave) { 00513 Info help = "Remove a wave from repository"; 00514 In wave = ("Wave", "", ":flagstodo"); 00515 } 00516 }; 00517 00518 interface SNet : Super { 00519 ErrorType can_create_source (String module_type) { 00520 Info help = "Check whether inserting a new module into a synthesis network is possible"; 00521 In module_type = ("Module Type", "", ":flagstodo"); 00522 Out error = ("Error", "", ":flagstodo"); 00523 } 00524 Source create_source (String module_type) { 00525 Info help = "Insert a new module into a synthesis network"; 00526 In module_type = ("Module Type", "", ":flagstodo"); 00527 Out module = ("New Module", "", ":flagstodo"); 00528 } 00529 ErrorType remove_source (Source module) { 00530 Info help = "Remove an existing module from its synthesis network"; 00531 In module = ("Module", "", ":flagstodo"); 00532 Out error = ("Error", "", ":flagstodo"); 00533 } 00534 Bool supports_user_synths () { 00535 Info help = "Check whether users may edit synthesis modules of this network"; 00536 Out user_synth = ("User Synth", "", FALSE, ":flagstodo"); 00537 } 00538 signal port_unregistered (); 00539 property Bool auto_activate = ("Auto Activate", "Automatic activation only needs to be enabled for synthesis networks that don't use virtual ports for their input and output", FALSE, ":flagstodo"); 00540 }; 00541 00542 interface MidiSynth : SNet { 00543 property Int midi_channel = ("MIDI Channel", "", 1, 1, 99, 1, ":flagstodo"); 00544 property Int n_voices = ("Max Voices", "Maximum number of voices for simultaneous playback", 16, 1, 256, 1, ":flagstodo"); 00545 property CSynth snet = ("Synthesizer", "Synthesis network to be used as MIDI instrument", ":flagstodo"); 00546 property CSynth pnet = ("Postprocessor", "Synthesis network to be used as postprocessor", ":flagstodo"); 00547 property Real volume_f = ("Master [float]", "", ":flagstodo"); 00548 property Real volume_dB = ("Master [dB]", "", ":flagstodo"); 00549 property Int volume_perc = ("Master [%]", "", 100, 0, 1584, 1, ":flagstodo"); 00550 property Bool auto_activate = ("auto-activate", "", TRUE, ":flagstodo"); 00551 }; 00552 00553 interface CSynth : SNet { 00554 }; 00555 00556 interface Song : SNet { 00557 Bus create_bus () { 00558 Info help = "Create a new mixer bus for a Song."; 00559 Out bus = ("bus", "", ":flagstodo"); 00560 } 00561 Part create_part () { 00562 Info help = "Create a new Part in a Song."; 00563 Out part = ("part", "", ":flagstodo"); 00564 } 00565 Track create_track () { 00566 Info help = "Create a new Track for a Song."; 00567 Out track = ("Track", "", ":flagstodo"); 00568 } 00569 Bus ensure_master_bus () { 00570 Info help = "Retrieve master output bus of a song, will create one if it doesn't exist."; 00571 Out bus = ("bus", "", ":flagstodo"); 00572 } 00573 void ensure_track_links () { 00574 Info help = "Ensure that each part in a song is inserted into at least one track."; 00575 } 00576 Track find_any_track_for_part (Part part) { 00577 Info help = "Find the first track that contains part, suitable to check for orphan parts."; 00578 In part = ("Part", "", ":flagstodo"); 00579 Out track = ("Track", "", ":flagstodo"); 00580 } 00581 Track find_track_for_part (Part part) { 00582 Info help = "Find a track suitable for playing notes of a given part."; 00583 In part = ("Part", "", ":flagstodo"); 00584 Out track = ("Track", "", ":flagstodo"); 00585 } 00586 Bus get_master_bus () { 00587 Info help = "Retrieve master output bus of a song if it exists."; 00588 Out bus = ("bus", "", ":flagstodo"); 00589 } 00590 SongTiming get_timing (Int tick) { 00591 Info help = "Retrieve song timing information at a specific tick."; 00592 In tick = ("Tick", "Tick to retrieve timing info about", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 00593 Out timing = ("Timing", "Song Timing", ":flagstodo"); 00594 } 00595 void remove_bus (Bus bus) { 00596 Info help = "Delete a mixer bus from a Song."; 00597 In bus = ("bus", "", ":flagstodo"); 00598 } 00599 void remove_part (Part part) { 00600 Info help = "Delete a Part from a Song."; 00601 In part = ("Part", "", ":flagstodo"); 00602 } 00603 void remove_track (Track track) { 00604 Info help = "Delete a Track from a Song."; 00605 In track = ("Track", "", ":flagstodo"); 00606 } 00607 void synthesize_note (Track track, Int duration, Int note, Int fine_tune, Real velocity) { 00608 Info help = "Synthesize a note on a song of an active project."; 00609 In track = ("Track", "", ":flagstodo"); 00610 In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo"); 00611 In note = ("Note", "", 69, 0, 131, 12, ":flagstodo"); 00612 In fine_tune = ("Fine Tune", "Fine tune in cents per semitone", 0, -100, 100, 10, ":flagstodo"); 00613 In velocity = ("Velocity", "", ":flagstodo"); 00614 } 00615 signal pointer_changed (Int a); 00616 property MusicalTuningType musical_tuning = ("Musical Tuning", "The tuning system which specifies the tones or pitches to be used. Due to the psychoacoustic properties of tones, various pitch combinations can sound "natural" or "pleasing" when used in combination, the musical tuning system defines the number and spacing of frequency values applied.", ":flagstodo"); 00617 property Int tpqn = ("Ticks", "Number of ticks per quarter note", 384, 384, 384, 0, ":flagstodo"); 00618 property Int numerator = ("Numerator", "Measure numerator", 4, 1, 256, 1, ":flagstodo"); 00619 property Int denominator = ("Denominator", "Measure denominator, must be a power of 2", 4, 1, 256, 0, ":flagstodo"); 00620 property Real bpm = ("Beats per minute", "", ":flagstodo"); 00621 property CSynth pnet = ("Postprocessor", "Synthesis network to be used as postprocessor", ":flagstodo"); 00622 property Bool auto_activate = ("auto-activate", "", TRUE, ":flagstodo"); 00623 property Bool loop_enabled = ("loop-enabled", "", FALSE, ":flagstodo"); 00624 property Int loop_left = ("loop-left", "", -1, -1, SFI_MAXINT, 384, ":flagstodo"); 00625 property Int loop_right = ("loop-right", "", -1, -1, SFI_MAXINT, 384, ":flagstodo"); 00626 property Int tick_pointer = ("tick-pointer", "", -1, -1, SFI_MAXINT, 384, ":flagstodo"); 00627 }; 00628 00629 interface Project : Container { 00630 ErrorType import_midi_file (String file_name) { 00631 Info help = "Import a song from a MIDI file."; 00632 In file_name = ("MIDI File", "MIDI file name", ":flagstodo"); 00633 Out error = ("Error", "Error indicating possible failures", ":flagstodo"); 00634 } 00635 ErrorType restore_from_file (String file_name) { 00636 Info help = "Load a project from file"; 00637 In file_name = ("File", "Source file name", ":flagstodo"); 00638 Out error = ("Error", "Error indicating possible failures", ":flagstodo"); 00639 } 00640 ErrorType store_bse (Super super, String file_name, Bool self_contained) { 00641 Info help = "Save supers of a project into a BSE file. If no super is specified, the project itself is stored."; 00642 In super = ("Super", "", ":flagstodo"); 00643 In file_name = ("File", "Destination file name", ":flagstodo"); 00644 In self_contained = ("Self Contained", "Whether references to other objects (e.g. samples) should be stored or whether to include everything in a self-contained .bse file", FALSE, ":flagstodo"); 00645 Out error = ("Error", "Error indicating possible failures", ":flagstodo"); 00646 } 00647 ErrorType activate () { 00648 Info help = "Activate a project, precondition to start playback."; 00649 Out error = ("Error", "", ":flagstodo"); 00650 } 00651 void auto_deactivate (Int msec_delay) { 00652 Info help = "Automatically deactivate a project once playback stopped."; 00653 In msec_delay = ("msec-delay", "Delay for deactivation in milliseconds", 0, -1, SFI_MAXINT, 1000, ":flagstodo"); 00654 } 00655 Bool can_play () { 00656 Info help = "Check whether project playback would makes sense."; 00657 Out can_play = ("Can Play", "Whether project playback makes sense", FALSE, ":flagstodo"); 00658 } 00659 void change_name (String name) { 00660 Info help = "Change a project name without recording undo steps."; 00661 In name = ("name", "", ":flagstodo"); 00662 } 00663 void clean_dirty () { 00664 Info help = "Clear a projects dirty flags."; 00665 } 00666 void clear_undo () { 00667 Info help = "Delete all recorded undo or redo steps."; 00668 } 00669 CSynth create_csynth (String name) { 00670 Info help = "Create a synthsizer network for this project."; 00671 In name = ("Name", "Synth network name", ":flagstodo"); 00672 Out csynth = ("Synthesizer Network", "New synth network", ":flagstodo"); 00673 } 00674 MidiSynth create_midi_synth (String name) { 00675 Info help = "Create a MIDI synthesizer network for this project."; 00676 In name = ("Name", "MIDI synth name", ":flagstodo"); 00677 Out midi_synth = ("MIDI Synthesizer", "New MIDI synth", ":flagstodo"); 00678 } 00679 Song create_song (String name) { 00680 Info help = "Create a song for this project."; 00681 In name = ("Name", "Song name", ":flagstodo"); 00682 Out song = ("Song", "The new song", ":flagstodo"); 00683 } 00684 void deactivate () { 00685 Info help = "Deactivate the project, automatically stop playback."; 00686 } 00687 Item find_item (String uname_path) { 00688 Info help = "Find an item within a project, given its uname path."; 00689 In uname_path = ("uname-path", "", ":flagstodo"); 00690 Out item = ("item", "", ":flagstodo"); 00691 } 00692 DataPocket get_data_pocket (String name) { 00693 Info help = "Retrieve a specifically named data pocket for this project"; 00694 In name = ("Name", "Name of the data pocket", ":flagstodo"); 00695 Out data_pocket = ("Data Pocket", "The data pocket", ":flagstodo"); 00696 } 00697 MidiNotifier get_midi_notifier () { 00698 Info help = "Retrieve the project's midi notifier object."; 00699 Out midi_notifier = ("midi-notifier", "", ":flagstodo"); 00700 } 00701 ProjectState get_state () { 00702 Info help = "Retrieve the current project state."; 00703 Out state = ("State", "Project playback/activation state", ":flagstodo"); 00704 } 00705 ItemSeq get_supers () { 00706 Info help = "Retrieve all supers of this project."; 00707 Out super_list = ("super-list", "", ":flagstodo"); 00708 } 00709 WaveRepo get_wave_repo () { 00710 Info help = "Ensure the project has a wave repository"; 00711 Out wrepo = ("Wave Repo", "The project's unique wave repo", ":flagstodo"); 00712 } 00713 void inject_midi_control (Int midi_channel, Int midi_control, Real control_value) { 00714 Info help = "Inject a MIDI control event into the project's MIDI receiver."; 00715 In midi_channel = ("midi-channel", "", 1, 1, 99, 1, ":flagstodo"); 00716 In midi_control = ("midi-control", "", 7, 0, 127, 1, ":flagstodo"); 00717 In control_value = ("control-value", "", ":flagstodo"); 00718 } 00719 Bool is_active () { 00720 Info help = "Check whether a project is active"; 00721 Out is_active = ("is-active", "Whether the project is currently producing sound", FALSE, ":flagstodo"); 00722 } 00723 Bool is_dirty () { 00724 Info help = "Check whether a project is dirty (needs saving)."; 00725 Out dirty = ("dirty", "", TRUE, ":flagstodo"); 00726 } 00727 Bool is_playing () { 00728 Info help = "Check whether a project is currently playing"; 00729 Out is_playing = ("Is Playing", "Whether the project is currently playing songs or synths", FALSE, ":flagstodo"); 00730 } 00731 StringSeq list_uname_paths (String item_type) { 00732 Info help = "List uname paths for all items of a specified type within this project. By their uname paths, items are uniquely identifyable within a project."; 00733 In item_type = ("item-type", "", ":flagstodo"); 00734 Out uname_paths = ("Uname Paths", "", ":flagstodo"); 00735 } 00736 ItemSeq match_items_by_uname (String item_type, String uname) { 00737 Info help = "Retrieve all items of a specific type within a project with matching uname"; 00738 In item_type = ("item-type", "", ":flagstodo"); 00739 In uname = ("uname", "", ":flagstodo"); 00740 Out item_list = ("Item List", "", ":flagstodo"); 00741 } 00742 ErrorType play () { 00743 Info help = "Activate a project and start project playback (and already playing project is first halted)."; 00744 Out error = ("Error", "", ":flagstodo"); 00745 } 00746 void redo () { 00747 Info help = "Redo a previously undone operaiton in a project"; 00748 } 00749 Int redo_depth () { 00750 Info help = "Check whether a project can perform redo steps"; 00751 Out redo_depth = ("redo-depth", "Number of times redo can be called on the project", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00752 } 00753 void remove_snet (SNet snet) { 00754 Info help = "Remove an existing synthesizer network from this project."; 00755 In snet = ("SNet", "Synthesizer Network", ":flagstodo"); 00756 } 00757 void start_playback () { 00758 Info help = "Start playback in an activated project."; 00759 } 00760 void stop () { 00761 Info help = "Stop project playback and deactivate project."; 00762 } 00763 void stop_playback () { 00764 Info help = "Stop project playback."; 00765 } 00766 void undo () { 00767 Info help = "Undo a previous operation in a project"; 00768 } 00769 Int undo_depth () { 00770 Info help = "Check whether a project can perform undo steps"; 00771 Out undo_depth = ("undo-depth", "Number of times undo can be called on the project", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00772 } 00773 signal state_changed (ProjectState a); 00774 property Bool dirty = ("dirty", "Whether project needs saving", FALSE, ":flagstodo"); 00775 }; 00776 00777 interface Server : Container { 00778 Bool can_load (String file_name) { 00779 Info help = "Check whether a loader can be found for a wave file"; 00780 In file_name = ("File Name", "The file to find a loader for", ":flagstodo"); 00781 Out can_load = ("can-load", "", FALSE, ":flagstodo"); 00782 } 00783 String get_custom_effect_dir () { 00784 Info help = "Retrieve user specific effects directory."; 00785 Out directory = ("directory", "", ":flagstodo"); 00786 } 00787 String get_custom_instrument_dir () { 00788 Info help = "Retrieve user specific instruments directory."; 00789 Out directory = ("directory", "", ":flagstodo"); 00790 } 00791 String get_demo_path () { 00792 Info help = "Retrieve demo search path."; 00793 Out path = ("path", "", ":flagstodo"); 00794 } 00795 String get_effect_path () { 00796 Info help = "Retrieve effect search path."; 00797 Out path = ("path", "", ":flagstodo"); 00798 } 00799 String get_instrument_path () { 00800 Info help = "Retrieve instrument search path."; 00801 Out path = ("path", "", ":flagstodo"); 00802 } 00803 String get_ladspa_path () { 00804 Info help = "Retrieve ladspa search path."; 00805 Out path = ("path", "", ":flagstodo"); 00806 } 00807 String get_mp3_version () { 00808 Info help = "Retrieve BSE MP3 handler version."; 00809 Out version = ("version", "", ":flagstodo"); 00810 } 00811 String get_plugin_path () { 00812 Info help = "Retrieve plugin search path."; 00813 Out path = ("path", "", ":flagstodo"); 00814 } 00815 String get_sample_path () { 00816 Info help = "Retrieve sample search path."; 00817 Out path = ("path", "", ":flagstodo"); 00818 } 00819 String get_script_path () { 00820 Info help = "Retrieve script search path."; 00821 Out path = ("path", "", ":flagstodo"); 00822 } 00823 String get_version () { 00824 Info help = "Retrieve BSE version."; 00825 Out version = ("version", "", ":flagstodo"); 00826 } 00827 String get_vorbis_version () { 00828 Info help = "Retrieve BSE Vorbis handler version."; 00829 Out version = ("version", "", ":flagstodo"); 00830 } 00831 Int n_scripts () { 00832 Info help = "Return the number of scripts currently running on this server."; 00833 Out n_connections = ("n-connections", "Number of Connections", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00834 } 00835 Bool preferences_locked () { 00836 Info help = "Returns whether the bse-preferences property is currently locked against modifications or not."; 00837 Out locked = ("locked", "", FALSE, ":flagstodo"); 00838 } 00839 void register_core_plugins () { 00840 Info help = "Register core plugins."; 00841 } 00842 void register_ladspa_plugins () { 00843 Info help = "Register LADSPA (Linux Audio Developer's Simple Plugin API) plugins."; 00844 } 00845 void register_scripts () { 00846 Info help = "Register external scripts."; 00847 } 00848 void save_preferences () { 00849 Info help = "Request the bse-preferences property to be saved into BSE's configuration file."; 00850 } 00851 void start_recording (String wave_file, Real n_seconds) { 00852 Info help = "Start recording to a WAV file."; 00853 In wave_file = ("wave-file", "", ":flagstodo"); 00854 In n_seconds = ("n-seconds", "Maximum number of recorded seconds", ":flagstodo"); 00855 } 00856 Project use_new_project (String name) { 00857 Info help = "Create a new project, owned by the caller (name is modified to be unique if necessary)"; 00858 In name = ("Project Name", "", ":flagstodo"); 00859 Out project = ("Project", "", ":flagstodo"); 00860 } 00861 signal registration (RegistrationType a, String b, String c); 00862 signal script_start (Janitor a); 00863 signal script_error (String a, String b, String c); 00864 property Rec bse_preferences = ("bse-preferences", "", ":flagstodo"); 00865 property String wave_file = ("WAVE File", "Name of the WAVE file used for recording BSE sound output", ":flagstodo"); 00866 property Bool log_messages = ("Log Messages", "Log messages through the log system", TRUE, ":flagstodo"); 00867 }; 00868 00869 interface SubIPort : Source { 00870 property String in_port_1 = ("Input Port 1", "The port name is a unique name to establish input<->output port relationships", ":flagstodo"); 00871 property String in_port_2 = ("Input Port 2", "The port name is a unique name to establish input<->output port relationships", ":flagstodo"); 00872 property String in_port_3 = ("Input Port 3", "The port name is a unique name to establish input<->output port relationships", ":flagstodo"); 00873 property String in_port_4 = ("Input Port 4", "The port name is a unique name to establish input<->output port relationships", ":flagstodo"); 00874 }; 00875 00876 interface InstrumentInput : SubIPort { 00877 property String in_port_1 = ("in-port-1", "", ":flagstodo"); 00878 property String in_port_2 = ("in-port-2", "", ":flagstodo"); 00879 property String in_port_3 = ("in-port-3", "", ":flagstodo"); 00880 property String in_port_4 = ("in-port-4", "", ":flagstodo"); 00881 }; 00882 00883 interface WaveOsc : Source { 00884 void request_pcm_position () { 00885 Info help = "Request emission of the ::notify_pcm_position signal."; 00886 } 00887 void set_from_editable_sample (EditableSample esample) { 00888 Info help = "Set wave to play from editable sample, bypassing undo and storage mechanisms."; 00889 In esample = ("esample", "Editable Sample", ":flagstodo"); 00890 } 00891 signal notify_pcm_position (Num a, Int b); 00892 property Wave wave = ("Wave", "Wave used as oscillator source", ":flagstodo"); 00893 property Int channel = ("Channel", "The audio channel to play, usually 1 is left, 2 is right", 1, 1, 256, 2, ":flagstodo"); 00894 property Real fm_perc = ("Input Modulation [%]", "Modulation Strength for linear frequency modulation", ":flagstodo"); 00895 property Bool exponential_fm = ("Exponential FM", "Perform exponential frequency modulation instead of linear", FALSE, ":flagstodo"); 00896 property Real fm_n_octaves = ("Octaves", "Number of octaves to be affected by exponential frequency modulation", ":flagstodo"); 00897 }; 00898 00899 interface MidiVoiceInput : Source { 00900 }; 00901 00902 interface ContextMerger : Source { 00903 }; 00904 00905 interface Track : ContextMerger { 00906 ErrorType ensure_output () { 00907 Info help = "Ensure the track has an output connection to a bus."; 00908 Out error = ("error", "", ":flagstodo"); 00909 } 00910 Int get_last_tick () { 00911 Info help = "Retrieve the last tick for this track."; 00912 Out last_tick = ("Last Tick", "", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 00913 } 00914 Source get_output_source () { 00915 Info help = "Get the output module for this track. The output of this module is the merged result from all polyphonic voices and has all track specific alterations applied."; 00916 Out source = ("source", "", ":flagstodo"); 00917 } 00918 Part get_part (Int tick) { 00919 Info help = "Get the part starting at a specific tick position."; 00920 In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 00921 Out part = ("Part", "", ":flagstodo"); 00922 } 00923 SongTiming get_timing (Int tick) { 00924 Info help = "Retrieve song timing information at a specific tick."; 00925 In tick = ("Tick", "Tick to retrieve timing info about", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 00926 Out timing = ("Timing", "Song Timing", ":flagstodo"); 00927 } 00928 Int insert_part (Int tick, Part part) { 00929 Info help = "Insert a part into a track and retrieve the corresponding link id."; 00930 In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 00931 In part = ("Part", "", ":flagstodo"); 00932 Out id = ("Link ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 00933 } 00934 TrackPartSeq list_parts () { 00935 Info help = "List parts scheduled in a track, sorted by tick."; 00936 Out part_list = ("Part List", "", ":flagstodo"); 00937 } 00938 ItemSeq list_parts_uniq () { 00939 Info help = "List all parts contained in a track."; 00940 Out part_list = ("Part List", "", ":flagstodo"); 00941 } 00942 void remove_link (Int id) { 00943 Info help = "Remove a specific part link by ID from a track."; 00944 In id = ("Link ID", "", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 00945 } 00946 void remove_tick (Int tick) { 00947 Info help = "Remove a part at specified tick from a track."; 00948 In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 00949 } 00950 signal changed (); 00951 property Bool muted = ("Muted", "", FALSE, ":flagstodo"); 00952 property CSynth snet = ("Synthesizer", "Synthesis network to be used as instrument", ":flagstodo"); 00953 property Wave wave = ("Wave", "Wave to be used as instrument", ":flagstodo"); 00954 property Int midi_channel = ("MIDI Channel", "Midi channel assigned to this track, 0 uses internal per-track channel", 0, 0, 99, 1, ":flagstodo"); 00955 property Int n_voices = ("Max Voices", "Maximum number of voices for simultaneous playback", 16, 1, 256, 1, ":flagstodo"); 00956 property CSynth pnet = ("Postprocessor", "Synthesis network to be used as postprocessor", ":flagstodo"); 00957 property ItemSeq outputs = ("Output Signals", "Mixer busses used as output for this track", ":flagstodo"); 00958 }; 00959 00960 interface MidiController : Source { 00961 property Int midi_channel = ("MIDI Channel", "Input MIDI channel, 0 uses network's default channel", 0, 0, 99, 1, ":flagstodo"); 00962 property MidiSignalType control_1 = ("Signal 1", "", ":flagstodo"); 00963 property MidiSignalType control_2 = ("Signal 2", "", ":flagstodo"); 00964 property MidiSignalType control_3 = ("Signal 3", "", ":flagstodo"); 00965 property MidiSignalType control_4 = ("Signal 4", "", ":flagstodo"); 00966 }; 00967 00968 interface BiquadFilter : Source { 00969 property BiquadFilterType filter_type = ("Filter Type", "The filter design type", ":flagstodo"); 00970 property Real freq = ("Cutoff [Hz]", "Filter cutoff frequency in Hertz", ":flagstodo"); 00971 property Int note = ("Note", "Filter cutoff frequency as note, converted to Hertz according to the current musical tuning", 81, 0, 131, 12, ":flagstodo"); 00972 property Real gain = ("Gain [dB]", "", ":flagstodo"); 00973 property Real fm_perc = ("Input Modulation [%]", "Strength of linear frequency modulation", ":flagstodo"); 00974 property Bool exponential_fm = ("Exponential FM", "Perform exponential frequency modulation instead of linear", FALSE, ":flagstodo"); 00975 property Real fm_n_octaves = ("Octaves", "Number of octaves to be affected by exponential frequency modulation", ":flagstodo"); 00976 property Real gain_perc = ("Gain Modulation [%]", "Strength of gain modulation", ":flagstodo"); 00977 }; 00978 00979 interface SubSynth : Source { 00980 property CSynth snet = ("Synthesizer", "Synthesis network to use as embedded sub network", ":flagstodo"); 00981 property String in_port_1 = ("Input Port 1", "Output port name to interface from", ":flagstodo"); 00982 property String out_port_1 = ("Output Port 1", "Input port name to interface to", ":flagstodo"); 00983 property String in_port_2 = ("Input Port 2", "Output port name to interface from", ":flagstodo"); 00984 property String out_port_2 = ("Output Port 2", "Input port name to interface to", ":flagstodo"); 00985 property String in_port_3 = ("Input Port 3", "Output port name to interface from", ":flagstodo"); 00986 property String out_port_3 = ("Output Port 3", "Input port name to interface to", ":flagstodo"); 00987 property String in_port_4 = ("Input Port 4", "Output port name to interface from", ":flagstodo"); 00988 property String out_port_4 = ("Output Port 4", "Input port name to interface to", ":flagstodo"); 00989 property String in_port_5 = ("Input Port 5", "Output port name to interface from", ":flagstodo"); 00990 property String out_port_5 = ("Output Port 5", "Input port name to interface to", ":flagstodo"); 00991 property String in_port_6 = ("Input Port 6", "Output port name to interface from", ":flagstodo"); 00992 property String out_port_6 = ("Output Port 6", "Input port name to interface to", ":flagstodo"); 00993 property String in_port_7 = ("Input Port 7", "Output port name to interface from", ":flagstodo"); 00994 property String out_port_7 = ("Output Port 7", "Input port name to interface to", ":flagstodo"); 00995 property String in_port_8 = ("Input Port 8", "Output port name to interface from", ":flagstodo"); 00996 property String out_port_8 = ("Output Port 8", "Input port name to interface to", ":flagstodo"); 00997 }; 00998 00999 interface Bus : SubSynth { 01000 ErrorType connect_bus (Bus bus) { 01001 Info help = "Add a bus to the input list of a bus."; 01002 In bus = ("bus", "", ":flagstodo"); 01003 Out error = ("error", "", ":flagstodo"); 01004 } 01005 ErrorType connect_track (Track track) { 01006 Info help = "Add a track to the input list of a bus."; 01007 In track = ("track", "", ":flagstodo"); 01008 Out error = ("error", "", ":flagstodo"); 01009 } 01010 ErrorType disconnect_bus (Bus bus) { 01011 Info help = "Remove a bus from the input list of a bus."; 01012 In bus = ("bus", "", ":flagstodo"); 01013 Out error = ("error", "", ":flagstodo"); 01014 } 01015 ErrorType disconnect_track (Track track) { 01016 Info help = "Remove a track from the input list of a bus."; 01017 In track = ("track", "", ":flagstodo"); 01018 Out error = ("error", "", ":flagstodo"); 01019 } 01020 ErrorType ensure_output () { 01021 Info help = "Ensure that a bus has an output connection."; 01022 Out error = ("error", "", ":flagstodo"); 01023 } 01024 property ItemSeq inputs = ("Input Signals", "Synthesis signals (from tracks and busses) used as bus input", ":flagstodo"); 01025 property ItemSeq outputs = ("Output Signals", "Mixer busses used as output for synthesis signals", ":flagstodo"); 01026 property CSynth snet = ("snet", "", ":flagstodo"); 01027 property Bool mute = ("Mute", "Mute: turn off the bus volume", FALSE, ":flagstodo"); 01028 property Bool solo = ("Solo", "Solo: mute all other busses", FALSE, ":flagstodo"); 01029 property Bool sync = ("Sync", "Syncronize left and right volume", TRUE, ":flagstodo"); 01030 property Real left_volume = ("Left Volume", "Volume adjustment in decibel of left bus channel", ":flagstodo"); 01031 property Real right_volume = ("Right Volume", "Volume adjustment in decibel of right bus channel", ":flagstodo"); 01032 property Bool master_output = ("Master Output", "", FALSE, ":flagstodo"); 01033 }; 01034 01035 interface StandardOsc : Source { 01036 property StandardOscWaveType wave_form = ("Wave", "Oscillator wave form", ":flagstodo"); 01037 property Real phase = ("Phase", "Initial phase of the oscillator wave form (cycle offset in degree)", ":flagstodo"); 01038 property Real base_freq = ("Frequency", "Oscillator frequency in Hertz, i.e. the number of oscillator cycles per second", ":flagstodo"); 01039 property Int base_note = ("Note", "Oscillator frequency as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo"); 01040 property Int transpose = ("Transpose", "Transposition of the oscillator frequency in semitones", 0, -72, 72, 12, ":flagstodo"); 01041 property Int fine_tune = ("Fine Tune", "Amount of detuning in cent (hundredth part of a semitone)", 0, -100, 100, 10, ":flagstodo"); 01042 property Real fm_perc = ("Input Modulation [%]", "Strength of linear frequency modulation", ":flagstodo"); 01043 property Bool exponential_fm = ("Exponential FM", "Perform exponential frequency modulation instead of linear", FALSE, ":flagstodo"); 01044 property Real fm_n_octaves = ("Octaves", "Number of octaves to be affected by exponential frequency modulation", ":flagstodo"); 01045 property Real self_perc = ("Self Modulation [%]", "Strength of self modulation", ":flagstodo"); 01046 property Real pulse_width = ("Pulse Width", "Proportion of the positive component duration of the pulse wave form (Pulse has to be selected as wave form for this to take effect)", ":flagstodo"); 01047 property Real pulse_mod_perc = ("Pulse Modulation [%]", "Strength of pulse width modulation input (Pulse has to be selected as wave form for this to take effect)", ":flagstodo"); 01048 }; 01049 01050 interface MidiInput : Source { 01051 property Int midi_channel = ("MIDI Channel", "Input MIDI channel, 0 uses network's default channel", 0, 0, 99, 1, ":flagstodo"); 01052 }; 01053 01054 interface PcmOutput : Source { 01055 property Real master_volume_f = ("Master [float]", "", ":flagstodo"); 01056 property Real master_volume_dB = ("Master [dB]", "", ":flagstodo"); 01057 property Int master_volume_perc = ("Master [%]", "", 100, 0, 1584, 1, ":flagstodo"); 01058 }; 01059 01060 interface PcmInput : Source { 01061 property Real gain_volume_f = ("Input Gain [float]", "", ":flagstodo"); 01062 property Real gain_volume_dB = ("Input Gain [dB]", "", ":flagstodo"); 01063 property Int gain_volume_perc = ("input Gain [%]", "", 100, 0, 1584, 1, ":flagstodo"); 01064 }; 01065 01066 interface SubOPort : Source { 01067 property String out_port_1 = ("Output Port 1", "The port name is a unique name to establish input<->output port relationships", ":flagstodo"); 01068 property String out_port_2 = ("Output Port 2", "The port name is a unique name to establish input<->output port relationships", ":flagstodo"); 01069 property String out_port_3 = ("Output Port 3", "The port name is a unique name to establish input<->output port relationships", ":flagstodo"); 01070 property String out_port_4 = ("Output Port 4", "The port name is a unique name to establish input<->output port relationships", ":flagstodo"); 01071 }; 01072 01073 interface InstrumentOutput : SubOPort { 01074 property String out_port_1 = ("out-port-1", "", ":flagstodo"); 01075 property String out_port_2 = ("out-port-2", "", ":flagstodo"); 01076 property String out_port_3 = ("out-port-3", "", ":flagstodo"); 01077 property String out_port_4 = ("out-port-4", "", ":flagstodo"); 01078 }; 01079 01080 interface Wave : Source { 01081 Real chunk_get_mix_freq (Int chunk_index) { 01082 Info help = "Retrieve mixing frequency of a wave chunk."; 01083 In chunk_index = ("Chunk Index", "Index of chunk", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01084 Out mix_freq = ("mix-freq", "", ":flagstodo"); 01085 } 01086 Real chunk_get_osc_freq (Int chunk_index) { 01087 Info help = "Retrieve oscillating frequency of a wave chunk."; 01088 In chunk_index = ("Chunk Index", "Index of chunk", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01089 Out osc_freq = ("osc-freq", "", ":flagstodo"); 01090 } 01091 ErrorType load_wave (String file_name, String wave_name) { 01092 Info help = "Load sample chunks from a wave file"; 01093 In file_name = ("File Name", "The wave file to read wave chunks from", ":flagstodo"); 01094 In wave_name = ("Wave Name", "The name of the wave to read wave chunks from", ":flagstodo"); 01095 Out error = ("Error", "BSE error type", ":flagstodo"); 01096 } 01097 Int n_wave_chunks () { 01098 Info help = "Get the number of wave chunks of a wave"; 01099 Out n_chunks = ("Number of Wave Chunks", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01100 } 01101 EditableSample use_editable (Int chunk_index) { 01102 Info help = "Retrieve an editable sample object for a wave chunk."; 01103 In chunk_index = ("chunk-index", "Index of chunk to edit", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01104 Out esample = ("esample", "Editable sample", ":flagstodo"); 01105 } 01106 property Bool locator_set = ("Locator Set", "", FALSE, ":flagstodo"); 01107 property String file_name = ("File Name", "", ":flagstodo"); 01108 property String wave_name = ("Wave Name", "", ":flagstodo"); 01109 }; 01110 01111 interface MidiVoiceSwitch : Source { 01112 }; 01113 01114 interface LadspaModule : Source { 01115 }; 01116 01117 interface MidiNotifier : Item { 01118 Int current_time () { 01119 Info help = "Test"; 01120 Out msec_time = ("Time [ms]", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01121 } 01122 }; 01123 01124 interface Part : Item { 01125 ErrorType change_control (Int id, Int tick, MidiSignalType control_type, Real value) { 01126 Info help = "Change an existing control event within a part."; 01127 In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01128 In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01129 In control_type = ("Control Type", "", ":flagstodo"); 01130 In value = ("Value", "", ":flagstodo"); 01131 Out error = ("Error", "", ":flagstodo"); 01132 } 01133 ErrorType change_note (Int id, Int tick, Int duration, Int note, Int fine_tune, Real velocity) { 01134 Info help = "Change an existing note within a part."; 01135 In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01136 In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01137 In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo"); 01138 In note = ("Note", "", 69, 0, 131, 12, ":flagstodo"); 01139 In fine_tune = ("Fine Tune", "Fine tune in cents per semitone", 0, -100, 100, 10, ":flagstodo"); 01140 In velocity = ("Velocity", "", ":flagstodo"); 01141 Out error = ("Error", "", ":flagstodo"); 01142 } 01143 PartNoteSeq check_overlap (Int tick, Int duration, Int note) { 01144 Info help = "Check whether a note would overlap with neighbours."; 01145 In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01146 In duration = ("Tick Duration", "", 1, 0, SFI_MAXINT, 384, ":flagstodo"); 01147 In note = ("Note", "", 69, 0, 131, 12, ":flagstodo"); 01148 Out note_list = ("Note List", "", ":flagstodo"); 01149 } 01150 ErrorType delete_event (Int id) { 01151 Info help = "Delete an existing event from a part."; 01152 In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01153 Out error = ("Error", "", ":flagstodo"); 01154 } 01155 void deselect_controls (Int tick, Int duration, MidiSignalType control_type) { 01156 Info help = "Deselect all controls within given range."; 01157 In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo"); 01158 In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 01159 In control_type = ("Control Type", "", ":flagstodo"); 01160 } 01161 void deselect_event (Int id) { 01162 Info help = "Deselect an existing event."; 01163 In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01164 } 01165 void deselect_notes (Int tick, Int duration, Int min_note, Int max_note) { 01166 Info help = "Deselect all notes within rectangle."; 01167 In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo"); 01168 In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 01169 In min_note = ("Minimum Selection Note", "", 69, 0, 131, 12, ":flagstodo"); 01170 In max_note = ("Maximum Selection Note", "", 69, 0, 131, 12, ":flagstodo"); 01171 } 01172 PartControlSeq get_channel_controls (Int channel, Int tick, Int duration, MidiSignalType control_type) { 01173 Info help = "Retrieve all control events of a specific type within range of a channel."; 01174 In channel = ("Channel", "", 0, 0, 4132, 4, ":flagstodo"); 01175 In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01176 In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo"); 01177 In control_type = ("Control Type", "", ":flagstodo"); 01178 Out control_list = ("Control List", "", ":flagstodo"); 01179 } 01180 PartControlSeq get_controls (Int tick, MidiSignalType control_type) { 01181 Info help = "Retrieve all control events of a specific type at specified tick."; 01182 In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01183 In control_type = ("Control Type", "", ":flagstodo"); 01184 Out control_list = ("Control List", "", ":flagstodo"); 01185 } 01186 Int get_max_note () { 01187 Info help = "Retrieve the maximum note supported in this part."; 01188 Out note = ("Note", "", 69, 0, 131, 12, ":flagstodo"); 01189 } 01190 Int get_min_note () { 01191 Info help = "Retrieve the minimum note supported in this part."; 01192 Out note = ("Note", "", 69, 0, 131, 12, ":flagstodo"); 01193 } 01194 PartNoteSeq get_notes (Int tick, Int note) { 01195 Info help = "Retrieve all notes of specific frequency at or crossing a specific tick."; 01196 In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01197 In note = ("Note", "", 69, 0, 131, 12, ":flagstodo"); 01198 Out note_list = ("Note List", "", ":flagstodo"); 01199 } 01200 SongTiming get_timing (Int tick) { 01201 Info help = "Retrieve song timing information at a specific tick."; 01202 In tick = ("Tick", "Tick to retrieve timing info about", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 01203 Out timing = ("Timing", "Song Timing", ":flagstodo"); 01204 } 01205 Int insert_control (Int tick, MidiSignalType control_type, Real value) { 01206 Info help = "Insert a new control event into a part."; 01207 In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01208 In control_type = ("Control Type", "", ":flagstodo"); 01209 In value = ("Value", "", ":flagstodo"); 01210 Out id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01211 } 01212 Int insert_note (Int channel, Int tick, Int duration, Int note, Int fine_tune, Real velocity) { 01213 Info help = "Insert a new note into a part."; 01214 In channel = ("Channel", "", 0, 0, 4132, 4, ":flagstodo"); 01215 In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01216 In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo"); 01217 In note = ("Note", "", 69, 0, 131, 12, ":flagstodo"); 01218 In fine_tune = ("Fine Tune", "Fine tune in cents per semitone", 0, -100, 100, 10, ":flagstodo"); 01219 In velocity = ("Velocity", "", ":flagstodo"); 01220 Out id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01221 } 01222 Int insert_note_auto (Int tick, Int duration, Int note, Int fine_tune, Real velocity) { 01223 Info help = "Insert a new note into a part with automatic channel selection."; 01224 In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01225 In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo"); 01226 In note = ("Note", "", 69, 0, 131, 12, ":flagstodo"); 01227 In fine_tune = ("Fine Tune", "Fine tune in cents per semitone", 0, -100, 100, 10, ":flagstodo"); 01228 In velocity = ("Velocity", "", ":flagstodo"); 01229 Out id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01230 } 01231 Bool is_event_selected (Int id) { 01232 Info help = "Check whether an event is selected."; 01233 In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01234 Out selected = ("Selected", "", FALSE, ":flagstodo"); 01235 } 01236 PartControlSeq list_controls (Int tick, Int duration, MidiSignalType control_type) { 01237 Info help = "List all control events within a tick range."; 01238 In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01239 In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo"); 01240 In control_type = ("Control Type", "", ":flagstodo"); 01241 Out control_list = ("Control List", "", ":flagstodo"); 01242 } 01243 PartLinkSeq list_links () { 01244 Info help = "List all places where parts are used (linked) from tracks, sorted by tick."; 01245 Out link_list = ("Link List", "", ":flagstodo"); 01246 } 01247 PartNoteSeq list_notes_crossing (Int tick, Int duration) { 01248 Info help = "List all notes within or crossing a tick range."; 01249 In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01250 In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo"); 01251 Out note_list = ("Note List", "", ":flagstodo"); 01252 } 01253 PartNoteSeq list_notes_within (Int channel, Int tick, Int duration) { 01254 Info help = "List all notes within a tick range."; 01255 In channel = ("Channel", "", 0, 0, 4132, 4, ":flagstodo"); 01256 In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01257 In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo"); 01258 Out note_list = ("Note List", "", ":flagstodo"); 01259 } 01260 PartControlSeq list_selected_controls (MidiSignalType control_type) { 01261 Info help = "List all currently selected control events of a specific type."; 01262 In control_type = ("Control Type", "", ":flagstodo"); 01263 Out control_list = ("Control List", "", ":flagstodo"); 01264 } 01265 PartNoteSeq list_selected_notes () { 01266 Info help = "List all currently selected notes."; 01267 Out note_list = ("Note List", "", ":flagstodo"); 01268 } 01269 void queue_controls (Int tick, Int duration) { 01270 Info help = "Queue updates for all control events and notes starting within the given range."; 01271 In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01272 In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo"); 01273 } 01274 void queue_notes (Int tick, Int duration, Int min_note, Int max_note) { 01275 Info help = "Queue updates for all notes starting within the given rectangle."; 01276 In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo"); 01277 In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo"); 01278 In min_note = ("Minimum Note", "", 69, 0, 131, 12, ":flagstodo"); 01279 In max_note = ("Maximum Note", "", 69, 0, 131, 12, ":flagstodo"); 01280 } 01281 void select_controls (Int tick, Int duration, MidiSignalType control_type) { 01282 Info help = "Select all control events within range."; 01283 In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo"); 01284 In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 01285 In control_type = ("Control Type", "", ":flagstodo"); 01286 } 01287 void select_controls_exclusive (Int tick, Int duration, MidiSignalType control_type) { 01288 Info help = "Select all control events within range and deselect all others."; 01289 In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo"); 01290 In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 01291 In control_type = ("Control Type", "", ":flagstodo"); 01292 } 01293 void select_event (Int id) { 01294 Info help = "Select an existing event."; 01295 In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01296 } 01297 void select_notes (Int tick, Int duration, Int min_note, Int max_note) { 01298 Info help = "Select all notes within rectangle."; 01299 In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo"); 01300 In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 01301 In min_note = ("Minimum Selection Note", "", 69, 0, 131, 12, ":flagstodo"); 01302 In max_note = ("Maximum Selection Note", "", 69, 0, 131, 12, ":flagstodo"); 01303 } 01304 void select_notes_exclusive (Int tick, Int duration, Int min_note, Int max_note) { 01305 Info help = "Select all notes within rectangle and deselect all others."; 01306 In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo"); 01307 In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 01308 In min_note = ("Minimum Selection Note", "", 69, 0, 131, 12, ":flagstodo"); 01309 In max_note = ("Maximum Selection Note", "", 69, 0, 131, 12, ":flagstodo"); 01310 } 01311 signal range_changed (Int a, Int b, Int c, Int d); 01312 signal links_changed (); 01313 property Int n_channels = ("Channels", "", 1, 1, 4132, 4, ":flagstodo"); 01314 property Int last_tick = ("Last Tick", "", 0, 0, SFI_MAXINT, 384, ":flagstodo"); 01315 }; 01316 01317 interface DataPocket : Item { 01318 Int create_entry () { 01319 Info help = "Create a new entry in a data pocket. Entries have a unique ID which is required to set values in a data pocket."; 01320 Out entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo"); 01321 } 01322 ErrorType delete_entry (Int entry_id) { 01323 Info help = "Delete an existing entry from a data pocket"; 01324 In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo"); 01325 Out error = ("Error", "BSE error code", ":flagstodo"); 01326 } 01327 Real get_float (Int entry_id, String name) { 01328 Info help = "Retrieve a previously set floating point value from a data pocket entry."; 01329 In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo"); 01330 In name = ("Name", "Name for the value", ":flagstodo"); 01331 Out number = ("Number", "The value stored in the data pocket entry", ":flagstodo"); 01332 } 01333 Int get_int (Int entry_id, String name) { 01334 Info help = "Retrieve a previously set integer value from a data pocket entry."; 01335 In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo"); 01336 In name = ("Name", "Name for the value", ":flagstodo"); 01337 Out number = ("Number", "The value stored in the data pocket entry", 0, SFI_MININT, SFI_MAXINT, 1, ":flagstodo"); 01338 } 01339 Int get_n_entries () { 01340 Info help = "Retrieve the number of entries created in a data pocket."; 01341 Out n_entries = ("N Entries", "The number of entries in use", 1, 0, SFI_MAXINT, 1, ":flagstodo"); 01342 } 01343 Int get_nth_entry_id (Int entry_index) { 01344 Info help = "Retrieve the ID of an entry in the data pocket by sequential index."; 01345 In entry_index = ("Entry Index", "index into number of entries present", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01346 Out entry_id = ("Entry ID", "The unique pocket entry ID (or 0 if there's no such entry)", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01347 } 01348 Item get_object (Int entry_id, String name) { 01349 Info help = "Retrieve a previously set object reference from a data pocket entry."; 01350 In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo"); 01351 In name = ("Name", "Name for the value", ":flagstodo"); 01352 Out item = ("Item", "The value stored in the data pocket entry", ":flagstodo"); 01353 } 01354 String get_string (Int entry_id, String name) { 01355 Info help = "Retrieve a previously set string from a data pocket entry."; 01356 In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo"); 01357 In name = ("Name", "Name for the value", ":flagstodo"); 01358 Out string = ("String", "The value stored in the data pocket entry", ":flagstodo"); 01359 } 01360 ErrorType set_float (Int entry_id, String name, Real number) { 01361 Info help = "Set a named floating point value in a data pocket entry. Names are required to distinguish different values from each other when accessing values in a data pocket."; 01362 In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo"); 01363 In name = ("Name", "Name for the value", ":flagstodo"); 01364 In number = ("Number", "The value to store in the data pocket entry", ":flagstodo"); 01365 Out error = ("Error", "BSE error code", ":flagstodo"); 01366 } 01367 ErrorType set_int (Int entry_id, String name, Int number) { 01368 Info help = "Set a named integer value in a data pocket entry. Names are required to distinguish different values from each other when accessing values in a data pocket."; 01369 In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo"); 01370 In name = ("Name", "Name for the value", ":flagstodo"); 01371 In number = ("Number", "The value to store in the data pocket entry", 0, SFI_MININT, SFI_MAXINT, 1, ":flagstodo"); 01372 Out error = ("Error", "BSE error code", ":flagstodo"); 01373 } 01374 ErrorType set_object (Int entry_id, String name, Item item) { 01375 Info help = "Set a named object reference in a data pocket entry. Object references stored in a data pocket must exist within the same project that the data pocket belongs to"; 01376 In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo"); 01377 In name = ("Name", "Name for the value", ":flagstodo"); 01378 In item = ("Item", "The value to store in the data pocket entry", ":flagstodo"); 01379 Out error = ("Error", "BSE error code", ":flagstodo"); 01380 } 01381 ErrorType set_string (Int entry_id, String name, String string) { 01382 Info help = "Set a named string in a data pocket entry."; 01383 In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo"); 01384 In name = ("Name", "Name for the value", ":flagstodo"); 01385 In string = ("String", "The value to store in the data pocket entry", ":flagstodo"); 01386 Out error = ("Error", "BSE error code", ":flagstodo"); 01387 } 01388 signal entry_added (Int a); 01389 signal entry_removed (Int a); 01390 signal entry_changed (Int a); 01391 }; 01392 01393 interface Janitor : Item { 01394 String get_action (Int nth_action) { 01395 Info help = "Retrieve an action of this janitor."; 01396 In nth_action = ("Nth Action", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01397 Out action = ("Action", "", ":flagstodo"); 01398 } 01399 String get_action_blurb (Int nth_action) { 01400 Info help = "Retrieve the help string of an action of this janitor."; 01401 In nth_action = ("Nth Action", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01402 Out action_blurb = ("Action Blurb", "", ":flagstodo"); 01403 } 01404 String get_action_name (Int nth_action) { 01405 Info help = "Retrieve the name of an action of this janitor."; 01406 In nth_action = ("Nth Action", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01407 Out action_name = ("Action Name", "", ":flagstodo"); 01408 } 01409 String get_proc_name () { 01410 Info help = "Retrieve the procedure name of this janitor."; 01411 Out proc_name = ("Proc Name", "", ":flagstodo"); 01412 } 01413 String get_script_name () { 01414 Info help = "Retrieve the script name of this janitor."; 01415 Out script_name = ("Script Name", "", ":flagstodo"); 01416 } 01417 void kill () { 01418 Info help = "Kill a currently running janitor."; 01419 } 01420 Int n_actions () { 01421 Info help = "Retrieve number of user actions of this janitor."; 01422 Out n_actions = ("N Actions", "", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01423 } 01424 void trigger_action (String action) { 01425 Info help = "Trigger an installed user action of this janitor."; 01426 In action = ("Action", "", ":flagstodo"); 01427 } 01428 signal action (String a, Int b); 01429 signal progress (Real a); 01430 signal action_changed (String a, Int b); 01431 signal shutdown (); 01432 property String ident = ("Script Identifier", "", ":flagstodo"); 01433 property Bool connected = ("Connected", "", FALSE, ":flagstodo"); 01434 property String status_message = ("Status Message", "", ":flagstodo"); 01435 property Int exit_code = ("Exit Code", "", 0, -256, 256, 0, ":flagstodo"); 01436 property String exit_reason = ("Exit Reason", "", ":flagstodo"); 01437 }; 01438 01439 interface EditableSample : Item { 01440 void close () { 01441 Info help = "Close an opened sample."; 01442 } 01443 FloatSeq collect_stats (Int voffset, Real offset_scale, Int block_size, Int stepping, Int max_pairs) { 01444 Info help = "Collect statistics from sample blocks as (minimum, maximum) pairs."; 01445 In voffset = ("voffset", "Offset of first stat block", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01446 In offset_scale = ("offset-scale", "Factor to scale voffset increments with", ":flagstodo"); 01447 In block_size = ("block-size", "Block size to compute stat pairs from", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01448 In stepping = ("stepping", "Stepping within a stat block", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01449 In max_pairs = ("max-pairs", "Maximum number of (min, max) pairs to collect", 1, 0, SFI_MAXINT, 1, ":flagstodo"); 01450 Out sample_block = ("sample-block", "Block of samples", ":flagstodo"); 01451 } 01452 Int get_length () { 01453 Info help = "Return the number of values in the sample."; 01454 Out length = ("length", "Number of values", 1, 0, SFI_MAXINT, 1, ":flagstodo"); 01455 } 01456 Int get_n_channels () { 01457 Info help = "Return the number of channels in the sample."; 01458 Out n_channels = ("n-channels", "Number of channels", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01459 } 01460 Real get_osc_freq () { 01461 Info help = "Return the oscillator frequency for the sample."; 01462 Out osc_freq = ("osc-freq", "Oscillator Frequency", ":flagstodo"); 01463 } 01464 ErrorType open () { 01465 Info help = "Open the sample for reading."; 01466 Out error = ("Error", "", ":flagstodo"); 01467 } 01468 FloatSeq read_samples (Int voffset) { 01469 Info help = "Read a set of samples from a specific offset."; 01470 In voffset = ("voffset", "Value offset", 0, 0, SFI_MAXINT, 1, ":flagstodo"); 01471 Out sample_block = ("sample-block", "Block of samples", ":flagstodo"); 01472 } 01473 signal changed (); 01474 }; 01475 01476 Category category_from_id (Int category_id) { 01477 Info help = "Find a BSE category from it's unique ID."; 01478 In category_id = ("Category ID", "", 1, 1, SFI_MAXINT, 1, ":flagstodo"); 01479 Out category = ("Category", "", ":flagstodo"); 01480 } 01481 CategorySeq categories_match (String pattern) { 01482 Info help = "List BSE categories according to a pattern match."; 01483 In pattern = ("Pattern", "Pattern to match category, supports '*' and '?' wildcards.", ":flagstodo"); 01484 Out categories = ("Categories", "", ":flagstodo"); 01485 } 01486 CategorySeq categories_match_method (String pattern, String type) { 01487 Info help = "List BSE categories according to a pattern, of type procedure and applying to a certain object type."; 01488 In pattern = ("Pattern", "Pattern to match category, supports '*' and '?' wildcards.", ":flagstodo"); 01489 In type = ("Type", "Object base type for methods to conform to.", ":flagstodo"); 01490 Out categories = ("Categories", "", ":flagstodo"); 01491 } 01492 CategorySeq categories_match_typed (String pattern, String type) { 01493 Info help = "List BSE categories according to a pattern and type match."; 01494 In pattern = ("Pattern", "Pattern to match category, supports '*' and '?' wildcards.", ":flagstodo"); 01495 In type = ("Type", "Base type for categories to conform to.", ":flagstodo"); 01496 Out categories = ("Categories", "", ":flagstodo"); 01497 } 01498 NoteDescription note_describe (MusicalTuningType musical_tuning, Int note, Int fine_tune) { 01499 Info help = "Describe a note, providing information about its octave, semitone, frequency, etc."; 01500 In musical_tuning = ("Musical Tuning", "", ":flagstodo"); 01501 In note = ("Note", "", 69, 0, 131, 12, ":flagstodo"); 01502 In fine_tune = ("Fine Tune", "", 0, -100, 100, 10, ":flagstodo"); 01503 Out note_description = ("Note Description", "", ":flagstodo"); 01504 } 01505 NoteDescription note_describe_from_freq (MusicalTuningType musical_tuning, Real freq) { 01506 Info help = "Describe a note, given its frequency."; 01507 In musical_tuning = ("Musical Tuning", "", ":flagstodo"); 01508 In freq = ("Frequency", "", ":flagstodo"); 01509 Out note_description = ("Note Description", "", ":flagstodo"); 01510 } 01511 String error_blurb (ErrorType error) { 01512 Info help = "Retrieve the description of an error value"; 01513 In error = ("Error", "", ":flagstodo"); 01514 Out blurb = ("Blurb", "", ":flagstodo"); 01515 } 01516 String error_name (ErrorType error) { 01517 Info help = "Retrieve the name of an error value"; 01518 In error = ("Error", "", ":flagstodo"); 01519 Out name = ("Name", "", ":flagstodo"); 01520 } 01521 NoteDescription note_construct (MusicalTuningType musical_tuning, Int semitone, Int octave, Int fine_tune) { 01522 Info help = "Describe a note, given its semitone, octave and fine tune."; 01523 In musical_tuning = ("Musical Tuning", "", ":flagstodo"); 01524 In semitone = ("semitone", "", 9, 0, 11, 1, ":flagstodo"); 01525 In octave = ("octave", "", 1, -4, 6, 2, ":flagstodo"); 01526 In fine_tune = ("Fine Tune", "", 0, -100, 100, 10, ":flagstodo"); 01527 Out note_description = ("Note Description", "", ":flagstodo"); 01528 } 01529 NoteDescription note_from_string (MusicalTuningType musical_tuning, String name) { 01530 Info help = "Describe a note, given its name and octave offset."; 01531 In musical_tuning = ("Musical Tuning", "", ":flagstodo"); 01532 In name = ("Name", "", ":flagstodo"); 01533 Out note_description = ("Note Description", "", ":flagstodo"); 01534 } 01535 Int note_from_freq (MusicalTuningType musical_tuning, Real frequency) { 01536 Info help = "Retrieve the note of a certain frequency."; 01537 In musical_tuning = ("Musical Tuning", "", ":flagstodo"); 01538 In frequency = ("Frequency", "", ":flagstodo"); 01539 Out note = ("Note", "", 69, 0, 131, 12, ":flagstodo"); 01540 } 01541 Real note_to_freq (MusicalTuningType musical_tuning, Int note, Int fine_tune) { 01542 Info help = "Retrieve the frequency of a certain note."; 01543 In musical_tuning = ("Musical Tuning", "", ":flagstodo"); 01544 In note = ("Note", "", 69, 0, 131, 12, ":flagstodo"); 01545 In fine_tune = ("Fine Tune", "", 0, -100, 100, 10, ":flagstodo"); 01546 Out frequency = ("Frequency", "", ":flagstodo"); 01547 } 01548 Bool proxy_check (Item item, String type_name) { 01549 Info help = "Check whether a proxy has a certain type."; 01550 In item = ("Item", "The Item", ":flagstodo"); 01551 In type_name = ("Type Name", "", ":flagstodo"); 01552 Out is_a = ("is-a", "", FALSE, ":flagstodo"); 01553 } 01554 SampleFileInfo sample_file_info (String file_name) { 01555 Info help = "Load sample file info from file"; 01556 In file_name = ("File Name", "The file to load info from", ":flagstodo"); 01557 Out sample_file_info = ("sample-file-info", "", ":flagstodo"); 01558 } 01559 void script_add_action (String action, String name, String blurb) { 01560 Info help = "Install a user action for script control."; 01561 In action = ("Action", "", ":flagstodo"); 01562 In name = ("Name", "", ":flagstodo"); 01563 In blurb = ("Blurb", "", ":flagstodo"); 01564 } 01565 Janitor script_janitor () { 01566 Info help = "Retrieve the connection dependant janitor object."; 01567 Out janitor = ("Janitor", "", ":flagstodo"); 01568 } 01569 void script_send_message (String domain, String msg_type, String title, String primary, String secondary, String details, String config_check) { 01570 Info help = "Send a message from a script."; 01571 In domain = ("domain", "", ":flagstodo"); 01572 In msg_type = ("msg-type", "", ":flagstodo"); 01573 In title = ("title", "", ":flagstodo"); 01574 In primary = ("primary", "", ":flagstodo"); 01575 In secondary = ("secondary", "", ":flagstodo"); 01576 In details = ("details", "", ":flagstodo"); 01577 In config_check = ("config-check", "", ":flagstodo"); 01578 } 01579 void script_progress (Real progress) { 01580 Info help = "Indicate progress (from 0.0 to 1.0 or -1 for unknown amount)."; 01581 In progress = ("Progress", "", ":flagstodo"); 01582 } 01583 void script_quit () { 01584 Info help = "Exit a script succesfully (server side)."; 01585 } 01586 void script_remove_action (String action) { 01587 Info help = "Remove a previously installed user action from script control."; 01588 In action = ("Action", "", ":flagstodo"); 01589 } 01590 void script_set_status (String message) { 01591 Info help = "Alter script status message."; 01592 In message = ("Message", "", ":flagstodo"); 01593 } 01594 void wave_osc_mass_seek_perc (ItemSeq wosc_seq, Real pos_perc) { 01595 Info help = "Seek a list of wave oscillators to a pcm position given in percentage. The oscillators will seek to the given position syncronously."; 01596 In wosc_seq = ("Wave Oscilators", "", ":flagstodo"); 01597 In pos_perc = ("pos-perc", "", ":flagstodo"); 01598 } 01599 Real string_extract_number (String string, String format, Real aux_base, Real dflt) { 01600 Info help = "Retrieve numbers from a string."; 01601 In string = ("string", "", ":flagstodo"); 01602 In format = ("format", "", ":flagstodo"); 01603 In aux_base = ("aux-base", "", ":flagstodo"); 01604 In dflt = ("dflt", "", ":flagstodo"); 01605 Out number = ("number", "", ":flagstodo"); 01606 } 01607 String type_authors (String type) { 01608 Info help = "Retrieve the authors who implemented a specific type."; 01609 In type = ("type", "", ":flagstodo"); 01610 Out string = ("string", "", ":flagstodo"); 01611 } 01612 String type_blurb (String type) { 01613 Info help = "Retrieve the description of a specific type."; 01614 In type = ("type", "", ":flagstodo"); 01615 Out string = ("string", "", ":flagstodo"); 01616 } 01617 String type_license (String type) { 01618 Info help = "Retrieve the license of a type impementation."; 01619 In type = ("type", "", ":flagstodo"); 01620 Out string = ("string", "", ":flagstodo"); 01621 } 01622 String type_options (String type) { 01623 Info help = "Retrieve the options of a specific type."; 01624 In type = ("type", "", ":flagstodo"); 01625 Out string = ("string", "", ":flagstodo"); 01626 } 01627 };