BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bsehack.idl
Go to the documentation of this file.
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 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines