BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bsehack.idl
Go to the documentation of this file.
1  /* this file was generated from make bsebasics.idl */
2 // bseprocidl: type BseREADWRITE excluded from generation
3 // bseprocidl: type BseSTORAGE excluded from generation
4 // bseprocidl: type BseSTANDARD excluded from generation
5 // bseprocidl: type BseStandardRdonly excluded from generation
6 // bseprocidl: type BseGUI excluded from generation
7 // bseprocidl: type BseGuiRdonly excluded from generation
8 // bseprocidl: type BseGuiReadable excluded from generation
9 // bseprocidl: type BseSkipDefault excluded from generation
10 // bseprocidl: type BseSkipUndo excluded from generation
11 // bseprocidl: type BseDEFAULT excluded from generation
12 // bseprocidl: type BseMAXINT excluded from generation
13 // bseprocidl: type BseMININT excluded from generation
14 // bseprocidl: type BseMAXNUM excluded from generation
15 // bseprocidl: type BseMINNUM excluded from generation
16 // bseprocidl: type BseMINDB excluded from generation
17 // bseprocidl: type BseIntSeq excluded from generation
18 // bseprocidl: type BseTypeSeq excluded from generation
19 // bseprocidl: type BseStringSeq excluded from generation
20 // bseprocidl: type BseFloatSeq excluded from generation
21 // bseprocidl: type BseMusicalTuningType excluded from generation
22 // bseprocidl: type BseMidiSignalType excluded from generation
23 // bseprocidl: type BseMidiControlType excluded from generation
24 // bseprocidl: type BseMidiChannelEventType excluded from generation
25 // bseprocidl: type BseMidiChannelEvent excluded from generation
26 // bseprocidl: type BseNoteSeq excluded from generation
27 // bseprocidl: type BseItemSeq excluded from generation
28 // bseprocidl: type BsePropertyCandidates excluded from generation
29 // bseprocidl: type BsePartNote excluded from generation
30 // bseprocidl: type BsePartNoteSeq excluded from generation
31 // bseprocidl: type BsePartControl excluded from generation
32 // bseprocidl: type BsePartControlSeq excluded from generation
33 // bseprocidl: type BseNoteDescription excluded from generation
34 // bseprocidl: type BseNoteSequence excluded from generation
35 // bseprocidl: type BsePixelSeq excluded from generation
36 // bseprocidl: type BseIcon excluded from generation
37 // bseprocidl: type BseCategory excluded from generation
38 // bseprocidl: type BseCategorySeq excluded from generation
39 // bseprocidl: type BseDot excluded from generation
40 // bseprocidl: type BseDotSeq excluded from generation
41 // bseprocidl: type BsePartLink excluded from generation
42 // bseprocidl: type BsePartLinkSeq excluded from generation
43 // bseprocidl: type BseTrackPart excluded from generation
44 // bseprocidl: type BseTrackPartSeq excluded from generation
45 // bseprocidl: type BseSongTiming excluded from generation
46 // bseprocidl: type BseSampleFileInfo excluded from generation
47 // bseprocidl: type BseDefaultAuthor excluded from generation
48 // bseprocidl: type BseDefaultLicense excluded from generation
49 // bseprocidl: type BseUserDataPath excluded from generation
50 // bseprocidl: type BseDefaultSamplePath excluded from generation
51 // bseprocidl: type BseDefaultEffectsPath excluded from generation
52 // bseprocidl: type BseDefaultInstrumentsPath excluded from generation
53 // bseprocidl: type BseDefaultScriptsPath excluded from generation
54 // bseprocidl: type BseDefaultPluginsPath excluded from generation
55 // bseprocidl: type BseGConfig excluded from generation
56 // bseprocidl: type BseCxxBase excluded from generation
57 // bseprocidl: type BseEffect excluded from generation
58 // bseprocidl: type BseProbeFeatures excluded from generation
59 // bseprocidl: type BseProbe excluded from generation
60 // bseprocidl: type BseProbeSeq excluded from generation
61 // bseprocidl: type BseProbeRequest excluded from generation
62 // bseprocidl: type BseProbeRequestSeq excluded from generation
63 // bseprocidl: type BseSourceRequestProbes excluded from generation
64 // bseprocidl: type BseSourceMassRequest excluded from generation
65 // bseprocidl: type BseSourceGetTickStamp excluded from generation
66 // bseprocidl: type BseSourceGetMixFreq excluded from generation
67 namespace Bse {
68  enum BiquadFilterType {
69  BIQUAD_FILTER_RESONANT_LOWPASS = Enum (1, "lowpass"),
70  BIQUAD_FILTER_RESONANT_HIGHPASS = Enum (2, "highpass"),
71  };
72 
73  enum RegistrationType {
74  REGISTER_PLUGIN = Enum (1, "plugin"),
75  REGISTER_SCRIPT = Enum (2, "script"),
76  REGISTER_DONE = Enum (256, "done"),
77  };
78 
79  enum ErrorType {
80  ERROR_NONE = Enum (0, "none"),
81  ERROR_INTERNAL = Enum (1, "internal"),
82  ERROR_UNKNOWN = Enum (2, "unknown"),
83  ERROR_IO = Enum (3, "io"),
84  ERROR_PERMS = Enum (4, "perms"),
85  ERROR_FILE_BUSY = Enum (5, "file-busy"),
86  ERROR_FILE_EXISTS = Enum (6, "file-exists"),
87  ERROR_FILE_EOF = Enum (7, "file-eof"),
88  ERROR_FILE_EMPTY = Enum (8, "file-empty"),
89  ERROR_FILE_NOT_FOUND = Enum (9, "file-not-found"),
90  ERROR_FILE_IS_DIR = Enum (10, "file-is-dir"),
91  ERROR_FILE_OPEN_FAILED = Enum (11, "file-open-failed"),
92  ERROR_FILE_SEEK_FAILED = Enum (12, "file-seek-failed"),
93  ERROR_FILE_READ_FAILED = Enum (13, "file-read-failed"),
94  ERROR_FILE_WRITE_FAILED = Enum (14, "file-write-failed"),
95  ERROR_MANY_FILES = Enum (15, "many-files"),
96  ERROR_NO_FILES = Enum (16, "no-files"),
97  ERROR_NO_SPACE = Enum (17, "no-space"),
98  ERROR_NO_MEMORY = Enum (18, "no-memory"),
99  ERROR_NO_HEADER = Enum (19, "no-header"),
100  ERROR_NO_SEEK_INFO = Enum (20, "no-seek-info"),
101  ERROR_NO_DATA = Enum (21, "no-data"),
102  ERROR_DATA_CORRUPT = Enum (22, "data-corrupt"),
103  ERROR_WRONG_N_CHANNELS = Enum (23, "wrong-n-channels"),
104  ERROR_FORMAT_INVALID = Enum (24, "format-invalid"),
105  ERROR_FORMAT_UNKNOWN = Enum (25, "format-unknown"),
106  ERROR_DATA_UNMATCHED = Enum (26, "data-unmatched"),
107  ERROR_TEMP = Enum (27, "temp"),
108  ERROR_WAVE_NOT_FOUND = Enum (28, "wave-not-found"),
109  ERROR_CODEC_FAILURE = Enum (29, "codec-failure"),
110  ERROR_UNIMPLEMENTED = Enum (30, "unimplemented"),
111  ERROR_INVALID_PROPERTY = Enum (31, "invalid-property"),
112  ERROR_INVALID_MIDI_CONTROL = Enum (32, "invalid-midi-control"),
113  ERROR_PARSE_ERROR = Enum (33, "parse-error"),
114  ERROR_SPAWN = Enum (34, "spawn"),
115  ERROR_DEVICE_NOT_AVAILABLE = Enum (35, "device-not-available"),
116  ERROR_DEVICE_ASYNC = Enum (36, "device-async"),
117  ERROR_DEVICE_BUSY = Enum (37, "device-busy"),
118  ERROR_DEVICE_FORMAT = Enum (38, "device-format"),
119  ERROR_DEVICE_BUFFER = Enum (39, "device-buffer"),
120  ERROR_DEVICE_LATENCY = Enum (40, "device-latency"),
121  ERROR_DEVICE_CHANNELS = Enum (41, "device-channels"),
122  ERROR_DEVICE_FREQUENCY = Enum (42, "device-frequency"),
123  ERROR_DEVICES_MISMATCH = Enum (43, "devices-mismatch"),
124  ERROR_SOURCE_NO_SUCH_MODULE = Enum (44, "source-no-such-module"),
125  ERROR_SOURCE_NO_SUCH_ICHANNEL = Enum (45, "source-no-such-ichannel"),
126  ERROR_SOURCE_NO_SUCH_OCHANNEL = Enum (46, "source-no-such-ochannel"),
127  ERROR_SOURCE_NO_SUCH_CONNECTION = Enum (47, "source-no-such-connection"),
128  ERROR_SOURCE_PRIVATE_ICHANNEL = Enum (48, "source-private-ichannel"),
129  ERROR_SOURCE_ICHANNEL_IN_USE = Enum (49, "source-ichannel-in-use"),
130  ERROR_SOURCE_CHANNELS_CONNECTED = Enum (50, "source-channels-connected"),
131  ERROR_SOURCE_CONNECTION_INVALID = Enum (51, "source-connection-invalid"),
132  ERROR_SOURCE_PARENT_MISMATCH = Enum (52, "source-parent-mismatch"),
133  ERROR_SOURCE_BAD_LOOPBACK = Enum (53, "source-bad-loopback"),
134  ERROR_SOURCE_BUSY = Enum (54, "source-busy"),
135  ERROR_SOURCE_TYPE_INVALID = Enum (55, "source-type-invalid"),
136  ERROR_PROC_NOT_FOUND = Enum (56, "proc-not-found"),
137  ERROR_PROC_BUSY = Enum (57, "proc-busy"),
138  ERROR_PROC_PARAM_INVAL = Enum (58, "proc-param-inval"),
139  ERROR_PROC_EXECUTION = Enum (59, "proc-execution"),
140  ERROR_PROC_ABORT = Enum (60, "proc-abort"),
141  ERROR_NO_ENTRY = Enum (61, "no-entry"),
142  ERROR_NO_EVENT = Enum (62, "no-event"),
143  ERROR_NO_TARGET = Enum (63, "no-target"),
144  ERROR_NOT_OWNER = Enum (64, "not-owner"),
145  ERROR_INVALID_OFFSET = Enum (65, "invalid-offset"),
146  ERROR_INVALID_DURATION = Enum (66, "invalid-duration"),
147  ERROR_INVALID_OVERLAP = Enum (67, "invalid-overlap"),
148  };
149 
150  enum ProjectState {
151  PROJECT_INACTIVE = Enum (0, "inactive"),
152  PROJECT_ACTIVE = Enum (1, "active"),
153  PROJECT_PLAYING = Enum (2, "playing"),
154  };
155 
156  enum StandardOscWaveType {
157  STANDARD_OSC_SINE = Enum (1, "Sine"),
158  STANDARD_OSC_TRIANGLE = Enum (2, "Triangle"),
159  STANDARD_OSC_SAW_RISE = Enum (3, "Rising Saw"),
160  STANDARD_OSC_SAW_FALL = Enum (4, "Falling Saw"),
161  STANDARD_OSC_PEAK_RISE = Enum (5, "Rising Peak"),
162  STANDARD_OSC_PEAK_FALL = Enum (6, "Falling Peak"),
163  STANDARD_OSC_MOOG_SAW = Enum (7, "Moog Saw"),
164  STANDARD_OSC_SQUARE = Enum (8, "Square"),
165  STANDARD_OSC_PULSE = Enum (9, "Pulse"),
166  };
167 
168  interface Bus;
169  interface CSynth;
170  interface DataPocket;
171  interface EditableSample;
172  interface Janitor;
173  interface MidiNotifier;
174  interface MidiSynth;
175  interface Part;
176  interface Project;
177  interface Song;
178  interface Source;
179  interface Track;
180  interface Wave;
181  interface WaveRepo;
182  interface Item {
183  void add_parasite (String path, Rec parasite) {
184  Info help = "Add a new parasite to an item.";
185  In path = ("Path", "", ":flagstodo");
186  In parasite = ("Parasite", "", ":flagstodo");
187  }
188  Bool check_is_a (String type_name) {
189  Info help = "Check whether an item has a certain type.";
190  In type_name = ("Type Name", "", ":flagstodo");
191  Out is_a = ("is-a", "", FALSE, ":flagstodo");
192  }
193  void clear_undo () {
194  Info help = "Call the clear-undo function of the project corresponding to this item if any.";
195  }
196  Item common_ancestor (Item item2) {
197  Info help = "Retrieve the common ancestor of two items if there's any.";
198  In item2 = ("Item2", "Second item", ":flagstodo");
199  Out ancestor = ("ancestor", "Common ancestor of both items", ":flagstodo");
200  }
201  Bool editable_property (String property_name) {
202  Info help = "Test whether a property is editable according to object state and property options.";
203  In property_name = ("property-name", "Item property name", ":flagstodo");
204  Out editable = ("editable", "", FALSE, ":flagstodo");
205  }
206  Icon get_icon () {
207  Info help = "Get the current icon of an item.";
208  Out icon = ("icon", "", ":flagstodo");
209  }
210  String get_name () {
211  Info help = "Retrieve an item's name.";
212  Out name = ("Name", "", ":flagstodo");
213  }
214  String get_name_or_type () {
215  Info help = "Retrieve an item's name or type if it has no name.";
216  Out name = ("Name", "", ":flagstodo");
217  }
218  Rec get_parasite (String path) {
219  Info help = "Retrieve a parasite from an item.";
220  In path = ("Path", "", ":flagstodo");
221  Out parasite = ("Parasite", "", ":flagstodo");
222  }
223  Item get_parent () {
224  Info help = "Retrieve an item's parent.";
225  Out parent = ("Parent", "", ":flagstodo");
226  }
227  Item get_project () {
228  Info help = "Retrieve an item's project.";
229  Out project = ("Project", "", ":flagstodo");
230  }
231  PropertyCandidates get_property_candidates (String property_name) {
232  Info help = "Retrieve tentative values for an item or item sequence property.";
233  In property_name = ("property-name", "Item property name", ":flagstodo");
234  Out candidates = ("Candidates", "", ":flagstodo");
235  }
236  Int get_seqid () {
237  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.";
238  Out seq_id = ("Sequential ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
239  }
240  String get_type () {
241  Info help = "Retrieve an item's type name.";
242  Out string = ("string", "", ":flagstodo");
243  }
244  String get_type_authors () {
245  Info help = "Retrieve authors of an item's type implementation.";
246  Out string = ("string", "", ":flagstodo");
247  }
248  String get_type_blurb () {
249  Info help = "Retrieve an item's type description.";
250  Out string = ("string", "", ":flagstodo");
251  }
252  String get_type_license () {
253  Info help = "Retrieve the license for an item's type implementation.";
254  Out string = ("string", "", ":flagstodo");
255  }
256  String get_type_name () {
257  Info help = "Retrieve an item's type name.";
258  Out string = ("string", "", ":flagstodo");
259  }
260  String get_uname_path () {
261  Info help = "Retrieve the project relative uname path for this item.";
262  Out uname_path = ("uname-path", "", ":flagstodo");
263  }
264  void group_undo (String name) {
265  Info help = "Request multiple modifying actions on an item to be grouped together as single undo operation.";
266  In name = ("name", "A name for the undo group to be created", ":flagstodo");
267  }
268  Bool internal () {
269  Info help = "Check whether an item is internal, i.e. owned by another non-internal item.";
270  Out internal = ("Internal", "", FALSE, ":flagstodo");
271  }
272  StringSeq list_parasites (String path) {
273  Info help = "List parasites within a parasite path segment.";
274  In path = ("Path", "", ":flagstodo");
275  Out paths = ("Parasite Paths", "", ":flagstodo");
276  }
277  void redo () {
278  Info help = "Call the redo function of the project corresponding to this item if any.";
279  }
280  Int redo_depth () {
281  Info help = "Call the redo-depth function of the project corresponding to this item if any.";
282  Out redo_depth = ("redo-depth", "Number of times redo can be called", 0, 0, SFI_MAXINT, 1, ":flagstodo");
283  }
284  void set_name (String name) {
285  Info help = "Set an item's name.";
286  In name = ("Name", "", ":flagstodo");
287  }
288  void set_parasite (String path, Rec parasite) {
289  Info help = "Set or change a parasite on an item.";
290  In path = ("Path", "", ":flagstodo");
291  In parasite = ("Parasite", "", ":flagstodo");
292  }
293  void undo () {
294  Info help = "Call the undo function of the project corresponding to this item if any.";
295  }
296  Int undo_depth () {
297  Info help = "Call the undo-depth function of the project corresponding to this item if any.";
298  Out undo_depth = ("undo-depth", "Number of times undo can be called", 0, 0, SFI_MAXINT, 1, ":flagstodo");
299  }
300  void ungroup_undo () {
301  Info help = "Ends the undo grouping opened up by a previous group-undo() call.";
302  }
303  void unuse () {
304  Info help = "Decrement use count for when an item is not needed anymore.";
305  }
306  Item use () {
307  Info help = "Increment use count to keep an item alive.";
308  Out used_item = ("Item", "", ":flagstodo");
309  }
310  signal parasites_added (String a);
311  signal parasite_changed (String a);
312  property Int seqid = ("Sequential ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
313  };
314 
315  interface EditableSample : Item {
316  void close () {
317  Info help = "Close an opened sample.";
318  }
319  FloatSeq collect_stats (Int voffset, Real offset_scale, Int block_size, Int stepping, Int max_pairs) {
320  Info help = "Collect statistics from sample blocks as (minimum, maximum) pairs.";
321  In voffset = ("voffset", "Offset of first stat block", 0, 0, SFI_MAXINT, 1, ":flagstodo");
322  In offset_scale = ("offset-scale", "Factor to scale voffset increments with", ":flagstodo");
323  In block_size = ("block-size", "Block size to compute stat pairs from", 0, 0, SFI_MAXINT, 1, ":flagstodo");
324  In stepping = ("stepping", "Stepping within a stat block", 0, 0, SFI_MAXINT, 1, ":flagstodo");
325  In max_pairs = ("max-pairs", "Maximum number of (min, max) pairs to collect", 1, 0, SFI_MAXINT, 1, ":flagstodo");
326  Out sample_block = ("sample-block", "Block of samples", ":flagstodo");
327  }
328  Int get_length () {
329  Info help = "Return the number of values in the sample.";
330  Out length = ("length", "Number of values", 1, 0, SFI_MAXINT, 1, ":flagstodo");
331  }
332  Int get_n_channels () {
333  Info help = "Return the number of channels in the sample.";
334  Out n_channels = ("n-channels", "Number of channels", 0, 0, SFI_MAXINT, 1, ":flagstodo");
335  }
336  Real get_osc_freq () {
337  Info help = "Return the oscillator frequency for the sample.";
338  Out osc_freq = ("osc-freq", "Oscillator Frequency", ":flagstodo");
339  }
340  ErrorType open () {
341  Info help = "Open the sample for reading.";
342  Out error = ("Error", "", ":flagstodo");
343  }
344  FloatSeq read_samples (Int voffset) {
345  Info help = "Read a set of samples from a specific offset.";
346  In voffset = ("voffset", "Value offset", 0, 0, SFI_MAXINT, 1, ":flagstodo");
347  Out sample_block = ("sample-block", "Block of samples", ":flagstodo");
348  }
349  signal changed ();
350  };
351 
352  interface Source : Item {
353  void clear_inputs () {
354  Info help = "Disconnect all module inputs.";
355  }
356  void clear_outputs () {
357  Info help = "Disconnect all module outputs.";
358  }
359  Int get_automation_channel (String property_name) {
360  Info help = "Get MIDI channel from an automation property.";
361  In property_name = ("property-name", "Item property name", ":flagstodo");
362  Out midi_channel = ("midi-channel", "", 0, 0, 99, 1, ":flagstodo");
363  }
364  MidiControlType get_automation_control (String property_name) {
365  Info help = "Get control type from an automation property.";
366  In property_name = ("property-name", "Item property name", ":flagstodo");
367  Out control_type = ("control-type", "", ":flagstodo");
368  }
369  Bool has_output (Int ochannel) {
370  Info help = "Check whether a module's output channel is connected.";
371  In ochannel = ("ochannel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
372  Out has_outputs = ("has-outputs", "", FALSE, ":flagstodo");
373  }
374  Bool has_outputs () {
375  Info help = "Check whether a module has output channel connections.";
376  Out has_outputs = ("Has Outputs", "", FALSE, ":flagstodo");
377  }
378  String ichannel_blurb (Int input_channel) {
379  Info help = "Get input channel description.";
380  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
381  Out channel_blurb = ("Channel Blurb", "", ":flagstodo");
382  }
383  Int ichannel_get_n_joints (Int input_channel) {
384  Info help = "Retrieve the number of inputs connected to an input channel.";
385  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
386  Out n_joints = ("Number of Connections", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
387  }
388  Int ichannel_get_ochannel (Int input_channel, Int input_joint) {
389  Info help = "Retrieve output channel of the module connected to a specific joint of an input channel.";
390  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
391  In input_joint = ("Input Joint", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
392  Out ochannel = ("Output Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
393  }
394  Source ichannel_get_osource (Int input_channel, Int input_joint) {
395  Info help = "Retrieve output module connected to a specific joint of an input channel";
396  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
397  In input_joint = ("Input Joint", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
398  Out osource = ("Output Source", "", ":flagstodo");
399  }
400  String ichannel_ident (Int input_channel) {
401  Info help = "Get canonical input channel name.";
402  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
403  Out channel_ident = ("Channel Name", "", ":flagstodo");
404  }
405  String ichannel_label (Int input_channel) {
406  Info help = "Get input channel name.";
407  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
408  Out channel_label = ("Channel Name", "", ":flagstodo");
409  }
410  Bool is_joint_ichannel (String input_channel) {
411  Info help = "Check if an input channel is a joint (multi-connect) channel.";
412  In input_channel = ("Input Channel", "", ":flagstodo");
413  Out is_jchannel = ("Is Joint Channel", "", FALSE, ":flagstodo");
414  }
415  Bool is_joint_ichannel_by_id (Int input_channel) {
416  Info help = "Check if an input channel is a joint (multi-connect) channel.";
417  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
418  Out is_jchannel = ("Is Joint Channel", "", FALSE, ":flagstodo");
419  }
420  Bool is_prepared () {
421  Info help = "Check whether a source is prepared for synthesis processing.";
422  Out is_prepared = ("is-prepared", "", FALSE, ":flagstodo");
423  }
424  Int n_ichannels () {
425  Info help = "Get the number of input channels of a module.";
426  Out n_channels = ("Number of Channels", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
427  }
428  Int n_ochannels () {
429  Info help = "Get the number of output channels of a module.";
430  Out n_channels = ("Number of Channels", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
431  }
432  String ochannel_blurb (Int output_channel) {
433  Info help = "Get output channel description.";
434  In output_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
435  Out channel_blurb = ("Channel Blurb", "", ":flagstodo");
436  }
437  String ochannel_ident (Int output_channel) {
438  Info help = "Get canonical output channel name.";
439  In output_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
440  Out channel_ident = ("Channel Name", "", ":flagstodo");
441  }
442  String ochannel_label (Int output_channel) {
443  Info help = "Get output channel name.";
444  In output_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
445  Out channel_label = ("Channel Name", "", ":flagstodo");
446  }
447  ErrorType set_automation (String property_name, Int midi_channel, MidiControlType control_type) {
448  Info help = "Setup automation parameters for a property.";
449  In property_name = ("property-name", "Item property name", ":flagstodo");
450  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");
451  In control_type = ("Control Type", "The type of control events used for automation", ":flagstodo");
452  Out error = ("Error", "", ":flagstodo");
453  }
454  ErrorType set_input (String input_channel, Source omodule, String output_channel) {
455  Info help = "Connect a module input to another module's output.";
456  In input_channel = ("Input Channel", "", ":flagstodo");
457  In omodule = ("Output Module", "", ":flagstodo");
458  In output_channel = ("Output Channel", "", ":flagstodo");
459  Out error = ("Error", "", ":flagstodo");
460  }
461  ErrorType set_input_by_id (Int input_channel, Source omodule, Int output_channel) {
462  Info help = "Connect a module input to another module's output.";
463  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
464  In omodule = ("Output Module", "", ":flagstodo");
465  In output_channel = ("Output Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
466  Out error = ("Error", "", ":flagstodo");
467  }
468  void set_pos (Real x_pos, Real y_pos) {
469  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.";
470  In x_pos = ("X Position", "", ":flagstodo");
471  In y_pos = ("Y Position", "", ":flagstodo");
472  }
473  ErrorType unset_input (String input_channel, Source omodule, String output_channel) {
474  Info help = "Disconnect a module input.";
475  In input_channel = ("Input Channel", "", ":flagstodo");
476  In omodule = ("Output Module", "", ":flagstodo");
477  In output_channel = ("Output Channel", "", ":flagstodo");
478  Out error = ("Error", "", ":flagstodo");
479  }
480  ErrorType unset_input_by_id (Int input_channel, Source omodule, Int output_channel) {
481  Info help = "Disconnect a module input.";
482  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
483  In omodule = ("Output Module", "", ":flagstodo");
484  In output_channel = ("Output Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
485  Out error = ("Error", "", ":flagstodo");
486  }
487  signal probes (ProbeSeq a);
488  signal io_changed ();
489  property Real pos_x = ("Position X", "", ":flagstodo");
490  property Real pos_y = ("Position Y", "", ":flagstodo");
491  };
492 
493  interface WaveOsc : Source {
494  void request_pcm_position () {
495  Info help = "Request emission of the ::notify_pcm_position signal.";
496  }
497  void set_from_editable_sample (EditableSample esample) {
498  Info help = "Set wave to play from editable sample, bypassing undo and storage mechanisms.";
499  In esample = ("esample", "Editable Sample", ":flagstodo");
500  }
501  signal notify_pcm_position (Num a, Int b);
502  property Wave wave = ("Wave", "Wave used as oscillator source", ":flagstodo");
503  property Int channel = ("Channel", "The audio channel to play, usually 1 is left, 2 is right", 1, 1, 256, 2, ":flagstodo");
504  property Real fm_perc = ("Input Modulation [%]", "Modulation Strength for linear frequency modulation", ":flagstodo");
505  property Bool exponential_fm = ("Exponential FM", "Perform exponential frequency modulation instead of linear", FALSE, ":flagstodo");
506  property Real fm_n_octaves = ("Octaves", "Number of octaves to be affected by exponential frequency modulation", ":flagstodo");
507  };
508 
509  interface SubOPort : Source {
510  property String out_port_1 = ("Output Port 1", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
511  property String out_port_2 = ("Output Port 2", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
512  property String out_port_3 = ("Output Port 3", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
513  property String out_port_4 = ("Output Port 4", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
514  };
515 
517  property String out_port_1 = ("out-port-1", "", ":flagstodo");
518  property String out_port_2 = ("out-port-2", "", ":flagstodo");
519  property String out_port_3 = ("out-port-3", "", ":flagstodo");
520  property String out_port_4 = ("out-port-4", "", ":flagstodo");
521  };
522 
523  interface ContextMerger : Source {
524  };
525 
526  interface Track : ContextMerger {
527  ErrorType ensure_output () {
528  Info help = "Ensure the track has an output connection to a bus.";
529  Out error = ("error", "", ":flagstodo");
530  }
531  Int get_last_tick () {
532  Info help = "Retrieve the last tick for this track.";
533  Out last_tick = ("Last Tick", "", 0, 0, SFI_MAXINT, 384, ":flagstodo");
534  }
535  Source get_output_source () {
536  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.";
537  Out source = ("source", "", ":flagstodo");
538  }
539  Part get_part (Int tick) {
540  Info help = "Get the part starting at a specific tick position.";
541  In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
542  Out part = ("Part", "", ":flagstodo");
543  }
544  SongTiming get_timing (Int tick) {
545  Info help = "Retrieve song timing information at a specific tick.";
546  In tick = ("Tick", "Tick to retrieve timing info about", 0, 0, SFI_MAXINT, 384, ":flagstodo");
547  Out timing = ("Timing", "Song Timing", ":flagstodo");
548  }
549  Int insert_part (Int tick, Part part) {
550  Info help = "Insert a part into a track and retrieve the corresponding link id.";
551  In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
552  In part = ("Part", "", ":flagstodo");
553  Out id = ("Link ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
554  }
555  TrackPartSeq list_parts () {
556  Info help = "List parts scheduled in a track, sorted by tick.";
557  Out part_list = ("Part List", "", ":flagstodo");
558  }
559  ItemSeq list_parts_uniq () {
560  Info help = "List all parts contained in a track.";
561  Out part_list = ("Part List", "", ":flagstodo");
562  }
563  void remove_link (Int id) {
564  Info help = "Remove a specific part link by ID from a track.";
565  In id = ("Link ID", "", 0, 0, SFI_MAXINT, 384, ":flagstodo");
566  }
567  void remove_tick (Int tick) {
568  Info help = "Remove a part at specified tick from a track.";
569  In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
570  }
571  signal changed ();
572  property Bool muted = ("Muted", "", FALSE, ":flagstodo");
573  property CSynth snet = ("Synthesizer", "Synthesis network to be used as instrument", ":flagstodo");
574  property Wave wave = ("Wave", "Wave to be used as instrument", ":flagstodo");
575  property Int midi_channel = ("MIDI Channel", "Midi channel assigned to this track, 0 uses internal per-track channel", 0, 0, 99, 1, ":flagstodo");
576  property Int n_voices = ("Max Voices", "Maximum number of voices for simultaneous playback", 16, 1, 256, 1, ":flagstodo");
577  property CSynth pnet = ("Postprocessor", "Synthesis network to be used as postprocessor", ":flagstodo");
578  property ItemSeq outputs = ("Output Signals", "Mixer busses used as output for this track", ":flagstodo");
579  };
580 
581  interface Container : Source {
582  Item get_item (String item_type, Int seq_id) {
583  Info help = "Retrieve a containers immediate child from it's sequential id.";
584  In item_type = ("item-type", "Type of the item to retrieve", ":flagstodo");
585  In seq_id = ("seq-id", "Sequential ID", 0, 0, SFI_MAXINT, 1, ":flagstodo");
586  Out item = ("item", "The item with seqid as requested", ":flagstodo");
587  }
588  ItemSeq list_children () {
589  Info help = "Retrieve all immediate children of a container";
590  Out item_list = ("item-list", "", ":flagstodo");
591  }
592  Item lookup_item (String uname) {
593  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).";
594  In uname = ("UName", "Unique item name", ":flagstodo");
595  Out item = ("Item", "The item named by uname", ":flagstodo");
596  }
597  signal item_added (Item a);
598  signal item_remove (Item a, Int b);
599  };
600 
601  interface Super : Container {
602  property String author = ("Author", "Person changing or creating this object", ":flagstodo");
603  property String license = ("License", "Copyright license applying to this object", ":flagstodo");
604  property String copyright = ("copyright", "", ":flagstodo");
605  property Num creation_time = ("Creation Time", "", ":flagstodo");
606  property Num modification_time = ("Last modification time", "", ":flagstodo");
607  };
608 
609  interface SNet : Super {
610  ErrorType can_create_source (String module_type) {
611  Info help = "Check whether inserting a new module into a synthesis network is possible";
612  In module_type = ("Module Type", "", ":flagstodo");
613  Out error = ("Error", "", ":flagstodo");
614  }
615  Source create_source (String module_type) {
616  Info help = "Insert a new module into a synthesis network";
617  In module_type = ("Module Type", "", ":flagstodo");
618  Out module = ("New Module", "", ":flagstodo");
619  }
620  ErrorType remove_source (Source module) {
621  Info help = "Remove an existing module from its synthesis network";
622  In module = ("Module", "", ":flagstodo");
623  Out error = ("Error", "", ":flagstodo");
624  }
625  Bool supports_user_synths () {
626  Info help = "Check whether users may edit synthesis modules of this network";
627  Out user_synth = ("User Synth", "", FALSE, ":flagstodo");
628  }
629  signal port_unregistered ();
630  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");
631  };
632 
633  interface CSynth : SNet {
634  };
635 
636  interface MidiSynth : SNet {
637  property Int midi_channel = ("MIDI Channel", "", 1, 1, 99, 1, ":flagstodo");
638  property Int n_voices = ("Max Voices", "Maximum number of voices for simultaneous playback", 16, 1, 256, 1, ":flagstodo");
639  property CSynth snet = ("Synthesizer", "Synthesis network to be used as MIDI instrument", ":flagstodo");
640  property CSynth pnet = ("Postprocessor", "Synthesis network to be used as postprocessor", ":flagstodo");
641  property Real volume_f = ("Master [float]", "", ":flagstodo");
642  property Real volume_dB = ("Master [dB]", "", ":flagstodo");
643  property Int volume_perc = ("Master [%]", "", 100, 0, 1584, 1, ":flagstodo");
644  property Bool auto_activate = ("auto-activate", "", TRUE, ":flagstodo");
645  };
646 
647  interface Song : SNet {
648  Bus create_bus () {
649  Info help = "Create a new mixer bus for a Song.";
650  Out bus = ("bus", "", ":flagstodo");
651  }
652  Part create_part () {
653  Info help = "Create a new Part in a Song.";
654  Out part = ("part", "", ":flagstodo");
655  }
656  Track create_track () {
657  Info help = "Create a new Track for a Song.";
658  Out track = ("Track", "", ":flagstodo");
659  }
660  Bus ensure_master_bus () {
661  Info help = "Retrieve master output bus of a song, will create one if it doesn't exist.";
662  Out bus = ("bus", "", ":flagstodo");
663  }
664  void ensure_track_links () {
665  Info help = "Ensure that each part in a song is inserted into at least one track.";
666  }
667  Track find_any_track_for_part (Part part) {
668  Info help = "Find the first track that contains part, suitable to check for orphan parts.";
669  In part = ("Part", "", ":flagstodo");
670  Out track = ("Track", "", ":flagstodo");
671  }
672  Track find_track_for_part (Part part) {
673  Info help = "Find a track suitable for playing notes of a given part.";
674  In part = ("Part", "", ":flagstodo");
675  Out track = ("Track", "", ":flagstodo");
676  }
677  Bus get_master_bus () {
678  Info help = "Retrieve master output bus of a song if it exists.";
679  Out bus = ("bus", "", ":flagstodo");
680  }
681  SongTiming get_timing (Int tick) {
682  Info help = "Retrieve song timing information at a specific tick.";
683  In tick = ("Tick", "Tick to retrieve timing info about", 0, 0, SFI_MAXINT, 384, ":flagstodo");
684  Out timing = ("Timing", "Song Timing", ":flagstodo");
685  }
686  void remove_bus (Bus bus) {
687  Info help = "Delete a mixer bus from a Song.";
688  In bus = ("bus", "", ":flagstodo");
689  }
690  void remove_part (Part part) {
691  Info help = "Delete a Part from a Song.";
692  In part = ("Part", "", ":flagstodo");
693  }
694  void remove_track (Track track) {
695  Info help = "Delete a Track from a Song.";
696  In track = ("Track", "", ":flagstodo");
697  }
698  void synthesize_note (Track track, Int duration, Int note, Int fine_tune, Real velocity) {
699  Info help = "Synthesize a note on a song of an active project.";
700  In track = ("Track", "", ":flagstodo");
701  In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo");
702  In note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
703  In fine_tune = ("Fine Tune", "Fine tune in cents per semitone", 0, -100, 100, 10, ":flagstodo");
704  In velocity = ("Velocity", "", ":flagstodo");
705  }
706  signal pointer_changed (Int a);
707  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");
708  property Int tpqn = ("Ticks", "Number of ticks per quarter note", 384, 384, 384, 0, ":flagstodo");
709  property Int numerator = ("Numerator", "Measure numerator", 4, 1, 256, 1, ":flagstodo");
710  property Int denominator = ("Denominator", "Measure denominator, must be a power of 2", 4, 1, 256, 0, ":flagstodo");
711  property Real bpm = ("Beats per minute", "", ":flagstodo");
712  property CSynth pnet = ("Postprocessor", "Synthesis network to be used as postprocessor", ":flagstodo");
713  property Bool auto_activate = ("auto-activate", "", TRUE, ":flagstodo");
714  property Bool loop_enabled = ("loop-enabled", "", FALSE, ":flagstodo");
715  property Int loop_left = ("loop-left", "", -1, -1, SFI_MAXINT, 384, ":flagstodo");
716  property Int loop_right = ("loop-right", "", -1, -1, SFI_MAXINT, 384, ":flagstodo");
717  property Int tick_pointer = ("tick-pointer", "", -1, -1, SFI_MAXINT, 384, ":flagstodo");
718  };
719 
720  interface WaveRepo : Super {
721  ErrorType load_file (String file_name) {
722  Info help = "Load wave from file";
723  In file_name = ("File Name", "The file to import waves from", ":flagstodo");
724  Out error = ("Error", "", ":flagstodo");
725  }
726  void remove_wave (Wave wave) {
727  Info help = "Remove a wave from repository";
728  In wave = ("Wave", "", ":flagstodo");
729  }
730  };
731 
732  interface Project : Container {
733  ErrorType import_midi_file (String file_name) {
734  Info help = "Import a song from a MIDI file.";
735  In file_name = ("MIDI File", "MIDI file name", ":flagstodo");
736  Out error = ("Error", "Error indicating possible failures", ":flagstodo");
737  }
738  ErrorType restore_from_file (String file_name) {
739  Info help = "Load a project from file";
740  In file_name = ("File", "Source file name", ":flagstodo");
741  Out error = ("Error", "Error indicating possible failures", ":flagstodo");
742  }
743  ErrorType store_bse (Super super, String file_name, Bool self_contained) {
744  Info help = "Save supers of a project into a BSE file. If no super is specified, the project itself is stored.";
745  In super = ("Super", "", ":flagstodo");
746  In file_name = ("File", "Destination file name", ":flagstodo");
747  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");
748  Out error = ("Error", "Error indicating possible failures", ":flagstodo");
749  }
750  ErrorType activate () {
751  Info help = "Activate a project, precondition to start playback.";
752  Out error = ("Error", "", ":flagstodo");
753  }
754  void auto_deactivate (Int msec_delay) {
755  Info help = "Automatically deactivate a project once playback stopped.";
756  In msec_delay = ("msec-delay", "Delay for deactivation in milliseconds", 0, -1, SFI_MAXINT, 1000, ":flagstodo");
757  }
758  Bool can_play () {
759  Info help = "Check whether project playback would makes sense.";
760  Out can_play = ("Can Play", "Whether project playback makes sense", FALSE, ":flagstodo");
761  }
762  void change_name (String name) {
763  Info help = "Change a project name without recording undo steps.";
764  In name = ("name", "", ":flagstodo");
765  }
766  void clean_dirty () {
767  Info help = "Clear a projects dirty flags.";
768  }
769  void clear_undo () {
770  Info help = "Delete all recorded undo or redo steps.";
771  }
772  CSynth create_csynth (String name) {
773  Info help = "Create a synthsizer network for this project.";
774  In name = ("Name", "Synth network name", ":flagstodo");
775  Out csynth = ("Synthesizer Network", "New synth network", ":flagstodo");
776  }
777  MidiSynth create_midi_synth (String name) {
778  Info help = "Create a MIDI synthesizer network for this project.";
779  In name = ("Name", "MIDI synth name", ":flagstodo");
780  Out midi_synth = ("MIDI Synthesizer", "New MIDI synth", ":flagstodo");
781  }
782  Song create_song (String name) {
783  Info help = "Create a song for this project.";
784  In name = ("Name", "Song name", ":flagstodo");
785  Out song = ("Song", "The new song", ":flagstodo");
786  }
787  void deactivate () {
788  Info help = "Deactivate the project, automatically stop playback.";
789  }
790  Item find_item (String uname_path) {
791  Info help = "Find an item within a project, given its uname path.";
792  In uname_path = ("uname-path", "", ":flagstodo");
793  Out item = ("item", "", ":flagstodo");
794  }
795  DataPocket get_data_pocket (String name) {
796  Info help = "Retrieve a specifically named data pocket for this project";
797  In name = ("Name", "Name of the data pocket", ":flagstodo");
798  Out data_pocket = ("Data Pocket", "The data pocket", ":flagstodo");
799  }
800  MidiNotifier get_midi_notifier () {
801  Info help = "Retrieve the project's midi notifier object.";
802  Out midi_notifier = ("midi-notifier", "", ":flagstodo");
803  }
804  ProjectState get_state () {
805  Info help = "Retrieve the current project state.";
806  Out state = ("State", "Project playback/activation state", ":flagstodo");
807  }
808  ItemSeq get_supers () {
809  Info help = "Retrieve all supers of this project.";
810  Out super_list = ("super-list", "", ":flagstodo");
811  }
812  WaveRepo get_wave_repo () {
813  Info help = "Ensure the project has a wave repository";
814  Out wrepo = ("Wave Repo", "The project's unique wave repo", ":flagstodo");
815  }
816  void inject_midi_control (Int midi_channel, Int midi_control, Real control_value) {
817  Info help = "Inject a MIDI control event into the project's MIDI receiver.";
818  In midi_channel = ("midi-channel", "", 1, 1, 99, 1, ":flagstodo");
819  In midi_control = ("midi-control", "", 7, 0, 127, 1, ":flagstodo");
820  In control_value = ("control-value", "", ":flagstodo");
821  }
822  Bool is_active () {
823  Info help = "Check whether a project is active";
824  Out is_active = ("is-active", "Whether the project is currently producing sound", FALSE, ":flagstodo");
825  }
826  Bool is_dirty () {
827  Info help = "Check whether a project is dirty (needs saving).";
828  Out dirty = ("dirty", "", TRUE, ":flagstodo");
829  }
830  Bool is_playing () {
831  Info help = "Check whether a project is currently playing";
832  Out is_playing = ("Is Playing", "Whether the project is currently playing songs or synths", FALSE, ":flagstodo");
833  }
834  StringSeq list_uname_paths (String item_type) {
835  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.";
836  In item_type = ("item-type", "", ":flagstodo");
837  Out uname_paths = ("Uname Paths", "", ":flagstodo");
838  }
839  ItemSeq match_items_by_uname (String item_type, String uname) {
840  Info help = "Retrieve all items of a specific type within a project with matching uname";
841  In item_type = ("item-type", "", ":flagstodo");
842  In uname = ("uname", "", ":flagstodo");
843  Out item_list = ("Item List", "", ":flagstodo");
844  }
845  ErrorType play () {
846  Info help = "Activate a project and start project playback (and already playing project is first halted).";
847  Out error = ("Error", "", ":flagstodo");
848  }
849  void redo () {
850  Info help = "Redo a previously undone operaiton in a project";
851  }
852  Int redo_depth () {
853  Info help = "Check whether a project can perform redo steps";
854  Out redo_depth = ("redo-depth", "Number of times redo can be called on the project", 0, 0, SFI_MAXINT, 1, ":flagstodo");
855  }
856  void remove_snet (SNet snet) {
857  Info help = "Remove an existing synthesizer network from this project.";
858  In snet = ("SNet", "Synthesizer Network", ":flagstodo");
859  }
860  void start_playback () {
861  Info help = "Start playback in an activated project.";
862  }
863  void stop () {
864  Info help = "Stop project playback and deactivate project.";
865  }
866  void stop_playback () {
867  Info help = "Stop project playback.";
868  }
869  void undo () {
870  Info help = "Undo a previous operation in a project";
871  }
872  Int undo_depth () {
873  Info help = "Check whether a project can perform undo steps";
874  Out undo_depth = ("undo-depth", "Number of times undo can be called on the project", 0, 0, SFI_MAXINT, 1, ":flagstodo");
875  }
876  signal state_changed (ProjectState a);
877  property Bool dirty = ("dirty", "Whether project needs saving", FALSE, ":flagstodo");
878  };
879 
880  interface Server : Container {
881  Bool can_load (String file_name) {
882  Info help = "Check whether a loader can be found for a wave file";
883  In file_name = ("File Name", "The file to find a loader for", ":flagstodo");
884  Out can_load = ("can-load", "", FALSE, ":flagstodo");
885  }
886  String get_custom_effect_dir () {
887  Info help = "Retrieve user specific effects directory.";
888  Out directory = ("directory", "", ":flagstodo");
889  }
890  String get_custom_instrument_dir () {
891  Info help = "Retrieve user specific instruments directory.";
892  Out directory = ("directory", "", ":flagstodo");
893  }
894  String get_demo_path () {
895  Info help = "Retrieve demo search path.";
896  Out path = ("path", "", ":flagstodo");
897  }
898  String get_effect_path () {
899  Info help = "Retrieve effect search path.";
900  Out path = ("path", "", ":flagstodo");
901  }
902  String get_instrument_path () {
903  Info help = "Retrieve instrument search path.";
904  Out path = ("path", "", ":flagstodo");
905  }
906  String get_ladspa_path () {
907  Info help = "Retrieve ladspa search path.";
908  Out path = ("path", "", ":flagstodo");
909  }
910  String get_mp3_version () {
911  Info help = "Retrieve BSE MP3 handler version.";
912  Out version = ("version", "", ":flagstodo");
913  }
914  String get_plugin_path () {
915  Info help = "Retrieve plugin search path.";
916  Out path = ("path", "", ":flagstodo");
917  }
918  String get_sample_path () {
919  Info help = "Retrieve sample search path.";
920  Out path = ("path", "", ":flagstodo");
921  }
922  String get_script_path () {
923  Info help = "Retrieve script search path.";
924  Out path = ("path", "", ":flagstodo");
925  }
926  String get_version () {
927  Info help = "Retrieve BSE version.";
928  Out version = ("version", "", ":flagstodo");
929  }
930  String get_vorbis_version () {
931  Info help = "Retrieve BSE Vorbis handler version.";
932  Out version = ("version", "", ":flagstodo");
933  }
934  Int n_scripts () {
935  Info help = "Return the number of scripts currently running on this server.";
936  Out n_connections = ("n-connections", "Number of Connections", 0, 0, SFI_MAXINT, 1, ":flagstodo");
937  }
938  Bool preferences_locked () {
939  Info help = "Returns whether the bse-preferences property is currently locked against modifications or not.";
940  Out locked = ("locked", "", FALSE, ":flagstodo");
941  }
942  void register_core_plugins () {
943  Info help = "Register core plugins.";
944  }
945  void register_ladspa_plugins () {
946  Info help = "Register LADSPA (Linux Audio Developer's Simple Plugin API) plugins.";
947  }
948  void register_scripts () {
949  Info help = "Register external scripts.";
950  }
951  void save_preferences () {
952  Info help = "Request the bse-preferences property to be saved into BSE's configuration file.";
953  }
954  void start_recording (String wave_file, Real n_seconds) {
955  Info help = "Start recording to a WAV file.";
956  In wave_file = ("wave-file", "", ":flagstodo");
957  In n_seconds = ("n-seconds", "Maximum number of recorded seconds", ":flagstodo");
958  }
959  Project use_new_project (String name) {
960  Info help = "Create a new project, owned by the caller (name is modified to be unique if necessary)";
961  In name = ("Project Name", "", ":flagstodo");
962  Out project = ("Project", "", ":flagstodo");
963  }
964  signal registration (RegistrationType a, String b, String c);
965  signal script_start (Janitor a);
966  signal script_error (String a, String b, String c);
967  property Rec bse_preferences = ("bse-preferences", "", ":flagstodo");
968  property String wave_file = ("WAVE File", "Name of the WAVE file used for recording BSE sound output", ":flagstodo");
969  property Bool log_messages = ("Log Messages", "Log messages through the log system", TRUE, ":flagstodo");
970  };
971 
972  interface Snooper : Source {
973  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");
974  };
975 
976  interface SubIPort : Source {
977  property String in_port_1 = ("Input Port 1", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
978  property String in_port_2 = ("Input Port 2", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
979  property String in_port_3 = ("Input Port 3", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
980  property String in_port_4 = ("Input Port 4", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
981  };
982 
983  interface InstrumentInput : SubIPort {
984  property String in_port_1 = ("in-port-1", "", ":flagstodo");
985  property String in_port_2 = ("in-port-2", "", ":flagstodo");
986  property String in_port_3 = ("in-port-3", "", ":flagstodo");
987  property String in_port_4 = ("in-port-4", "", ":flagstodo");
988  };
989 
990  interface MidiVoiceInput : Source {
991  };
992 
993  interface StandardOsc : Source {
994  property StandardOscWaveType wave_form = ("Wave", "Oscillator wave form", ":flagstodo");
995  property Real phase = ("Phase", "Initial phase of the oscillator wave form (cycle offset in degree)", ":flagstodo");
996  property Real base_freq = ("Frequency", "Oscillator frequency in Hertz, i.e. the number of oscillator cycles per second", ":flagstodo");
997  property Int base_note = ("Note", "Oscillator frequency as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo");
998  property Int transpose = ("Transpose", "Transposition of the oscillator frequency in semitones", 0, -72, 72, 12, ":flagstodo");
999  property Int fine_tune = ("Fine Tune", "Amount of detuning in cent (hundredth part of a semitone)", 0, -100, 100, 10, ":flagstodo");
1000  property Real fm_perc = ("Input Modulation [%]", "Strength of linear frequency modulation", ":flagstodo");
1001  property Bool exponential_fm = ("Exponential FM", "Perform exponential frequency modulation instead of linear", FALSE, ":flagstodo");
1002  property Real fm_n_octaves = ("Octaves", "Number of octaves to be affected by exponential frequency modulation", ":flagstodo");
1003  property Real self_perc = ("Self Modulation [%]", "Strength of self modulation", ":flagstodo");
1004  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");
1005  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");
1006  };
1007 
1008  interface BiquadFilter : Source {
1009  property BiquadFilterType filter_type = ("Filter Type", "The filter design type", ":flagstodo");
1010  property Real freq = ("Cutoff [Hz]", "Filter cutoff frequency in Hertz", ":flagstodo");
1011  property Int note = ("Note", "Filter cutoff frequency as note, converted to Hertz according to the current musical tuning", 81, 0, 131, 12, ":flagstodo");
1012  property Real gain = ("Gain [dB]", "", ":flagstodo");
1013  property Real fm_perc = ("Input Modulation [%]", "Strength of linear frequency modulation", ":flagstodo");
1014  property Bool exponential_fm = ("Exponential FM", "Perform exponential frequency modulation instead of linear", FALSE, ":flagstodo");
1015  property Real fm_n_octaves = ("Octaves", "Number of octaves to be affected by exponential frequency modulation", ":flagstodo");
1016  property Real gain_perc = ("Gain Modulation [%]", "Strength of gain modulation", ":flagstodo");
1017  };
1018 
1019  interface SubSynth : Source {
1020  property CSynth snet = ("Synthesizer", "Synthesis network to use as embedded sub network", ":flagstodo");
1021  property String in_port_1 = ("Input Port 1", "Output port name to interface from", ":flagstodo");
1022  property String out_port_1 = ("Output Port 1", "Input port name to interface to", ":flagstodo");
1023  property String in_port_2 = ("Input Port 2", "Output port name to interface from", ":flagstodo");
1024  property String out_port_2 = ("Output Port 2", "Input port name to interface to", ":flagstodo");
1025  property String in_port_3 = ("Input Port 3", "Output port name to interface from", ":flagstodo");
1026  property String out_port_3 = ("Output Port 3", "Input port name to interface to", ":flagstodo");
1027  property String in_port_4 = ("Input Port 4", "Output port name to interface from", ":flagstodo");
1028  property String out_port_4 = ("Output Port 4", "Input port name to interface to", ":flagstodo");
1029  property String in_port_5 = ("Input Port 5", "Output port name to interface from", ":flagstodo");
1030  property String out_port_5 = ("Output Port 5", "Input port name to interface to", ":flagstodo");
1031  property String in_port_6 = ("Input Port 6", "Output port name to interface from", ":flagstodo");
1032  property String out_port_6 = ("Output Port 6", "Input port name to interface to", ":flagstodo");
1033  property String in_port_7 = ("Input Port 7", "Output port name to interface from", ":flagstodo");
1034  property String out_port_7 = ("Output Port 7", "Input port name to interface to", ":flagstodo");
1035  property String in_port_8 = ("Input Port 8", "Output port name to interface from", ":flagstodo");
1036  property String out_port_8 = ("Output Port 8", "Input port name to interface to", ":flagstodo");
1037  };
1038 
1039  interface Bus : SubSynth {
1040  ErrorType connect_bus (Bus bus) {
1041  Info help = "Add a bus to the input list of a bus.";
1042  In bus = ("bus", "", ":flagstodo");
1043  Out error = ("error", "", ":flagstodo");
1044  }
1045  ErrorType connect_track (Track track) {
1046  Info help = "Add a track to the input list of a bus.";
1047  In track = ("track", "", ":flagstodo");
1048  Out error = ("error", "", ":flagstodo");
1049  }
1050  ErrorType disconnect_bus (Bus bus) {
1051  Info help = "Remove a bus from the input list of a bus.";
1052  In bus = ("bus", "", ":flagstodo");
1053  Out error = ("error", "", ":flagstodo");
1054  }
1055  ErrorType disconnect_track (Track track) {
1056  Info help = "Remove a track from the input list of a bus.";
1057  In track = ("track", "", ":flagstodo");
1058  Out error = ("error", "", ":flagstodo");
1059  }
1060  ErrorType ensure_output () {
1061  Info help = "Ensure that a bus has an output connection.";
1062  Out error = ("error", "", ":flagstodo");
1063  }
1064  property ItemSeq inputs = ("Input Signals", "Synthesis signals (from tracks and busses) used as bus input", ":flagstodo");
1065  property ItemSeq outputs = ("Output Signals", "Mixer busses used as output for synthesis signals", ":flagstodo");
1066  property CSynth snet = ("snet", "", ":flagstodo");
1067  property Bool mute = ("Mute", "Mute: turn off the bus volume", FALSE, ":flagstodo");
1068  property Bool solo = ("Solo", "Solo: mute all other busses", FALSE, ":flagstodo");
1069  property Bool sync = ("Sync", "Syncronize left and right volume", TRUE, ":flagstodo");
1070  property Real left_volume = ("Left Volume", "Volume adjustment in decibel of left bus channel", ":flagstodo");
1071  property Real right_volume = ("Right Volume", "Volume adjustment in decibel of right bus channel", ":flagstodo");
1072  property Bool master_output = ("Master Output", "", FALSE, ":flagstodo");
1073  };
1074 
1075  interface LadspaModule : Source {
1076  };
1077 
1078  interface Wave : Source {
1079  Real chunk_get_mix_freq (Int chunk_index) {
1080  Info help = "Retrieve mixing frequency of a wave chunk.";
1081  In chunk_index = ("Chunk Index", "Index of chunk", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1082  Out mix_freq = ("mix-freq", "", ":flagstodo");
1083  }
1084  Real chunk_get_osc_freq (Int chunk_index) {
1085  Info help = "Retrieve oscillating frequency of a wave chunk.";
1086  In chunk_index = ("Chunk Index", "Index of chunk", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1087  Out osc_freq = ("osc-freq", "", ":flagstodo");
1088  }
1089  ErrorType load_wave (String file_name, String wave_name) {
1090  Info help = "Load sample chunks from a wave file";
1091  In file_name = ("File Name", "The wave file to read wave chunks from", ":flagstodo");
1092  In wave_name = ("Wave Name", "The name of the wave to read wave chunks from", ":flagstodo");
1093  Out error = ("Error", "BSE error type", ":flagstodo");
1094  }
1095  Int n_wave_chunks () {
1096  Info help = "Get the number of wave chunks of a wave";
1097  Out n_chunks = ("Number of Wave Chunks", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1098  }
1099  EditableSample use_editable (Int chunk_index) {
1100  Info help = "Retrieve an editable sample object for a wave chunk.";
1101  In chunk_index = ("chunk-index", "Index of chunk to edit", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1102  Out esample = ("esample", "Editable sample", ":flagstodo");
1103  }
1104  property Bool locator_set = ("Locator Set", "", FALSE, ":flagstodo");
1105  property String file_name = ("File Name", "", ":flagstodo");
1106  property String wave_name = ("Wave Name", "", ":flagstodo");
1107  };
1108 
1109  interface PcmOutput : Source {
1110  property Real master_volume_f = ("Master [float]", "", ":flagstodo");
1111  property Real master_volume_dB = ("Master [dB]", "", ":flagstodo");
1112  property Int master_volume_perc = ("Master [%]", "", 100, 0, 1584, 1, ":flagstodo");
1113  };
1114 
1115  interface MidiVoiceSwitch : Source {
1116  };
1117 
1118  interface MidiInput : Source {
1119  property Int midi_channel = ("MIDI Channel", "Input MIDI channel, 0 uses network's default channel", 0, 0, 99, 1, ":flagstodo");
1120  };
1121 
1122  interface PcmInput : Source {
1123  property Real gain_volume_f = ("Input Gain [float]", "", ":flagstodo");
1124  property Real gain_volume_dB = ("Input Gain [dB]", "", ":flagstodo");
1125  property Int gain_volume_perc = ("input Gain [%]", "", 100, 0, 1584, 1, ":flagstodo");
1126  };
1127 
1128  interface MidiController : Source {
1129  property Int midi_channel = ("MIDI Channel", "Input MIDI channel, 0 uses network's default channel", 0, 0, 99, 1, ":flagstodo");
1130  property MidiSignalType control_1 = ("Signal 1", "", ":flagstodo");
1131  property MidiSignalType control_2 = ("Signal 2", "", ":flagstodo");
1132  property MidiSignalType control_3 = ("Signal 3", "", ":flagstodo");
1133  property MidiSignalType control_4 = ("Signal 4", "", ":flagstodo");
1134  };
1135 
1136  interface Constant : Source {
1137  property Real value_1 = ("Value [float]", "Constant signal value", ":flagstodo");
1138  property Real frequency_1 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo");
1139  property Int note_1 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo");
1140  property Real value_2 = ("Value [float]", "Constant signal value", ":flagstodo");
1141  property Real frequency_2 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo");
1142  property Int note_2 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo");
1143  property Real value_3 = ("Value [float]", "Constant signal value", ":flagstodo");
1144  property Real frequency_3 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo");
1145  property Int note_3 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo");
1146  property Real value_4 = ("Value [float]", "Constant signal value", ":flagstodo");
1147  property Real frequency_4 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo");
1148  property Int note_4 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo");
1149  };
1150 
1151  interface Janitor : Item {
1152  String get_action (Int nth_action) {
1153  Info help = "Retrieve an action of this janitor.";
1154  In nth_action = ("Nth Action", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1155  Out action = ("Action", "", ":flagstodo");
1156  }
1157  String get_action_blurb (Int nth_action) {
1158  Info help = "Retrieve the help string of an action of this janitor.";
1159  In nth_action = ("Nth Action", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1160  Out action_blurb = ("Action Blurb", "", ":flagstodo");
1161  }
1162  String get_action_name (Int nth_action) {
1163  Info help = "Retrieve the name of an action of this janitor.";
1164  In nth_action = ("Nth Action", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1165  Out action_name = ("Action Name", "", ":flagstodo");
1166  }
1167  String get_proc_name () {
1168  Info help = "Retrieve the procedure name of this janitor.";
1169  Out proc_name = ("Proc Name", "", ":flagstodo");
1170  }
1171  String get_script_name () {
1172  Info help = "Retrieve the script name of this janitor.";
1173  Out script_name = ("Script Name", "", ":flagstodo");
1174  }
1175  void kill () {
1176  Info help = "Kill a currently running janitor.";
1177  }
1178  Int n_actions () {
1179  Info help = "Retrieve number of user actions of this janitor.";
1180  Out n_actions = ("N Actions", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1181  }
1182  void trigger_action (String action) {
1183  Info help = "Trigger an installed user action of this janitor.";
1184  In action = ("Action", "", ":flagstodo");
1185  }
1186  signal action (String a, Int b);
1187  signal progress (Real a);
1188  signal action_changed (String a, Int b);
1189  signal shutdown ();
1190  property String ident = ("Script Identifier", "", ":flagstodo");
1191  property Bool connected = ("Connected", "", FALSE, ":flagstodo");
1192  property String status_message = ("Status Message", "", ":flagstodo");
1193  property Int exit_code = ("Exit Code", "", 0, -256, 256, 0, ":flagstodo");
1194  property String exit_reason = ("Exit Reason", "", ":flagstodo");
1195  };
1196 
1197  interface DataPocket : Item {
1198  Int create_entry () {
1199  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.";
1200  Out entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1201  }
1202  ErrorType delete_entry (Int entry_id) {
1203  Info help = "Delete an existing entry from a data pocket";
1204  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1205  Out error = ("Error", "BSE error code", ":flagstodo");
1206  }
1207  Real get_float (Int entry_id, String name) {
1208  Info help = "Retrieve a previously set floating point value from a data pocket entry.";
1209  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1210  In name = ("Name", "Name for the value", ":flagstodo");
1211  Out number = ("Number", "The value stored in the data pocket entry", ":flagstodo");
1212  }
1213  Int get_int (Int entry_id, String name) {
1214  Info help = "Retrieve a previously set integer value from a data pocket entry.";
1215  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1216  In name = ("Name", "Name for the value", ":flagstodo");
1217  Out number = ("Number", "The value stored in the data pocket entry", 0, SFI_MININT, SFI_MAXINT, 1, ":flagstodo");
1218  }
1219  Int get_n_entries () {
1220  Info help = "Retrieve the number of entries created in a data pocket.";
1221  Out n_entries = ("N Entries", "The number of entries in use", 1, 0, SFI_MAXINT, 1, ":flagstodo");
1222  }
1223  Int get_nth_entry_id (Int entry_index) {
1224  Info help = "Retrieve the ID of an entry in the data pocket by sequential index.";
1225  In entry_index = ("Entry Index", "index into number of entries present", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1226  Out entry_id = ("Entry ID", "The unique pocket entry ID (or 0 if there's no such entry)", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1227  }
1228  Item get_object (Int entry_id, String name) {
1229  Info help = "Retrieve a previously set object reference from a data pocket entry.";
1230  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1231  In name = ("Name", "Name for the value", ":flagstodo");
1232  Out item = ("Item", "The value stored in the data pocket entry", ":flagstodo");
1233  }
1234  String get_string (Int entry_id, String name) {
1235  Info help = "Retrieve a previously set string from a data pocket entry.";
1236  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1237  In name = ("Name", "Name for the value", ":flagstodo");
1238  Out string = ("String", "The value stored in the data pocket entry", ":flagstodo");
1239  }
1240  ErrorType set_float (Int entry_id, String name, Real number) {
1241  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.";
1242  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1243  In name = ("Name", "Name for the value", ":flagstodo");
1244  In number = ("Number", "The value to store in the data pocket entry", ":flagstodo");
1245  Out error = ("Error", "BSE error code", ":flagstodo");
1246  }
1247  ErrorType set_int (Int entry_id, String name, Int number) {
1248  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.";
1249  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1250  In name = ("Name", "Name for the value", ":flagstodo");
1251  In number = ("Number", "The value to store in the data pocket entry", 0, SFI_MININT, SFI_MAXINT, 1, ":flagstodo");
1252  Out error = ("Error", "BSE error code", ":flagstodo");
1253  }
1254  ErrorType set_object (Int entry_id, String name, Item item) {
1255  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";
1256  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1257  In name = ("Name", "Name for the value", ":flagstodo");
1258  In item = ("Item", "The value to store in the data pocket entry", ":flagstodo");
1259  Out error = ("Error", "BSE error code", ":flagstodo");
1260  }
1261  ErrorType set_string (Int entry_id, String name, String string) {
1262  Info help = "Set a named string in a data pocket entry.";
1263  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1264  In name = ("Name", "Name for the value", ":flagstodo");
1265  In string = ("String", "The value to store in the data pocket entry", ":flagstodo");
1266  Out error = ("Error", "BSE error code", ":flagstodo");
1267  }
1268  signal entry_added (Int a);
1269  signal entry_removed (Int a);
1270  signal entry_changed (Int a);
1271  };
1272 
1273  interface Part : Item {
1274  ErrorType change_control (Int id, Int tick, MidiSignalType control_type, Real value) {
1275  Info help = "Change an existing control event within a part.";
1276  In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1277  In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1278  In control_type = ("Control Type", "", ":flagstodo");
1279  In value = ("Value", "", ":flagstodo");
1280  Out error = ("Error", "", ":flagstodo");
1281  }
1282  ErrorType change_note (Int id, Int tick, Int duration, Int note, Int fine_tune, Real velocity) {
1283  Info help = "Change an existing note within a part.";
1284  In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1285  In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1286  In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo");
1287  In note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1288  In fine_tune = ("Fine Tune", "Fine tune in cents per semitone", 0, -100, 100, 10, ":flagstodo");
1289  In velocity = ("Velocity", "", ":flagstodo");
1290  Out error = ("Error", "", ":flagstodo");
1291  }
1292  PartNoteSeq check_overlap (Int tick, Int duration, Int note) {
1293  Info help = "Check whether a note would overlap with neighbours.";
1294  In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1295  In duration = ("Tick Duration", "", 1, 0, SFI_MAXINT, 384, ":flagstodo");
1296  In note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1297  Out note_list = ("Note List", "", ":flagstodo");
1298  }
1299  ErrorType delete_event (Int id) {
1300  Info help = "Delete an existing event from a part.";
1301  In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1302  Out error = ("Error", "", ":flagstodo");
1303  }
1304  void deselect_controls (Int tick, Int duration, MidiSignalType control_type) {
1305  Info help = "Deselect all controls within given range.";
1306  In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo");
1307  In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo");
1308  In control_type = ("Control Type", "", ":flagstodo");
1309  }
1310  void deselect_event (Int id) {
1311  Info help = "Deselect an existing event.";
1312  In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1313  }
1314  void deselect_notes (Int tick, Int duration, Int min_note, Int max_note) {
1315  Info help = "Deselect all notes within rectangle.";
1316  In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo");
1317  In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo");
1318  In min_note = ("Minimum Selection Note", "", 69, 0, 131, 12, ":flagstodo");
1319  In max_note = ("Maximum Selection Note", "", 69, 0, 131, 12, ":flagstodo");
1320  }
1321  PartControlSeq get_channel_controls (Int channel, Int tick, Int duration, MidiSignalType control_type) {
1322  Info help = "Retrieve all control events of a specific type within range of a channel.";
1323  In channel = ("Channel", "", 0, 0, 4132, 4, ":flagstodo");
1324  In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1325  In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo");
1326  In control_type = ("Control Type", "", ":flagstodo");
1327  Out control_list = ("Control List", "", ":flagstodo");
1328  }
1329  PartControlSeq get_controls (Int tick, MidiSignalType control_type) {
1330  Info help = "Retrieve all control events of a specific type at specified tick.";
1331  In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1332  In control_type = ("Control Type", "", ":flagstodo");
1333  Out control_list = ("Control List", "", ":flagstodo");
1334  }
1335  Int get_max_note () {
1336  Info help = "Retrieve the maximum note supported in this part.";
1337  Out note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1338  }
1339  Int get_min_note () {
1340  Info help = "Retrieve the minimum note supported in this part.";
1341  Out note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1342  }
1343  PartNoteSeq get_notes (Int tick, Int note) {
1344  Info help = "Retrieve all notes of specific frequency at or crossing a specific tick.";
1345  In tick = ("Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1346  In note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1347  Out note_list = ("Note List", "", ":flagstodo");
1348  }
1349  SongTiming get_timing (Int tick) {
1350  Info help = "Retrieve song timing information at a specific tick.";
1351  In tick = ("Tick", "Tick to retrieve timing info about", 0, 0, SFI_MAXINT, 384, ":flagstodo");
1352  Out timing = ("Timing", "Song Timing", ":flagstodo");
1353  }
1354  Int insert_control (Int tick, MidiSignalType control_type, Real value) {
1355  Info help = "Insert a new control event into a part.";
1356  In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1357  In control_type = ("Control Type", "", ":flagstodo");
1358  In value = ("Value", "", ":flagstodo");
1359  Out id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1360  }
1361  Int insert_note (Int channel, Int tick, Int duration, Int note, Int fine_tune, Real velocity) {
1362  Info help = "Insert a new note into a part.";
1363  In channel = ("Channel", "", 0, 0, 4132, 4, ":flagstodo");
1364  In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1365  In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo");
1366  In note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1367  In fine_tune = ("Fine Tune", "Fine tune in cents per semitone", 0, -100, 100, 10, ":flagstodo");
1368  In velocity = ("Velocity", "", ":flagstodo");
1369  Out id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1370  }
1371  Int insert_note_auto (Int tick, Int duration, Int note, Int fine_tune, Real velocity) {
1372  Info help = "Insert a new note into a part with automatic channel selection.";
1373  In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1374  In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo");
1375  In note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1376  In fine_tune = ("Fine Tune", "Fine tune in cents per semitone", 0, -100, 100, 10, ":flagstodo");
1377  In velocity = ("Velocity", "", ":flagstodo");
1378  Out id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1379  }
1380  Bool is_event_selected (Int id) {
1381  Info help = "Check whether an event is selected.";
1382  In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1383  Out selected = ("Selected", "", FALSE, ":flagstodo");
1384  }
1385  PartControlSeq list_controls (Int tick, Int duration, MidiSignalType control_type) {
1386  Info help = "List all control events within a tick range.";
1387  In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1388  In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo");
1389  In control_type = ("Control Type", "", ":flagstodo");
1390  Out control_list = ("Control List", "", ":flagstodo");
1391  }
1392  PartLinkSeq list_links () {
1393  Info help = "List all places where parts are used (linked) from tracks, sorted by tick.";
1394  Out link_list = ("Link List", "", ":flagstodo");
1395  }
1396  PartNoteSeq list_notes_crossing (Int tick, Int duration) {
1397  Info help = "List all notes within or crossing a tick range.";
1398  In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1399  In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo");
1400  Out note_list = ("Note List", "", ":flagstodo");
1401  }
1402  PartNoteSeq list_notes_within (Int channel, Int tick, Int duration) {
1403  Info help = "List all notes within a tick range.";
1404  In channel = ("Channel", "", 0, 0, 4132, 4, ":flagstodo");
1405  In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1406  In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo");
1407  Out note_list = ("Note List", "", ":flagstodo");
1408  }
1409  PartControlSeq list_selected_controls (MidiSignalType control_type) {
1410  Info help = "List all currently selected control events of a specific type.";
1411  In control_type = ("Control Type", "", ":flagstodo");
1412  Out control_list = ("Control List", "", ":flagstodo");
1413  }
1414  PartNoteSeq list_selected_notes () {
1415  Info help = "List all currently selected notes.";
1416  Out note_list = ("Note List", "", ":flagstodo");
1417  }
1418  void queue_controls (Int tick, Int duration) {
1419  Info help = "Queue updates for all control events and notes starting within the given range.";
1420  In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1421  In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo");
1422  }
1423  void queue_notes (Int tick, Int duration, Int min_note, Int max_note) {
1424  Info help = "Queue updates for all notes starting within the given rectangle.";
1425  In tick = ("Start Tick", "", 0, 0, 2147483646, 384, ":flagstodo");
1426  In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo");
1427  In min_note = ("Minimum Note", "", 69, 0, 131, 12, ":flagstodo");
1428  In max_note = ("Maximum Note", "", 69, 0, 131, 12, ":flagstodo");
1429  }
1430  void select_controls (Int tick, Int duration, MidiSignalType control_type) {
1431  Info help = "Select all control events within range.";
1432  In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo");
1433  In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo");
1434  In control_type = ("Control Type", "", ":flagstodo");
1435  }
1436  void select_controls_exclusive (Int tick, Int duration, MidiSignalType control_type) {
1437  Info help = "Select all control events within range and deselect all others.";
1438  In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo");
1439  In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo");
1440  In control_type = ("Control Type", "", ":flagstodo");
1441  }
1442  void select_event (Int id) {
1443  Info help = "Select an existing event.";
1444  In id = ("ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1445  }
1446  void select_notes (Int tick, Int duration, Int min_note, Int max_note) {
1447  Info help = "Select all notes within rectangle.";
1448  In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo");
1449  In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo");
1450  In min_note = ("Minimum Selection Note", "", 69, 0, 131, 12, ":flagstodo");
1451  In max_note = ("Maximum Selection Note", "", 69, 0, 131, 12, ":flagstodo");
1452  }
1453  void select_notes_exclusive (Int tick, Int duration, Int min_note, Int max_note) {
1454  Info help = "Select all notes within rectangle and deselect all others.";
1455  In tick = ("Tick", "Selection Tick", 0, 0, 2147483646, 384, ":flagstodo");
1456  In duration = ("Duration", "Selection Duration", 0, 0, SFI_MAXINT, 384, ":flagstodo");
1457  In min_note = ("Minimum Selection Note", "", 69, 0, 131, 12, ":flagstodo");
1458  In max_note = ("Maximum Selection Note", "", 69, 0, 131, 12, ":flagstodo");
1459  }
1460  signal range_changed (Int a, Int b, Int c, Int d);
1461  signal links_changed ();
1462  property Int n_channels = ("Channels", "", 1, 1, 4132, 4, ":flagstodo");
1463  property Int last_tick = ("Last Tick", "", 0, 0, SFI_MAXINT, 384, ":flagstodo");
1464  };
1465 
1466  interface MidiNotifier : Item {
1467  Int current_time () {
1468  Info help = "Test";
1469  Out msec_time = ("Time [ms]", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1470  }
1471  };
1472 
1473  interface PcmWriter : Item {
1474  };
1475 
1476  Category category_from_id (Int category_id) {
1477  Info help = "Find a BSE category from it's unique ID.";
1478  In category_id = ("Category ID", "", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1479  Out category = ("Category", "", ":flagstodo");
1480  }
1481  CategorySeq categories_match (String pattern) {
1482  Info help = "List BSE categories according to a pattern match.";
1483  In pattern = ("Pattern", "Pattern to match category, supports '*' and '?' wildcards.", ":flagstodo");
1484  Out categories = ("Categories", "", ":flagstodo");
1485  }
1486  CategorySeq categories_match_method (String pattern, String type) {
1487  Info help = "List BSE categories according to a pattern, of type procedure and applying to a certain object type.";
1488  In pattern = ("Pattern", "Pattern to match category, supports '*' and '?' wildcards.", ":flagstodo");
1489  In type = ("Type", "Object base type for methods to conform to.", ":flagstodo");
1490  Out categories = ("Categories", "", ":flagstodo");
1491  }
1492  CategorySeq categories_match_typed (String pattern, String type) {
1493  Info help = "List BSE categories according to a pattern and type match.";
1494  In pattern = ("Pattern", "Pattern to match category, supports '*' and '?' wildcards.", ":flagstodo");
1495  In type = ("Type", "Base type for categories to conform to.", ":flagstodo");
1496  Out categories = ("Categories", "", ":flagstodo");
1497  }
1498  NoteDescription note_describe (MusicalTuningType musical_tuning, Int note, Int fine_tune) {
1499  Info help = "Describe a note, providing information about its octave, semitone, frequency, etc.";
1500  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1501  In note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1502  In fine_tune = ("Fine Tune", "", 0, -100, 100, 10, ":flagstodo");
1503  Out note_description = ("Note Description", "", ":flagstodo");
1504  }
1505  NoteDescription note_describe_from_freq (MusicalTuningType musical_tuning, Real freq) {
1506  Info help = "Describe a note, given its frequency.";
1507  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1508  In freq = ("Frequency", "", ":flagstodo");
1509  Out note_description = ("Note Description", "", ":flagstodo");
1510  }
1511  String error_blurb (ErrorType error) {
1512  Info help = "Retrieve the description of an error value";
1513  In error = ("Error", "", ":flagstodo");
1514  Out blurb = ("Blurb", "", ":flagstodo");
1515  }
1516  String error_name (ErrorType error) {
1517  Info help = "Retrieve the name of an error value";
1518  In error = ("Error", "", ":flagstodo");
1519  Out name = ("Name", "", ":flagstodo");
1520  }
1521  NoteDescription note_construct (MusicalTuningType musical_tuning, Int semitone, Int octave, Int fine_tune) {
1522  Info help = "Describe a note, given its semitone, octave and fine tune.";
1523  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1524  In semitone = ("semitone", "", 9, 0, 11, 1, ":flagstodo");
1525  In octave = ("octave", "", 1, -4, 6, 2, ":flagstodo");
1526  In fine_tune = ("Fine Tune", "", 0, -100, 100, 10, ":flagstodo");
1527  Out note_description = ("Note Description", "", ":flagstodo");
1528  }
1529  NoteDescription note_from_string (MusicalTuningType musical_tuning, String name) {
1530  Info help = "Describe a note, given its name and octave offset.";
1531  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1532  In name = ("Name", "", ":flagstodo");
1533  Out note_description = ("Note Description", "", ":flagstodo");
1534  }
1535  Int note_from_freq (MusicalTuningType musical_tuning, Real frequency) {
1536  Info help = "Retrieve the note of a certain frequency.";
1537  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1538  In frequency = ("Frequency", "", ":flagstodo");
1539  Out note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1540  }
1541  Real note_to_freq (MusicalTuningType musical_tuning, Int note, Int fine_tune) {
1542  Info help = "Retrieve the frequency of a certain note.";
1543  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1544  In note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1545  In fine_tune = ("Fine Tune", "", 0, -100, 100, 10, ":flagstodo");
1546  Out frequency = ("Frequency", "", ":flagstodo");
1547  }
1548  Bool proxy_check (Item item, String type_name) {
1549  Info help = "Check whether a proxy has a certain type.";
1550  In item = ("Item", "The Item", ":flagstodo");
1551  In type_name = ("Type Name", "", ":flagstodo");
1552  Out is_a = ("is-a", "", FALSE, ":flagstodo");
1553  }
1554  SampleFileInfo sample_file_info (String file_name) {
1555  Info help = "Load sample file info from file";
1556  In file_name = ("File Name", "The file to load info from", ":flagstodo");
1557  Out sample_file_info = ("sample-file-info", "", ":flagstodo");
1558  }
1559  void script_add_action (String action, String name, String blurb) {
1560  Info help = "Install a user action for script control.";
1561  In action = ("Action", "", ":flagstodo");
1562  In name = ("Name", "", ":flagstodo");
1563  In blurb = ("Blurb", "", ":flagstodo");
1564  }
1565  Janitor script_janitor () {
1566  Info help = "Retrieve the connection dependant janitor object.";
1567  Out janitor = ("Janitor", "", ":flagstodo");
1568  }
1569  void script_send_message (String domain, String msg_type, String title, String primary, String secondary, String details, String config_check) {
1570  Info help = "Send a message from a script.";
1571  In domain = ("domain", "", ":flagstodo");
1572  In msg_type = ("msg-type", "", ":flagstodo");
1573  In title = ("title", "", ":flagstodo");
1574  In primary = ("primary", "", ":flagstodo");
1575  In secondary = ("secondary", "", ":flagstodo");
1576  In details = ("details", "", ":flagstodo");
1577  In config_check = ("config-check", "", ":flagstodo");
1578  }
1579  void script_progress (Real progress) {
1580  Info help = "Indicate progress (from 0.0 to 1.0 or -1 for unknown amount).";
1581  In progress = ("Progress", "", ":flagstodo");
1582  }
1583  void script_quit () {
1584  Info help = "Exit a script succesfully (server side).";
1585  }
1586  void script_remove_action (String action) {
1587  Info help = "Remove a previously installed user action from script control.";
1588  In action = ("Action", "", ":flagstodo");
1589  }
1590  void script_set_status (String message) {
1591  Info help = "Alter script status message.";
1592  In message = ("Message", "", ":flagstodo");
1593  }
1594  void wave_osc_mass_seek_perc (ItemSeq wosc_seq, Real pos_perc) {
1595  Info help = "Seek a list of wave oscillators to a pcm position given in percentage. The oscillators will seek to the given position syncronously.";
1596  In wosc_seq = ("Wave Oscilators", "", ":flagstodo");
1597  In pos_perc = ("pos-perc", "", ":flagstodo");
1598  }
1599  Real string_extract_number (String string, String format, Real aux_base, Real dflt) {
1600  Info help = "Retrieve numbers from a string.";
1601  In string = ("string", "", ":flagstodo");
1602  In format = ("format", "", ":flagstodo");
1603  In aux_base = ("aux-base", "", ":flagstodo");
1604  In dflt = ("dflt", "", ":flagstodo");
1605  Out number = ("number", "", ":flagstodo");
1606  }
1607  String type_authors (String type) {
1608  Info help = "Retrieve the authors who implemented a specific type.";
1609  In type = ("type", "", ":flagstodo");
1610  Out string = ("string", "", ":flagstodo");
1611  }
1612  String type_blurb (String type) {
1613  Info help = "Retrieve the description of a specific type.";
1614  In type = ("type", "", ":flagstodo");
1615  Out string = ("string", "", ":flagstodo");
1616  }
1617  String type_license (String type) {
1618  Info help = "Retrieve the license of a type impementation.";
1619  In type = ("type", "", ":flagstodo");
1620  Out string = ("string", "", ":flagstodo");
1621  }
1622  String type_options (String type) {
1623  Info help = "Retrieve the options of a specific type.";
1624  In type = ("type", "", ":flagstodo");
1625  Out string = ("string", "", ":flagstodo");
1626  }
1627 };
Definition: bsehack.idl:972
Definition: bsehack.idl:1075
Definition: bseprobe.genidl.hh:42
Definition: bsehack.idl:647
Definition: bsehack.idl:1197
Definition: bsehack.idl:1118
Definition: bsehack.idl:1473
Definition: sficxx.hh:816
Definition: bsehack.idl:1019
Definition: bsehack.idl:1008
Definition: bsehack.idl:720
Definition: sficxx.hh:15
Definition: bsebasics.genidl.hh:893
Definition: bsehack.idl:182
Definition: bsebasics.genidl.hh:556
Definition: bsehack.idl:993
Definition: bsehack.idl:976
Definition: bsehack.idl:493
Definition: bsehack.idl:1039
Definition: bsehack.idl:1151
Definition: bsehack.idl:523
Definition: bsehack.idl:601
Definition: bsehack.idl:1273
Definition: bsehack.idl:352
Definition: bsehack.idl:1128
std::string String
Definition: bsehack.idl:1109
Definition: bsehack.idl:509
Definition: bsehack.idl:633
Definition: bsehack.idl:1115
Definition: bsehack.idl:526
signal
Definition: bsehack.idl:516
Definition: bsebasics.genidl.hh:586
Definition: bsehack.idl:1136
Definition: bsebasics.genidl.hh:822
Definition: bsehack.idl:609
Definition: bsehack.idl:1122
Main Bse remote origin object.
Definition: bseapi.idl:36
Definition: bsebasics.genidl.hh:646
Definition: bsebasics.genidl.hh:661
Definition: bsehack.idl:315
Definition: bsehack.idl:1078
Definition: bsehack.idl:983
Definition: bsehack.idl:990
Definition: bsebasics.genidl.hh:705
Definition: bsebasics.genidl.hh:571
Definition: bsehack.idl:732
Definition: bsebasics.genidl.hh:526
Definition: bsehack.idl:636
Definition: bsebasics.genidl.hh:805
Definition: bsehack.idl:1466
uname