BEAST - Free Software Audio Synthesizer and Tracker  0.9.2
bsehack.idl
Go to the documentation of this file.
1  /* file generated by make bsehack.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 BseMidiControlType excluded from generation
23 // bseprocidl: type BseMidiChannelEventType excluded from generation
24 // bseprocidl: type BseMidiChannelEvent excluded from generation
25 // bseprocidl: type BseNoteSeq excluded from generation
26 // bseprocidl: type BseItemSeq excluded from generation
27 // bseprocidl: type BsePropertyCandidates excluded from generation
28 // bseprocidl: type BseNoteDescription excluded from generation
29 // bseprocidl: type BseNoteSequence excluded from generation
30 // bseprocidl: type BsePixelSeq excluded from generation
31 // bseprocidl: type BseIcon excluded from generation
32 // bseprocidl: type BseCategory excluded from generation
33 // bseprocidl: type BseCategorySeq excluded from generation
34 // bseprocidl: type BseDot excluded from generation
35 // bseprocidl: type BseDotSeq excluded from generation
36 // bseprocidl: type BseTrackPart excluded from generation
37 // bseprocidl: type BseTrackPartSeq excluded from generation
38 // bseprocidl: type BseSampleFileInfo excluded from generation
39 // bseprocidl: type BseDefaultAuthor excluded from generation
40 // bseprocidl: type BseDefaultLicense excluded from generation
41 // bseprocidl: type BseUserDataPath excluded from generation
42 // bseprocidl: type BseDefaultSamplePath excluded from generation
43 // bseprocidl: type BseDefaultEffectsPath excluded from generation
44 // bseprocidl: type BseDefaultInstrumentsPath excluded from generation
45 // bseprocidl: type BseDefaultScriptsPath excluded from generation
46 // bseprocidl: type BseDefaultPluginsPath excluded from generation
47 // bseprocidl: type BseGConfig excluded from generation
48 // bseprocidl: type BseCxxBase excluded from generation
49 // bseprocidl: type BseEffect excluded from generation
50 // bseprocidl: type BseProbeFeatures excluded from generation
51 // bseprocidl: type BseProbe excluded from generation
52 // bseprocidl: type BseProbeSeq excluded from generation
53 // bseprocidl: type BseProbeRequest excluded from generation
54 // bseprocidl: type BseProbeRequestSeq excluded from generation
55 // bseprocidl: type BseSourceRequestProbes excluded from generation
56 // bseprocidl: type BseSourceMassRequest excluded from generation
57 // bseprocidl: type BseSourceGetTickStamp excluded from generation
58 // bseprocidl: type BseSourceGetMixFreq excluded from generation
59 namespace Bse {
60  enum BiquadFilterType {
61  BIQUAD_FILTER_RESONANT_LOWPASS = Enum (1, "lowpass"),
62  BIQUAD_FILTER_RESONANT_HIGHPASS = Enum (2, "highpass"),
63  };
64 
65  enum RegistrationType {
66  REGISTER_PLUGIN = Enum (1, "plugin"),
67  REGISTER_SCRIPT = Enum (2, "script"),
68  REGISTER_DONE = Enum (256, "done"),
69  };
70 
71  enum ErrorType {
72  ERROR_NONE = Enum (0, "none"),
73  ERROR_INTERNAL = Enum (1, "internal"),
74  ERROR_UNKNOWN = Enum (2, "unknown"),
75  ERROR_IO = Enum (3, "io"),
76  ERROR_PERMS = Enum (4, "perms"),
77  ERROR_FILE_BUSY = Enum (5, "file-busy"),
78  ERROR_FILE_EXISTS = Enum (6, "file-exists"),
79  ERROR_FILE_EOF = Enum (7, "file-eof"),
80  ERROR_FILE_EMPTY = Enum (8, "file-empty"),
81  ERROR_FILE_NOT_FOUND = Enum (9, "file-not-found"),
82  ERROR_FILE_IS_DIR = Enum (10, "file-is-dir"),
83  ERROR_FILE_OPEN_FAILED = Enum (11, "file-open-failed"),
84  ERROR_FILE_SEEK_FAILED = Enum (12, "file-seek-failed"),
85  ERROR_FILE_READ_FAILED = Enum (13, "file-read-failed"),
86  ERROR_FILE_WRITE_FAILED = Enum (14, "file-write-failed"),
87  ERROR_MANY_FILES = Enum (15, "many-files"),
88  ERROR_NO_FILES = Enum (16, "no-files"),
89  ERROR_NO_SPACE = Enum (17, "no-space"),
90  ERROR_NO_MEMORY = Enum (18, "no-memory"),
91  ERROR_NO_HEADER = Enum (19, "no-header"),
92  ERROR_NO_SEEK_INFO = Enum (20, "no-seek-info"),
93  ERROR_NO_DATA = Enum (21, "no-data"),
94  ERROR_DATA_CORRUPT = Enum (22, "data-corrupt"),
95  ERROR_WRONG_N_CHANNELS = Enum (23, "wrong-n-channels"),
96  ERROR_FORMAT_INVALID = Enum (24, "format-invalid"),
97  ERROR_FORMAT_UNKNOWN = Enum (25, "format-unknown"),
98  ERROR_DATA_UNMATCHED = Enum (26, "data-unmatched"),
99  ERROR_TEMP = Enum (27, "temp"),
100  ERROR_WAVE_NOT_FOUND = Enum (28, "wave-not-found"),
101  ERROR_CODEC_FAILURE = Enum (29, "codec-failure"),
102  ERROR_UNIMPLEMENTED = Enum (30, "unimplemented"),
103  ERROR_INVALID_PROPERTY = Enum (31, "invalid-property"),
104  ERROR_INVALID_MIDI_CONTROL = Enum (32, "invalid-midi-control"),
105  ERROR_PARSE_ERROR = Enum (33, "parse-error"),
106  ERROR_SPAWN = Enum (34, "spawn"),
107  ERROR_DEVICE_NOT_AVAILABLE = Enum (35, "device-not-available"),
108  ERROR_DEVICE_ASYNC = Enum (36, "device-async"),
109  ERROR_DEVICE_BUSY = Enum (37, "device-busy"),
110  ERROR_DEVICE_FORMAT = Enum (38, "device-format"),
111  ERROR_DEVICE_BUFFER = Enum (39, "device-buffer"),
112  ERROR_DEVICE_LATENCY = Enum (40, "device-latency"),
113  ERROR_DEVICE_CHANNELS = Enum (41, "device-channels"),
114  ERROR_DEVICE_FREQUENCY = Enum (42, "device-frequency"),
115  ERROR_DEVICES_MISMATCH = Enum (43, "devices-mismatch"),
116  ERROR_SOURCE_NO_SUCH_MODULE = Enum (44, "source-no-such-module"),
117  ERROR_SOURCE_NO_SUCH_ICHANNEL = Enum (45, "source-no-such-ichannel"),
118  ERROR_SOURCE_NO_SUCH_OCHANNEL = Enum (46, "source-no-such-ochannel"),
119  ERROR_SOURCE_NO_SUCH_CONNECTION = Enum (47, "source-no-such-connection"),
120  ERROR_SOURCE_PRIVATE_ICHANNEL = Enum (48, "source-private-ichannel"),
121  ERROR_SOURCE_ICHANNEL_IN_USE = Enum (49, "source-ichannel-in-use"),
122  ERROR_SOURCE_CHANNELS_CONNECTED = Enum (50, "source-channels-connected"),
123  ERROR_SOURCE_CONNECTION_INVALID = Enum (51, "source-connection-invalid"),
124  ERROR_SOURCE_PARENT_MISMATCH = Enum (52, "source-parent-mismatch"),
125  ERROR_SOURCE_BAD_LOOPBACK = Enum (53, "source-bad-loopback"),
126  ERROR_SOURCE_BUSY = Enum (54, "source-busy"),
127  ERROR_SOURCE_TYPE_INVALID = Enum (55, "source-type-invalid"),
128  ERROR_PROC_NOT_FOUND = Enum (56, "proc-not-found"),
129  ERROR_PROC_BUSY = Enum (57, "proc-busy"),
130  ERROR_PROC_PARAM_INVAL = Enum (58, "proc-param-inval"),
131  ERROR_PROC_EXECUTION = Enum (59, "proc-execution"),
132  ERROR_PROC_ABORT = Enum (60, "proc-abort"),
133  ERROR_NO_ENTRY = Enum (61, "no-entry"),
134  ERROR_NO_EVENT = Enum (62, "no-event"),
135  ERROR_NO_TARGET = Enum (63, "no-target"),
136  ERROR_NOT_OWNER = Enum (64, "not-owner"),
137  ERROR_INVALID_OFFSET = Enum (65, "invalid-offset"),
138  ERROR_INVALID_DURATION = Enum (66, "invalid-duration"),
139  ERROR_INVALID_OVERLAP = Enum (67, "invalid-overlap"),
140  };
141 
142  enum MidiSignalType {
143  MIDI_SIGNAL_PROGRAM = Enum (1, "program"),
144  MIDI_SIGNAL_PRESSURE = Enum (2, "pressure"),
145  MIDI_SIGNAL_PITCH_BEND = Enum (3, "pitch-bend"),
146  MIDI_SIGNAL_VELOCITY = Enum (4, "velocity"),
147  MIDI_SIGNAL_FINE_TUNE = Enum (5, "fine-tune"),
148  MIDI_SIGNAL_CONTINUOUS_0 = Enum (64, "continuous-0"),
149  MIDI_SIGNAL_CONTINUOUS_1 = Enum (65, "continuous-1"),
150  MIDI_SIGNAL_CONTINUOUS_2 = Enum (66, "continuous-2"),
151  MIDI_SIGNAL_CONTINUOUS_3 = Enum (67, "continuous-3"),
152  MIDI_SIGNAL_CONTINUOUS_4 = Enum (68, "continuous-4"),
153  MIDI_SIGNAL_CONTINUOUS_5 = Enum (69, "continuous-5"),
154  MIDI_SIGNAL_CONTINUOUS_6 = Enum (70, "continuous-6"),
155  MIDI_SIGNAL_CONTINUOUS_7 = Enum (71, "continuous-7"),
156  MIDI_SIGNAL_CONTINUOUS_8 = Enum (72, "continuous-8"),
157  MIDI_SIGNAL_CONTINUOUS_9 = Enum (73, "continuous-9"),
158  MIDI_SIGNAL_CONTINUOUS_10 = Enum (74, "continuous-10"),
159  MIDI_SIGNAL_CONTINUOUS_11 = Enum (75, "continuous-11"),
160  MIDI_SIGNAL_CONTINUOUS_12 = Enum (76, "continuous-12"),
161  MIDI_SIGNAL_CONTINUOUS_13 = Enum (77, "continuous-13"),
162  MIDI_SIGNAL_CONTINUOUS_14 = Enum (78, "continuous-14"),
163  MIDI_SIGNAL_CONTINUOUS_15 = Enum (79, "continuous-15"),
164  MIDI_SIGNAL_CONTINUOUS_16 = Enum (80, "continuous-16"),
165  MIDI_SIGNAL_CONTINUOUS_17 = Enum (81, "continuous-17"),
166  MIDI_SIGNAL_CONTINUOUS_18 = Enum (82, "continuous-18"),
167  MIDI_SIGNAL_CONTINUOUS_19 = Enum (83, "continuous-19"),
168  MIDI_SIGNAL_CONTINUOUS_20 = Enum (84, "continuous-20"),
169  MIDI_SIGNAL_CONTINUOUS_21 = Enum (85, "continuous-21"),
170  MIDI_SIGNAL_CONTINUOUS_22 = Enum (86, "continuous-22"),
171  MIDI_SIGNAL_CONTINUOUS_23 = Enum (87, "continuous-23"),
172  MIDI_SIGNAL_CONTINUOUS_24 = Enum (88, "continuous-24"),
173  MIDI_SIGNAL_CONTINUOUS_25 = Enum (89, "continuous-25"),
174  MIDI_SIGNAL_CONTINUOUS_26 = Enum (90, "continuous-26"),
175  MIDI_SIGNAL_CONTINUOUS_27 = Enum (91, "continuous-27"),
176  MIDI_SIGNAL_CONTINUOUS_28 = Enum (92, "continuous-28"),
177  MIDI_SIGNAL_CONTINUOUS_29 = Enum (93, "continuous-29"),
178  MIDI_SIGNAL_CONTINUOUS_30 = Enum (94, "continuous-30"),
179  MIDI_SIGNAL_CONTINUOUS_31 = Enum (95, "continuous-31"),
180  MIDI_SIGNAL_CONSTANT_HIGH = Enum (96, "constant-high"),
181  MIDI_SIGNAL_CONSTANT_CENTER = Enum (97, "constant-center"),
182  MIDI_SIGNAL_CONSTANT_LOW = Enum (98, "constant-low"),
183  MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER = Enum (99, "constant-negative-center"),
184  MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH = Enum (100, "constant-negative-high"),
185  MIDI_SIGNAL_PARAMETER = Enum (101, "parameter"),
186  MIDI_SIGNAL_NON_PARAMETER = Enum (102, "non-parameter"),
187  MIDI_SIGNAL_CONTROL_0 = Enum (128, "control-0"),
188  MIDI_SIGNAL_CONTROL_1 = Enum (129, "control-1"),
189  MIDI_SIGNAL_CONTROL_2 = Enum (130, "control-2"),
190  MIDI_SIGNAL_CONTROL_3 = Enum (131, "control-3"),
191  MIDI_SIGNAL_CONTROL_4 = Enum (132, "control-4"),
192  MIDI_SIGNAL_CONTROL_5 = Enum (133, "control-5"),
193  MIDI_SIGNAL_CONTROL_6 = Enum (134, "control-6"),
194  MIDI_SIGNAL_CONTROL_7 = Enum (135, "control-7"),
195  MIDI_SIGNAL_CONTROL_8 = Enum (136, "control-8"),
196  MIDI_SIGNAL_CONTROL_9 = Enum (137, "control-9"),
197  MIDI_SIGNAL_CONTROL_10 = Enum (138, "control-10"),
198  MIDI_SIGNAL_CONTROL_11 = Enum (139, "control-11"),
199  MIDI_SIGNAL_CONTROL_12 = Enum (140, "control-12"),
200  MIDI_SIGNAL_CONTROL_13 = Enum (141, "control-13"),
201  MIDI_SIGNAL_CONTROL_14 = Enum (142, "control-14"),
202  MIDI_SIGNAL_CONTROL_15 = Enum (143, "control-15"),
203  MIDI_SIGNAL_CONTROL_16 = Enum (144, "control-16"),
204  MIDI_SIGNAL_CONTROL_17 = Enum (145, "control-17"),
205  MIDI_SIGNAL_CONTROL_18 = Enum (146, "control-18"),
206  MIDI_SIGNAL_CONTROL_19 = Enum (147, "control-19"),
207  MIDI_SIGNAL_CONTROL_20 = Enum (148, "control-20"),
208  MIDI_SIGNAL_CONTROL_21 = Enum (149, "control-21"),
209  MIDI_SIGNAL_CONTROL_22 = Enum (150, "control-22"),
210  MIDI_SIGNAL_CONTROL_23 = Enum (151, "control-23"),
211  MIDI_SIGNAL_CONTROL_24 = Enum (152, "control-24"),
212  MIDI_SIGNAL_CONTROL_25 = Enum (153, "control-25"),
213  MIDI_SIGNAL_CONTROL_26 = Enum (154, "control-26"),
214  MIDI_SIGNAL_CONTROL_27 = Enum (155, "control-27"),
215  MIDI_SIGNAL_CONTROL_28 = Enum (156, "control-28"),
216  MIDI_SIGNAL_CONTROL_29 = Enum (157, "control-29"),
217  MIDI_SIGNAL_CONTROL_30 = Enum (158, "control-30"),
218  MIDI_SIGNAL_CONTROL_31 = Enum (159, "control-31"),
219  MIDI_SIGNAL_CONTROL_32 = Enum (160, "control-32"),
220  MIDI_SIGNAL_CONTROL_33 = Enum (161, "control-33"),
221  MIDI_SIGNAL_CONTROL_34 = Enum (162, "control-34"),
222  MIDI_SIGNAL_CONTROL_35 = Enum (163, "control-35"),
223  MIDI_SIGNAL_CONTROL_36 = Enum (164, "control-36"),
224  MIDI_SIGNAL_CONTROL_37 = Enum (165, "control-37"),
225  MIDI_SIGNAL_CONTROL_38 = Enum (166, "control-38"),
226  MIDI_SIGNAL_CONTROL_39 = Enum (167, "control-39"),
227  MIDI_SIGNAL_CONTROL_40 = Enum (168, "control-40"),
228  MIDI_SIGNAL_CONTROL_41 = Enum (169, "control-41"),
229  MIDI_SIGNAL_CONTROL_42 = Enum (170, "control-42"),
230  MIDI_SIGNAL_CONTROL_43 = Enum (171, "control-43"),
231  MIDI_SIGNAL_CONTROL_44 = Enum (172, "control-44"),
232  MIDI_SIGNAL_CONTROL_45 = Enum (173, "control-45"),
233  MIDI_SIGNAL_CONTROL_46 = Enum (174, "control-46"),
234  MIDI_SIGNAL_CONTROL_47 = Enum (175, "control-47"),
235  MIDI_SIGNAL_CONTROL_48 = Enum (176, "control-48"),
236  MIDI_SIGNAL_CONTROL_49 = Enum (177, "control-49"),
237  MIDI_SIGNAL_CONTROL_50 = Enum (178, "control-50"),
238  MIDI_SIGNAL_CONTROL_51 = Enum (179, "control-51"),
239  MIDI_SIGNAL_CONTROL_52 = Enum (180, "control-52"),
240  MIDI_SIGNAL_CONTROL_53 = Enum (181, "control-53"),
241  MIDI_SIGNAL_CONTROL_54 = Enum (182, "control-54"),
242  MIDI_SIGNAL_CONTROL_55 = Enum (183, "control-55"),
243  MIDI_SIGNAL_CONTROL_56 = Enum (184, "control-56"),
244  MIDI_SIGNAL_CONTROL_57 = Enum (185, "control-57"),
245  MIDI_SIGNAL_CONTROL_58 = Enum (186, "control-58"),
246  MIDI_SIGNAL_CONTROL_59 = Enum (187, "control-59"),
247  MIDI_SIGNAL_CONTROL_60 = Enum (188, "control-60"),
248  MIDI_SIGNAL_CONTROL_61 = Enum (189, "control-61"),
249  MIDI_SIGNAL_CONTROL_62 = Enum (190, "control-62"),
250  MIDI_SIGNAL_CONTROL_63 = Enum (191, "control-63"),
251  MIDI_SIGNAL_CONTROL_64 = Enum (192, "control-64"),
252  MIDI_SIGNAL_CONTROL_65 = Enum (193, "control-65"),
253  MIDI_SIGNAL_CONTROL_66 = Enum (194, "control-66"),
254  MIDI_SIGNAL_CONTROL_67 = Enum (195, "control-67"),
255  MIDI_SIGNAL_CONTROL_68 = Enum (196, "control-68"),
256  MIDI_SIGNAL_CONTROL_69 = Enum (197, "control-69"),
257  MIDI_SIGNAL_CONTROL_70 = Enum (198, "control-70"),
258  MIDI_SIGNAL_CONTROL_71 = Enum (199, "control-71"),
259  MIDI_SIGNAL_CONTROL_72 = Enum (200, "control-72"),
260  MIDI_SIGNAL_CONTROL_73 = Enum (201, "control-73"),
261  MIDI_SIGNAL_CONTROL_74 = Enum (202, "control-74"),
262  MIDI_SIGNAL_CONTROL_75 = Enum (203, "control-75"),
263  MIDI_SIGNAL_CONTROL_76 = Enum (204, "control-76"),
264  MIDI_SIGNAL_CONTROL_77 = Enum (205, "control-77"),
265  MIDI_SIGNAL_CONTROL_78 = Enum (206, "control-78"),
266  MIDI_SIGNAL_CONTROL_79 = Enum (207, "control-79"),
267  MIDI_SIGNAL_CONTROL_80 = Enum (208, "control-80"),
268  MIDI_SIGNAL_CONTROL_81 = Enum (209, "control-81"),
269  MIDI_SIGNAL_CONTROL_82 = Enum (210, "control-82"),
270  MIDI_SIGNAL_CONTROL_83 = Enum (211, "control-83"),
271  MIDI_SIGNAL_CONTROL_84 = Enum (212, "control-84"),
272  MIDI_SIGNAL_CONTROL_85 = Enum (213, "control-85"),
273  MIDI_SIGNAL_CONTROL_86 = Enum (214, "control-86"),
274  MIDI_SIGNAL_CONTROL_87 = Enum (215, "control-87"),
275  MIDI_SIGNAL_CONTROL_88 = Enum (216, "control-88"),
276  MIDI_SIGNAL_CONTROL_89 = Enum (217, "control-89"),
277  MIDI_SIGNAL_CONTROL_90 = Enum (218, "control-90"),
278  MIDI_SIGNAL_CONTROL_91 = Enum (219, "control-91"),
279  MIDI_SIGNAL_CONTROL_92 = Enum (220, "control-92"),
280  MIDI_SIGNAL_CONTROL_93 = Enum (221, "control-93"),
281  MIDI_SIGNAL_CONTROL_94 = Enum (222, "control-94"),
282  MIDI_SIGNAL_CONTROL_95 = Enum (223, "control-95"),
283  MIDI_SIGNAL_CONTROL_96 = Enum (224, "control-96"),
284  MIDI_SIGNAL_CONTROL_97 = Enum (225, "control-97"),
285  MIDI_SIGNAL_CONTROL_98 = Enum (226, "control-98"),
286  MIDI_SIGNAL_CONTROL_99 = Enum (227, "control-99"),
287  MIDI_SIGNAL_CONTROL_100 = Enum (228, "control-100"),
288  MIDI_SIGNAL_CONTROL_101 = Enum (229, "control-101"),
289  MIDI_SIGNAL_CONTROL_102 = Enum (230, "control-102"),
290  MIDI_SIGNAL_CONTROL_103 = Enum (231, "control-103"),
291  MIDI_SIGNAL_CONTROL_104 = Enum (232, "control-104"),
292  MIDI_SIGNAL_CONTROL_105 = Enum (233, "control-105"),
293  MIDI_SIGNAL_CONTROL_106 = Enum (234, "control-106"),
294  MIDI_SIGNAL_CONTROL_107 = Enum (235, "control-107"),
295  MIDI_SIGNAL_CONTROL_108 = Enum (236, "control-108"),
296  MIDI_SIGNAL_CONTROL_109 = Enum (237, "control-109"),
297  MIDI_SIGNAL_CONTROL_110 = Enum (238, "control-110"),
298  MIDI_SIGNAL_CONTROL_111 = Enum (239, "control-111"),
299  MIDI_SIGNAL_CONTROL_112 = Enum (240, "control-112"),
300  MIDI_SIGNAL_CONTROL_113 = Enum (241, "control-113"),
301  MIDI_SIGNAL_CONTROL_114 = Enum (242, "control-114"),
302  MIDI_SIGNAL_CONTROL_115 = Enum (243, "control-115"),
303  MIDI_SIGNAL_CONTROL_116 = Enum (244, "control-116"),
304  MIDI_SIGNAL_CONTROL_117 = Enum (245, "control-117"),
305  MIDI_SIGNAL_CONTROL_118 = Enum (246, "control-118"),
306  MIDI_SIGNAL_CONTROL_119 = Enum (247, "control-119"),
307  MIDI_SIGNAL_CONTROL_120 = Enum (248, "control-120"),
308  MIDI_SIGNAL_CONTROL_121 = Enum (249, "control-121"),
309  MIDI_SIGNAL_CONTROL_122 = Enum (250, "control-122"),
310  MIDI_SIGNAL_CONTROL_123 = Enum (251, "control-123"),
311  MIDI_SIGNAL_CONTROL_124 = Enum (252, "control-124"),
312  MIDI_SIGNAL_CONTROL_125 = Enum (253, "control-125"),
313  MIDI_SIGNAL_CONTROL_126 = Enum (254, "control-126"),
314  MIDI_SIGNAL_CONTROL_127 = Enum (255, "control-127"),
315  };
316 
317  enum ProjectState {
318  PROJECT_INACTIVE = Enum (0, "inactive"),
319  PROJECT_ACTIVE = Enum (1, "active"),
320  PROJECT_PLAYING = Enum (2, "playing"),
321  };
322 
323  enum StandardOscWaveType {
324  STANDARD_OSC_SINE = Enum (1, "Sine"),
325  STANDARD_OSC_TRIANGLE = Enum (2, "Triangle"),
326  STANDARD_OSC_SAW_RISE = Enum (3, "Rising Saw"),
327  STANDARD_OSC_SAW_FALL = Enum (4, "Falling Saw"),
328  STANDARD_OSC_PEAK_RISE = Enum (5, "Rising Peak"),
329  STANDARD_OSC_PEAK_FALL = Enum (6, "Falling Peak"),
330  STANDARD_OSC_MOOG_SAW = Enum (7, "Moog Saw"),
331  STANDARD_OSC_SQUARE = Enum (8, "Square"),
332  STANDARD_OSC_PULSE = Enum (9, "Pulse"),
333  };
334 
335  interface Bus;
336  interface CSynth;
337  interface DataPocket;
338  interface EditableSample;
339  interface Janitor;
340  interface MidiNotifier;
341  interface MidiSynth;
342  interface Part;
343  interface Song;
344  interface Source;
345  interface Track;
346  interface Wave;
347  interface WaveRepo;
348  interface Item {
349  void add_parasite (SfiString path, Rec parasite) {
350  Info help = "Add a new parasite to an item.";
351  In path = ("Path", "", ":flagstodo");
352  In parasite = ("Parasite", "", ":flagstodo");
353  }
354  Bool check_is_a (SfiString type_name) {
355  Info help = "Check whether an item has a certain type.";
356  In type_name = ("Type Name", "", ":flagstodo");
357  Out is_a = ("is-a", "", FALSE, ":flagstodo");
358  }
359  void clear_undo () {
360  Info help = "Call the clear-undo function of the project corresponding to this item if any.";
361  }
362  Bool editable_property (SfiString property_name) {
363  Info help = "Test whether a property is editable according to object state and property options.";
364  In property_name = ("property-name", "Item property name", ":flagstodo");
365  Out editable = ("editable", "", FALSE, ":flagstodo");
366  }
367  Icon get_icon () {
368  Info help = "Get the current icon of an item.";
369  Out icon = ("icon", "", ":flagstodo");
370  }
371  SfiString get_name () {
372  Info help = "Retrieve an item's name.";
373  Out name = ("Name", "", ":flagstodo");
374  }
375  SfiString get_name_or_type () {
376  Info help = "Retrieve an item's name or type if it has no name.";
377  Out name = ("Name", "", ":flagstodo");
378  }
379  Rec get_parasite (SfiString path) {
380  Info help = "Retrieve a parasite from an item.";
381  In path = ("Path", "", ":flagstodo");
382  Out parasite = ("Parasite", "", ":flagstodo");
383  }
384  Item get_parent () {
385  Info help = "Retrieve an item's parent.";
386  Out parent = ("Parent", "", ":flagstodo");
387  }
388  Item get_project () {
389  Info help = "Retrieve an item's project.";
390  Out project = ("Project", "", ":flagstodo");
391  }
392  PropertyCandidates get_property_candidates (SfiString property_name) {
393  Info help = "Retrieve tentative values for an item or item sequence property.";
394  In property_name = ("property-name", "Item property name", ":flagstodo");
395  Out candidates = ("Candidates", "", ":flagstodo");
396  }
397  Int get_seqid () {
398  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.";
399  Out seq_id = ("Sequential ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
400  }
401  SfiString get_type () {
402  Info help = "Retrieve an item's type name.";
403  Out string = ("string", "", ":flagstodo");
404  }
405  SfiString get_type_authors () {
406  Info help = "Retrieve authors of an item's type implementation.";
407  Out string = ("string", "", ":flagstodo");
408  }
409  SfiString get_type_blurb () {
410  Info help = "Retrieve an item's type description.";
411  Out string = ("string", "", ":flagstodo");
412  }
413  SfiString get_type_license () {
414  Info help = "Retrieve the license for an item's type implementation.";
415  Out string = ("string", "", ":flagstodo");
416  }
417  SfiString get_type_name () {
418  Info help = "Retrieve an item's type name.";
419  Out string = ("string", "", ":flagstodo");
420  }
421  SfiString get_uname_path () {
422  Info help = "Retrieve the project relative uname path for this item.";
423  Out uname_path = ("uname-path", "", ":flagstodo");
424  }
425  void group_undo (SfiString name) {
426  Info help = "Request multiple modifying actions on an item to be grouped together as single undo operation.";
427  In name = ("name", "A name for the undo group to be created", ":flagstodo");
428  }
429  Bool internal () {
430  Info help = "Check whether an item is internal, i.e. owned by another non-internal item.";
431  Out internal = ("Internal", "", FALSE, ":flagstodo");
432  }
433  StringSeq list_parasites (SfiString path) {
434  Info help = "List parasites within a parasite path segment.";
435  In path = ("Path", "", ":flagstodo");
436  Out paths = ("Parasite Paths", "", ":flagstodo");
437  }
438  void redo () {
439  Info help = "Call the redo function of the project corresponding to this item if any.";
440  }
441  Int redo_depth () {
442  Info help = "Call the redo-depth function of the project corresponding to this item if any.";
443  Out redo_depth = ("redo-depth", "Number of times redo can be called", 0, 0, SFI_MAXINT, 1, ":flagstodo");
444  }
445  void set_name (SfiString name) {
446  Info help = "Set an item's name.";
447  In name = ("Name", "", ":flagstodo");
448  }
449  void set_parasite (SfiString path, Rec parasite) {
450  Info help = "Set or change a parasite on an item.";
451  In path = ("Path", "", ":flagstodo");
452  In parasite = ("Parasite", "", ":flagstodo");
453  }
454  void undo () {
455  Info help = "Call the undo function of the project corresponding to this item if any.";
456  }
457  Int undo_depth () {
458  Info help = "Call the undo-depth function of the project corresponding to this item if any.";
459  Out undo_depth = ("undo-depth", "Number of times undo can be called", 0, 0, SFI_MAXINT, 1, ":flagstodo");
460  }
461  void ungroup_undo () {
462  Info help = "Ends the undo grouping opened up by a previous group-undo() call.";
463  }
464  void unuse () {
465  Info help = "Decrement use count for when an item is not needed anymore.";
466  }
467  Item use () {
468  Info help = "Increment use count to keep an item alive.";
469  Out used_item = ("Item", "", ":flagstodo");
470  }
471  signal parasites_added (SfiString a);
472  signal parasite_changed (SfiString a);
473  property Int seqid = ("Sequential ID", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
474  };
475 
476  interface MidiNotifier : Item {
477  };
478 
479  interface Source : Item {
480  void clear_inputs () {
481  Info help = "Disconnect all module inputs.";
482  }
483  void clear_outputs () {
484  Info help = "Disconnect all module outputs.";
485  }
486  Int get_automation_channel (SfiString property_name) {
487  Info help = "Get MIDI channel from an automation property.";
488  In property_name = ("property-name", "Item property name", ":flagstodo");
489  Out midi_channel = ("midi-channel", "", 0, 0, 99, 1, ":flagstodo");
490  }
491  MidiControlType get_automation_control (SfiString property_name) {
492  Info help = "Get control type from an automation property.";
493  In property_name = ("property-name", "Item property name", ":flagstodo");
494  Out control_type = ("control-type", "", ":flagstodo");
495  }
496  Bool has_output (Int ochannel) {
497  Info help = "Check whether a module's output channel is connected.";
498  In ochannel = ("ochannel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
499  Out has_outputs = ("has-outputs", "", FALSE, ":flagstodo");
500  }
501  Bool has_outputs () {
502  Info help = "Check whether a module has output channel connections.";
503  Out has_outputs = ("Has Outputs", "", FALSE, ":flagstodo");
504  }
505  SfiString ichannel_blurb (Int input_channel) {
506  Info help = "Get input channel description.";
507  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
508  Out channel_blurb = ("Channel Blurb", "", ":flagstodo");
509  }
510  Int ichannel_get_n_joints (Int input_channel) {
511  Info help = "Retrieve the number of inputs connected to an input channel.";
512  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
513  Out n_joints = ("Number of Connections", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
514  }
515  Int ichannel_get_ochannel (Int input_channel, Int input_joint) {
516  Info help = "Retrieve output channel of the module connected to a specific joint of an input channel.";
517  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
518  In input_joint = ("Input Joint", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
519  Out ochannel = ("Output Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
520  }
521  SfiString ichannel_ident (Int input_channel) {
522  Info help = "Get canonical input channel name.";
523  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
524  Out channel_ident = ("Channel Name", "", ":flagstodo");
525  }
526  SfiString ichannel_label (Int input_channel) {
527  Info help = "Get input channel name.";
528  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
529  Out channel_label = ("Channel Name", "", ":flagstodo");
530  }
531  Bool is_joint_ichannel (SfiString input_channel) {
532  Info help = "Check if an input channel is a joint (multi-connect) channel.";
533  In input_channel = ("Input Channel", "", ":flagstodo");
534  Out is_jchannel = ("Is Joint Channel", "", FALSE, ":flagstodo");
535  }
536  Bool is_joint_ichannel_by_id (Int input_channel) {
537  Info help = "Check if an input channel is a joint (multi-connect) channel.";
538  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
539  Out is_jchannel = ("Is Joint Channel", "", FALSE, ":flagstodo");
540  }
541  Bool is_prepared () {
542  Info help = "Check whether a source is prepared for synthesis processing.";
543  Out is_prepared = ("is-prepared", "", FALSE, ":flagstodo");
544  }
545  Int n_ichannels () {
546  Info help = "Get the number of input channels of a module.";
547  Out n_channels = ("Number of Channels", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
548  }
549  Int n_ochannels () {
550  Info help = "Get the number of output channels of a module.";
551  Out n_channels = ("Number of Channels", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
552  }
553  SfiString ochannel_blurb (Int output_channel) {
554  Info help = "Get output channel description.";
555  In output_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
556  Out channel_blurb = ("Channel Blurb", "", ":flagstodo");
557  }
558  SfiString ochannel_ident (Int output_channel) {
559  Info help = "Get canonical output channel name.";
560  In output_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
561  Out channel_ident = ("Channel Name", "", ":flagstodo");
562  }
563  SfiString ochannel_label (Int output_channel) {
564  Info help = "Get output channel name.";
565  In output_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
566  Out channel_label = ("Channel Name", "", ":flagstodo");
567  }
568  ErrorType set_automation (SfiString property_name, Int midi_channel, MidiControlType control_type) {
569  Info help = "Setup automation parameters for a property.";
570  In property_name = ("property-name", "Item property name", ":flagstodo");
571  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");
572  In control_type = ("Control Type", "The type of control events used for automation", ":flagstodo");
573  Out error = ("Error", "", ":flagstodo");
574  }
575  ErrorType set_input (SfiString input_channel, Source omodule, SfiString output_channel) {
576  Info help = "Connect a module input to another module's output.";
577  In input_channel = ("Input Channel", "", ":flagstodo");
578  In omodule = ("Output Module", "", ":flagstodo");
579  In output_channel = ("Output Channel", "", ":flagstodo");
580  Out error = ("Error", "", ":flagstodo");
581  }
582  ErrorType set_input_by_id (Int input_channel, Source omodule, Int output_channel) {
583  Info help = "Connect a module input to another module's output.";
584  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
585  In omodule = ("Output Module", "", ":flagstodo");
586  In output_channel = ("Output Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
587  Out error = ("Error", "", ":flagstodo");
588  }
589  void set_pos (Real x_pos, Real y_pos) {
590  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.";
591  In x_pos = ("X Position", "", ":flagstodo");
592  In y_pos = ("Y Position", "", ":flagstodo");
593  }
594  ErrorType unset_input (SfiString input_channel, Source omodule, SfiString output_channel) {
595  Info help = "Disconnect a module input.";
596  In input_channel = ("Input Channel", "", ":flagstodo");
597  In omodule = ("Output Module", "", ":flagstodo");
598  In output_channel = ("Output Channel", "", ":flagstodo");
599  Out error = ("Error", "", ":flagstodo");
600  }
601  ErrorType unset_input_by_id (Int input_channel, Source omodule, Int output_channel) {
602  Info help = "Disconnect a module input.";
603  In input_channel = ("Input Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
604  In omodule = ("Output Module", "", ":flagstodo");
605  In output_channel = ("Output Channel", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
606  Out error = ("Error", "", ":flagstodo");
607  }
608  signal probes (ProbeSeq a);
609  signal io_changed ();
610  property Real pos_x = ("Position X", "", ":flagstodo");
611  property Real pos_y = ("Position Y", "", ":flagstodo");
612  };
613 
614  interface Constant : Source {
615  property Real value_1 = ("Value [float]", "Constant signal value", ":flagstodo");
616  property Real frequency_1 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo");
617  property Int note_1 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo");
618  property Real value_2 = ("Value [float]", "Constant signal value", ":flagstodo");
619  property Real frequency_2 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo");
620  property Int note_2 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo");
621  property Real value_3 = ("Value [float]", "Constant signal value", ":flagstodo");
622  property Real frequency_3 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo");
623  property Int note_3 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo");
624  property Real value_4 = ("Value [float]", "Constant signal value", ":flagstodo");
625  property Real frequency_4 = ("Frequency", "Constant signal value interpreted as frequency value in Hertz", ":flagstodo");
626  property Int note_4 = ("Note", "Constant signal value as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo");
627  };
628 
629  interface SubIPort : Source {
630  property SfiString in_port_1 = ("Input Port 1", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
631  property SfiString in_port_2 = ("Input Port 2", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
632  property SfiString in_port_3 = ("Input Port 3", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
633  property SfiString in_port_4 = ("Input Port 4", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
634  };
635 
636  interface InstrumentInput : SubIPort {
637  property SfiString in_port_1 = ("in-port-1", "", ":flagstodo");
638  property SfiString in_port_2 = ("in-port-2", "", ":flagstodo");
639  property SfiString in_port_3 = ("in-port-3", "", ":flagstodo");
640  property SfiString in_port_4 = ("in-port-4", "", ":flagstodo");
641  };
642 
643  interface Snooper : Source {
644  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");
645  };
646 
647  interface StandardOsc : Source {
648  property StandardOscWaveType wave_form = ("Wave", "Oscillator wave form", ":flagstodo");
649  property Real phase = ("Phase", "Initial phase of the oscillator wave form (cycle offset in degree)", ":flagstodo");
650  property Real base_freq = ("Frequency", "Oscillator frequency in Hertz, i.e. the number of oscillator cycles per second", ":flagstodo");
651  property Int base_note = ("Note", "Oscillator frequency as note, converted to Hertz according to the current musical tuning", 69, 0, 131, 12, ":flagstodo");
652  property Int transpose = ("Transpose", "Transposition of the oscillator frequency in semitones", 0, -72, 72, 12, ":flagstodo");
653  property Int fine_tune = ("Fine Tune", "Amount of detuning in cent (hundredth part of a semitone)", 0, -100, 100, 10, ":flagstodo");
654  property Real fm_perc = ("Input Modulation [%]", "Strength of linear frequency modulation", ":flagstodo");
655  property Bool exponential_fm = ("Exponential FM", "Perform exponential frequency modulation instead of linear", FALSE, ":flagstodo");
656  property Real fm_n_octaves = ("Octaves", "Number of octaves to be affected by exponential frequency modulation", ":flagstodo");
657  property Real self_perc = ("Self Modulation [%]", "Strength of self modulation", ":flagstodo");
658  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");
659  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");
660  };
661 
662  interface Container : Source {
663  Item get_item (SfiString item_type, Int seq_id) {
664  Info help = "Retrieve a containers immediate child from it's sequential id.";
665  In item_type = ("item-type", "Type of the item to retrieve", ":flagstodo");
666  In seq_id = ("seq-id", "Sequential ID", 0, 0, SFI_MAXINT, 1, ":flagstodo");
667  Out item = ("item", "The item with seqid as requested", ":flagstodo");
668  }
669  ItemSeq list_children () {
670  Info help = "Retrieve all immediate children of a container";
671  Out item_list = ("item-list", "", ":flagstodo");
672  }
673  signal item_added (Item a);
674  signal item_remove (Item a, Int b);
675  };
676 
677  interface Super : Container {
678  property SfiString author = ("Author", "Person changing or creating this object", ":flagstodo");
679  property SfiString license = ("License", "Copyright license applying to this object", ":flagstodo");
680  property SfiString copyright = ("copyright", "", ":flagstodo");
681  property Num creation_time = ("Creation Time", "", ":flagstodo");
682  property Num modification_time = ("Last modification time", "", ":flagstodo");
683  };
684 
685  interface SNet : Super {
686  ErrorType can_create_source (SfiString module_type) {
687  Info help = "Check whether inserting a new module into a synthesis network is possible";
688  In module_type = ("Module Type", "", ":flagstodo");
689  Out error = ("Error", "", ":flagstodo");
690  }
691  Source create_source (SfiString module_type) {
692  Info help = "Insert a new module into a synthesis network";
693  In module_type = ("Module Type", "", ":flagstodo");
694  Out module = ("New Module", "", ":flagstodo");
695  }
696  ErrorType remove_source (Source module) {
697  Info help = "Remove an existing module from its synthesis network";
698  In module = ("Module", "", ":flagstodo");
699  Out error = ("Error", "", ":flagstodo");
700  }
701  signal port_unregistered ();
702  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");
703  };
704 
705  interface CSynth : SNet {
706  };
707 
708  interface Song : SNet {
709  Bus ensure_master_bus () {
710  Info help = "Retrieve master output bus of a song, will create one if it doesn't exist.";
711  Out bus = ("bus", "", ":flagstodo");
712  }
713  void ensure_track_links () {
714  Info help = "Ensure that each part in a song is inserted into at least one track.";
715  }
716  Track find_track_for_part (Part part) {
717  Info help = "Find a track suitable for playing notes of a given part.";
718  In part = ("Part", "", ":flagstodo");
719  Out track = ("Track", "", ":flagstodo");
720  }
721  Bus get_master_bus () {
722  Info help = "Retrieve master output bus of a song if it exists.";
723  Out bus = ("bus", "", ":flagstodo");
724  }
725  void synthesize_note (Track track, Int duration, Int note, Int fine_tune, Real velocity) {
726  Info help = "Synthesize a note on a song of an active project.";
727  In track = ("Track", "", ":flagstodo");
728  In duration = ("Tick Duration", "", 1, 1, SFI_MAXINT, 384, ":flagstodo");
729  In note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
730  In fine_tune = ("Fine Tune", "Fine tune in cents per semitone", 0, -100, 100, 10, ":flagstodo");
731  In velocity = ("Velocity", "", ":flagstodo");
732  }
733  signal pointer_changed (Int a);
734  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");
735  property Int tpqn = ("Ticks", "Number of ticks per quarter note", 384, 384, 384, 0, ":flagstodo");
736  property Int numerator = ("Numerator", "Measure numerator", 4, 1, 256, 1, ":flagstodo");
737  property Int denominator = ("Denominator", "Measure denominator, must be a power of 2", 4, 1, 256, 0, ":flagstodo");
738  property CSynth pnet = ("Postprocessor", "Synthesis network to be used as postprocessor", ":flagstodo");
739  property Bool auto_activate = ("auto-activate", "", TRUE, ":flagstodo");
740  property Bool loop_enabled = ("loop-enabled", "", FALSE, ":flagstodo");
741  property Int loop_left = ("loop-left", "", -1, -1, SFI_MAXINT, 384, ":flagstodo");
742  property Int loop_right = ("loop-right", "", -1, -1, SFI_MAXINT, 384, ":flagstodo");
743  property Int tick_pointer = ("tick-pointer", "", -1, -1, SFI_MAXINT, 384, ":flagstodo");
744  };
745 
746  interface MidiSynth : SNet {
747  property Int midi_channel = ("MIDI Channel", "", 1, 1, 99, 1, ":flagstodo");
748  property Int n_voices = ("Max Voices", "Maximum number of voices for simultaneous playback", 16, 1, 256, 1, ":flagstodo");
749  property CSynth snet = ("Synthesizer", "Synthesis network to be used as MIDI instrument", ":flagstodo");
750  property CSynth pnet = ("Postprocessor", "Synthesis network to be used as postprocessor", ":flagstodo");
751  property Real volume_f = ("Master [float]", "", ":flagstodo");
752  property Real volume_dB = ("Master [dB]", "", ":flagstodo");
753  property Int volume_perc = ("Master [%]", "", 100, 0, 1584, 1, ":flagstodo");
754  property Bool auto_activate = ("auto-activate", "", TRUE, ":flagstodo");
755  };
756 
757  interface WaveRepo : Super {
758  ErrorType load_file (SfiString file_name) {
759  Info help = "Load wave from file";
760  In file_name = ("File Name", "The file to import waves from", ":flagstodo");
761  Out error = ("Error", "", ":flagstodo");
762  }
763  void remove_wave (Wave wave) {
764  Info help = "Remove a wave from repository";
765  In wave = ("Wave", "", ":flagstodo");
766  }
767  };
768 
769  interface Server : Container {
770  signal registration (RegistrationType a, SfiString b, SfiString c);
771  signal script_start (Janitor a);
772  signal script_error (SfiString a, SfiString b, SfiString c);
773  property Rec bse_preferences = ("bse-preferences", "", ":flagstodo");
774  property SfiString wave_file = ("WAVE File", "Name of the WAVE file used for recording BSE sound output", ":flagstodo");
775  property Bool log_messages = ("Log Messages", "Log messages through the log system", TRUE, ":flagstodo");
776  };
777 
778  interface Project : Container {
779  ErrorType store_bse (Super super, SfiString file_name, Bool self_contained) {
780  Info help = "Save supers of a project into a BSE file. If no super is specified, the project itself is stored.";
781  In super = ("Super", "", ":flagstodo");
782  In file_name = ("File", "Destination file name", ":flagstodo");
783  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");
784  Out error = ("Error", "Error indicating possible failures", ":flagstodo");
785  }
786  CSynth create_csynth (SfiString name) {
787  Info help = "Create a synthsizer network for this project.";
788  In name = ("Name", "Synth network name", ":flagstodo");
789  Out csynth = ("Synthesizer Network", "New synth network", ":flagstodo");
790  }
791  MidiSynth create_midi_synth (SfiString name) {
792  Info help = "Create a MIDI synthesizer network for this project.";
793  In name = ("Name", "MIDI synth name", ":flagstodo");
794  Out midi_synth = ("MIDI Synthesizer", "New MIDI synth", ":flagstodo");
795  }
796  Song create_song (SfiString name) {
797  Info help = "Create a song for this project.";
798  In name = ("Name", "Song name", ":flagstodo");
799  Out song = ("Song", "The new song", ":flagstodo");
800  }
801  Item find_item (SfiString uname_path) {
802  Info help = "Find an item within a project, given its uname path.";
803  In uname_path = ("uname-path", "", ":flagstodo");
804  Out item = ("item", "", ":flagstodo");
805  }
806  DataPocket get_data_pocket (SfiString name) {
807  Info help = "Retrieve a specifically named data pocket for this project";
808  In name = ("Name", "Name of the data pocket", ":flagstodo");
809  Out data_pocket = ("Data Pocket", "The data pocket", ":flagstodo");
810  }
811  MidiNotifier get_midi_notifier () {
812  Info help = "Retrieve the project's midi notifier object.";
813  Out midi_notifier = ("midi-notifier", "", ":flagstodo");
814  }
815  ProjectState get_state () {
816  Info help = "Retrieve the current project state.";
817  Out state = ("State", "Project playback/activation state", ":flagstodo");
818  }
819  ItemSeq get_supers () {
820  Info help = "Retrieve all supers of this project.";
821  Out super_list = ("super-list", "", ":flagstodo");
822  }
823  WaveRepo get_wave_repo () {
824  Info help = "Ensure the project has a wave repository";
825  Out wrepo = ("Wave Repo", "The project's unique wave repo", ":flagstodo");
826  }
827  StringSeq list_uname_paths (SfiString item_type) {
828  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.";
829  In item_type = ("item-type", "", ":flagstodo");
830  Out uname_paths = ("Uname Paths", "", ":flagstodo");
831  }
832  ItemSeq match_items_by_uname (SfiString item_type, SfiString uname) {
833  Info help = "Retrieve all items of a specific type within a project with matching uname";
834  In item_type = ("item-type", "", ":flagstodo");
835  In uname = ("uname", "", ":flagstodo");
836  Out item_list = ("Item List", "", ":flagstodo");
837  }
838  void remove_snet (SNet snet) {
839  Info help = "Remove an existing synthesizer network from this project.";
840  In snet = ("SNet", "Synthesizer Network", ":flagstodo");
841  }
842  signal state_changed (ProjectState a);
843  property Bool dirty = ("dirty", "Whether project needs saving", FALSE, ":flagstodo");
844  };
845 
846  interface SubSynth : Source {
847  property CSynth snet = ("Synthesizer", "Synthesis network to use as embedded sub network", ":flagstodo");
848  property SfiString in_port_1 = ("Input Port 1", "Output port name to interface from", ":flagstodo");
849  property SfiString out_port_1 = ("Output Port 1", "Input port name to interface to", ":flagstodo");
850  property SfiString in_port_2 = ("Input Port 2", "Output port name to interface from", ":flagstodo");
851  property SfiString out_port_2 = ("Output Port 2", "Input port name to interface to", ":flagstodo");
852  property SfiString in_port_3 = ("Input Port 3", "Output port name to interface from", ":flagstodo");
853  property SfiString out_port_3 = ("Output Port 3", "Input port name to interface to", ":flagstodo");
854  property SfiString in_port_4 = ("Input Port 4", "Output port name to interface from", ":flagstodo");
855  property SfiString out_port_4 = ("Output Port 4", "Input port name to interface to", ":flagstodo");
856  property SfiString in_port_5 = ("Input Port 5", "Output port name to interface from", ":flagstodo");
857  property SfiString out_port_5 = ("Output Port 5", "Input port name to interface to", ":flagstodo");
858  property SfiString in_port_6 = ("Input Port 6", "Output port name to interface from", ":flagstodo");
859  property SfiString out_port_6 = ("Output Port 6", "Input port name to interface to", ":flagstodo");
860  property SfiString in_port_7 = ("Input Port 7", "Output port name to interface from", ":flagstodo");
861  property SfiString out_port_7 = ("Output Port 7", "Input port name to interface to", ":flagstodo");
862  property SfiString in_port_8 = ("Input Port 8", "Output port name to interface from", ":flagstodo");
863  property SfiString out_port_8 = ("Output Port 8", "Input port name to interface to", ":flagstodo");
864  };
865 
866  interface Bus : SubSynth {
867  ErrorType connect_bus (Bus bus) {
868  Info help = "Add a bus to the input list of a bus.";
869  In bus = ("bus", "", ":flagstodo");
870  Out error = ("error", "", ":flagstodo");
871  }
872  ErrorType connect_track (Track track) {
873  Info help = "Add a track to the input list of a bus.";
874  In track = ("track", "", ":flagstodo");
875  Out error = ("error", "", ":flagstodo");
876  }
877  ErrorType disconnect_bus (Bus bus) {
878  Info help = "Remove a bus from the input list of a bus.";
879  In bus = ("bus", "", ":flagstodo");
880  Out error = ("error", "", ":flagstodo");
881  }
882  ErrorType disconnect_track (Track track) {
883  Info help = "Remove a track from the input list of a bus.";
884  In track = ("track", "", ":flagstodo");
885  Out error = ("error", "", ":flagstodo");
886  }
887  property ItemSeq inputs = ("Input Signals", "Synthesis signals (from tracks and busses) used as bus input", ":flagstodo");
888  property ItemSeq outputs = ("Output Signals", "Mixer busses used as output for synthesis signals", ":flagstodo");
889  property CSynth snet = ("snet", "", ":flagstodo");
890  property Bool mute = ("Mute", "Mute: turn off the bus volume", FALSE, ":flagstodo");
891  property Bool solo = ("Solo", "Solo: mute all other busses", FALSE, ":flagstodo");
892  property Bool sync = ("Sync", "Syncronize left and right volume", TRUE, ":flagstodo");
893  property Real left_volume = ("Left Volume", "Volume adjustment in decibel of left bus channel", ":flagstodo");
894  property Real right_volume = ("Right Volume", "Volume adjustment in decibel of right bus channel", ":flagstodo");
895  property Bool master_output = ("Master Output", "", FALSE, ":flagstodo");
896  };
897 
898  interface PcmOutput : Source {
899  property Real master_volume_f = ("Master [float]", "", ":flagstodo");
900  property Real master_volume_dB = ("Master [dB]", "", ":flagstodo");
901  property Int master_volume_perc = ("Master [%]", "", 100, 0, 1584, 1, ":flagstodo");
902  };
903 
904  interface MidiVoiceSwitch : Source {
905  };
906 
907  interface LadspaModule : Source {
908  };
909 
910  interface BiquadFilter : Source {
911  property BiquadFilterType filter_type = ("Filter Type", "The filter design type", ":flagstodo");
912  property Real freq = ("Cutoff [Hz]", "Filter cutoff frequency in Hertz", ":flagstodo");
913  property Int note = ("Note", "Filter cutoff frequency as note, converted to Hertz according to the current musical tuning", 81, 0, 131, 12, ":flagstodo");
914  property Real gain = ("Gain [dB]", "", ":flagstodo");
915  property Real fm_perc = ("Input Modulation [%]", "Strength of linear frequency modulation", ":flagstodo");
916  property Bool exponential_fm = ("Exponential FM", "Perform exponential frequency modulation instead of linear", FALSE, ":flagstodo");
917  property Real fm_n_octaves = ("Octaves", "Number of octaves to be affected by exponential frequency modulation", ":flagstodo");
918  property Real gain_perc = ("Gain Modulation [%]", "Strength of gain modulation", ":flagstodo");
919  };
920 
921  interface PcmInput : Source {
922  property Real gain_volume_f = ("Input Gain [float]", "", ":flagstodo");
923  property Real gain_volume_dB = ("Input Gain [dB]", "", ":flagstodo");
924  property Int gain_volume_perc = ("input Gain [%]", "", 100, 0, 1584, 1, ":flagstodo");
925  };
926 
927  interface ContextMerger : Source {
928  };
929 
930  interface Track : ContextMerger {
931  TrackPartSeq list_parts () {
932  Info help = "List parts scheduled in a track, sorted by tick.";
933  Out part_list = ("Part List", "", ":flagstodo");
934  }
935  ItemSeq list_parts_uniq () {
936  Info help = "List all parts contained in a track.";
937  Out part_list = ("Part List", "", ":flagstodo");
938  }
939  void remove_link (Int id) {
940  Info help = "Remove a specific part link by ID from a track.";
941  In id = ("Link ID", "", 0, 0, SFI_MAXINT, 384, ":flagstodo");
942  }
943  signal changed ();
944  property Bool muted = ("Muted", "", FALSE, ":flagstodo");
945  property CSynth snet = ("Synthesizer", "Synthesis network to be used as instrument", ":flagstodo");
946  property Wave wave = ("Wave", "Wave to be used as instrument", ":flagstodo");
947  property Int midi_channel = ("MIDI Channel", "Midi channel assigned to this track, 0 uses internal per-track channel", 0, 0, 99, 1, ":flagstodo");
948  property Int n_voices = ("Max Voices", "Maximum number of voices for simultaneous playback", 16, 1, 256, 1, ":flagstodo");
949  property CSynth pnet = ("Postprocessor", "Synthesis network to be used as postprocessor", ":flagstodo");
950  property ItemSeq outputs = ("Output Signals", "Mixer busses used as output for this track", ":flagstodo");
951  };
952 
953  interface SubOPort : Source {
954  property SfiString out_port_1 = ("Output Port 1", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
955  property SfiString out_port_2 = ("Output Port 2", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
956  property SfiString out_port_3 = ("Output Port 3", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
957  property SfiString out_port_4 = ("Output Port 4", "The port name is a unique name to establish input<->output port relationships", ":flagstodo");
958  };
959 
961  property SfiString out_port_1 = ("out-port-1", "", ":flagstodo");
962  property SfiString out_port_2 = ("out-port-2", "", ":flagstodo");
963  property SfiString out_port_3 = ("out-port-3", "", ":flagstodo");
964  property SfiString out_port_4 = ("out-port-4", "", ":flagstodo");
965  };
966 
967  interface WaveOsc : Source {
968  void request_pcm_position () {
969  Info help = "Request emission of the ::notify_pcm_position signal.";
970  }
971  void set_from_editable_sample (EditableSample esample) {
972  Info help = "Set wave to play from editable sample, bypassing undo and storage mechanisms.";
973  In esample = ("esample", "Editable Sample", ":flagstodo");
974  }
975  signal notify_pcm_position (Num a, Int b);
976  property Wave wave = ("Wave", "Wave used as oscillator source", ":flagstodo");
977  property Int channel = ("Channel", "The audio channel to play, usually 1 is left, 2 is right", 1, 1, 256, 2, ":flagstodo");
978  property Real fm_perc = ("Input Modulation [%]", "Modulation Strength for linear frequency modulation", ":flagstodo");
979  property Bool exponential_fm = ("Exponential FM", "Perform exponential frequency modulation instead of linear", FALSE, ":flagstodo");
980  property Real fm_n_octaves = ("Octaves", "Number of octaves to be affected by exponential frequency modulation", ":flagstodo");
981  };
982 
983  interface MidiController : Source {
984  property Int midi_channel = ("MIDI Channel", "Input MIDI channel, 0 uses network's default channel", 0, 0, 99, 1, ":flagstodo");
985  property MidiSignalType control_1 = ("Signal 1", "", ":flagstodo");
986  property MidiSignalType control_2 = ("Signal 2", "", ":flagstodo");
987  property MidiSignalType control_3 = ("Signal 3", "", ":flagstodo");
988  property MidiSignalType control_4 = ("Signal 4", "", ":flagstodo");
989  };
990 
991  interface MidiVoiceInput : Source {
992  };
993 
994  interface Wave : Source {
995  Real chunk_get_mix_freq (Int chunk_index) {
996  Info help = "Retrieve mixing frequency of a wave chunk.";
997  In chunk_index = ("Chunk Index", "Index of chunk", 0, 0, SFI_MAXINT, 1, ":flagstodo");
998  Out mix_freq = ("mix-freq", "", ":flagstodo");
999  }
1000  Real chunk_get_osc_freq (Int chunk_index) {
1001  Info help = "Retrieve oscillating frequency of a wave chunk.";
1002  In chunk_index = ("Chunk Index", "Index of chunk", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1003  Out osc_freq = ("osc-freq", "", ":flagstodo");
1004  }
1005  ErrorType load_wave (SfiString file_name, SfiString wave_name) {
1006  Info help = "Load sample chunks from a wave file";
1007  In file_name = ("File Name", "The wave file to read wave chunks from", ":flagstodo");
1008  In wave_name = ("Wave Name", "The name of the wave to read wave chunks from", ":flagstodo");
1009  Out error = ("Error", "BSE error type", ":flagstodo");
1010  }
1011  Int n_wave_chunks () {
1012  Info help = "Get the number of wave chunks of a wave";
1013  Out n_chunks = ("Number of Wave Chunks", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1014  }
1015  EditableSample use_editable (Int chunk_index) {
1016  Info help = "Retrieve an editable sample object for a wave chunk.";
1017  In chunk_index = ("chunk-index", "Index of chunk to edit", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1018  Out esample = ("esample", "Editable sample", ":flagstodo");
1019  }
1020  property Bool locator_set = ("Locator Set", "", FALSE, ":flagstodo");
1021  property SfiString file_name = ("File Name", "", ":flagstodo");
1022  property SfiString wave_name = ("Wave Name", "", ":flagstodo");
1023  };
1024 
1025  interface MidiInput : Source {
1026  property Int midi_channel = ("MIDI Channel", "Input MIDI channel, 0 uses network's default channel", 0, 0, 99, 1, ":flagstodo");
1027  };
1028 
1029  interface EditableSample : Item {
1030  void close () {
1031  Info help = "Close an opened sample.";
1032  }
1033  FloatSeq collect_stats (Int voffset, Real offset_scale, Int block_size, Int stepping, Int max_pairs) {
1034  Info help = "Collect statistics from sample blocks as (minimum, maximum) pairs.";
1035  In voffset = ("voffset", "Offset of first stat block", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1036  In offset_scale = ("offset-scale", "Factor to scale voffset increments with", ":flagstodo");
1037  In block_size = ("block-size", "Block size to compute stat pairs from", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1038  In stepping = ("stepping", "Stepping within a stat block", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1039  In max_pairs = ("max-pairs", "Maximum number of (min, max) pairs to collect", 1, 0, SFI_MAXINT, 1, ":flagstodo");
1040  Out sample_block = ("sample-block", "Block of samples", ":flagstodo");
1041  }
1042  Int get_length () {
1043  Info help = "Return the number of values in the sample.";
1044  Out length = ("length", "Number of values", 1, 0, SFI_MAXINT, 1, ":flagstodo");
1045  }
1046  Int get_n_channels () {
1047  Info help = "Return the number of channels in the sample.";
1048  Out n_channels = ("n-channels", "Number of channels", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1049  }
1050  Real get_osc_freq () {
1051  Info help = "Return the oscillator frequency for the sample.";
1052  Out osc_freq = ("osc-freq", "Oscillator Frequency", ":flagstodo");
1053  }
1054  ErrorType open () {
1055  Info help = "Open the sample for reading.";
1056  Out error = ("Error", "", ":flagstodo");
1057  }
1058  FloatSeq read_samples (Int voffset) {
1059  Info help = "Read a set of samples from a specific offset.";
1060  In voffset = ("voffset", "Value offset", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1061  Out sample_block = ("sample-block", "Block of samples", ":flagstodo");
1062  }
1063  signal changed ();
1064  };
1065 
1066  interface Janitor : Item {
1067  SfiString get_action (Int nth_action) {
1068  Info help = "Retrieve an action of this janitor.";
1069  In nth_action = ("Nth Action", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1070  Out action = ("Action", "", ":flagstodo");
1071  }
1072  SfiString get_action_blurb (Int nth_action) {
1073  Info help = "Retrieve the help string of an action of this janitor.";
1074  In nth_action = ("Nth Action", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1075  Out action_blurb = ("Action Blurb", "", ":flagstodo");
1076  }
1077  SfiString get_action_name (Int nth_action) {
1078  Info help = "Retrieve the name of an action of this janitor.";
1079  In nth_action = ("Nth Action", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1080  Out action_name = ("Action Name", "", ":flagstodo");
1081  }
1082  SfiString get_proc_name () {
1083  Info help = "Retrieve the procedure name of this janitor.";
1084  Out proc_name = ("Proc Name", "", ":flagstodo");
1085  }
1086  SfiString get_script_name () {
1087  Info help = "Retrieve the script name of this janitor.";
1088  Out script_name = ("Script Name", "", ":flagstodo");
1089  }
1090  void kill () {
1091  Info help = "Kill a currently running janitor.";
1092  }
1093  Int n_actions () {
1094  Info help = "Retrieve number of user actions of this janitor.";
1095  Out n_actions = ("N Actions", "", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1096  }
1097  void trigger_action (SfiString action) {
1098  Info help = "Trigger an installed user action of this janitor.";
1099  In action = ("Action", "", ":flagstodo");
1100  }
1101  signal action (SfiString a, Int b);
1102  signal progress (Real a);
1103  signal action_changed (SfiString a, Int b);
1104  signal shutdown ();
1105  property SfiString ident = ("Script Identifier", "", ":flagstodo");
1106  property Bool connected = ("Connected", "", FALSE, ":flagstodo");
1107  property SfiString status_message = ("Status Message", "", ":flagstodo");
1108  property Int exit_code = ("Exit Code", "", 0, -256, 256, 0, ":flagstodo");
1109  property SfiString exit_reason = ("Exit Reason", "", ":flagstodo");
1110  };
1111 
1112  interface PcmWriter : Item {
1113  };
1114 
1115  interface Part : Item {
1116  signal range_changed (Int a, Int b, Int c, Int d);
1117  signal links_changed ();
1118  property Int n_channels = ("Channels", "", 1, 1, 4132, 4, ":flagstodo");
1119  property Int last_tick = ("Last Tick", "", 0, 0, SFI_MAXINT, 384, ":flagstodo");
1120  };
1121 
1122  interface DataPocket : Item {
1123  Int create_entry () {
1124  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.";
1125  Out entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1126  }
1127  ErrorType delete_entry (Int entry_id) {
1128  Info help = "Delete an existing entry from a data pocket";
1129  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1130  Out error = ("Error", "BSE error code", ":flagstodo");
1131  }
1132  Real get_float (Int entry_id, SfiString name) {
1133  Info help = "Retrieve a previously set floating point value from a data pocket entry.";
1134  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1135  In name = ("Name", "Name for the value", ":flagstodo");
1136  Out number = ("Number", "The value stored in the data pocket entry", ":flagstodo");
1137  }
1138  Int get_int (Int entry_id, SfiString name) {
1139  Info help = "Retrieve a previously set integer value from a data pocket entry.";
1140  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1141  In name = ("Name", "Name for the value", ":flagstodo");
1142  Out number = ("Number", "The value stored in the data pocket entry", 0, SFI_MININT, SFI_MAXINT, 1, ":flagstodo");
1143  }
1144  Int get_n_entries () {
1145  Info help = "Retrieve the number of entries created in a data pocket.";
1146  Out n_entries = ("N Entries", "The number of entries in use", 1, 0, SFI_MAXINT, 1, ":flagstodo");
1147  }
1148  Int get_nth_entry_id (Int entry_index) {
1149  Info help = "Retrieve the ID of an entry in the data pocket by sequential index.";
1150  In entry_index = ("Entry Index", "index into number of entries present", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1151  Out entry_id = ("Entry ID", "The unique pocket entry ID (or 0 if there's no such entry)", 0, 0, SFI_MAXINT, 1, ":flagstodo");
1152  }
1153  Item get_object (Int entry_id, SfiString name) {
1154  Info help = "Retrieve a previously set object reference from a data pocket entry.";
1155  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1156  In name = ("Name", "Name for the value", ":flagstodo");
1157  Out item = ("Item", "The value stored in the data pocket entry", ":flagstodo");
1158  }
1159  SfiString get_string (Int entry_id, SfiString name) {
1160  Info help = "Retrieve a previously set string from a data pocket entry.";
1161  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1162  In name = ("Name", "Name for the value", ":flagstodo");
1163  Out string = ("String", "The value stored in the data pocket entry", ":flagstodo");
1164  }
1165  ErrorType set_float (Int entry_id, SfiString name, Real number) {
1166  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.";
1167  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1168  In name = ("Name", "Name for the value", ":flagstodo");
1169  In number = ("Number", "The value to store in the data pocket entry", ":flagstodo");
1170  Out error = ("Error", "BSE error code", ":flagstodo");
1171  }
1172  ErrorType set_int (Int entry_id, SfiString name, Int number) {
1173  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.";
1174  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1175  In name = ("Name", "Name for the value", ":flagstodo");
1176  In number = ("Number", "The value to store in the data pocket entry", 0, SFI_MININT, SFI_MAXINT, 1, ":flagstodo");
1177  Out error = ("Error", "BSE error code", ":flagstodo");
1178  }
1179  ErrorType set_object (Int entry_id, SfiString name, Item item) {
1180  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";
1181  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1182  In name = ("Name", "Name for the value", ":flagstodo");
1183  In item = ("Item", "The value to store in the data pocket entry", ":flagstodo");
1184  Out error = ("Error", "BSE error code", ":flagstodo");
1185  }
1186  ErrorType set_string (Int entry_id, SfiString name, SfiString string) {
1187  Info help = "Set a named string in a data pocket entry.";
1188  In entry_id = ("Entry ID", "The unique pocket entry ID", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1189  In name = ("Name", "Name for the value", ":flagstodo");
1190  In string = ("String", "The value to store in the data pocket entry", ":flagstodo");
1191  Out error = ("Error", "BSE error code", ":flagstodo");
1192  }
1193  signal entry_added (Int a);
1194  signal entry_removed (Int a);
1195  signal entry_changed (Int a);
1196  };
1197 
1198  Category category_from_id (Int category_id) {
1199  Info help = "Find a BSE category from it's unique ID.";
1200  In category_id = ("Category ID", "", 1, 1, SFI_MAXINT, 1, ":flagstodo");
1201  Out category = ("Category", "", ":flagstodo");
1202  }
1203  CategorySeq categories_match (SfiString pattern) {
1204  Info help = "List BSE categories according to a pattern match.";
1205  In pattern = ("Pattern", "Pattern to match category, supports '*' and '?' wildcards.", ":flagstodo");
1206  Out categories = ("Categories", "", ":flagstodo");
1207  }
1208  CategorySeq categories_match_method (SfiString pattern, SfiString type) {
1209  Info help = "List BSE categories according to a pattern, of type procedure and applying to a certain object type.";
1210  In pattern = ("Pattern", "Pattern to match category, supports '*' and '?' wildcards.", ":flagstodo");
1211  In type = ("Type", "Object base type for methods to conform to.", ":flagstodo");
1212  Out categories = ("Categories", "", ":flagstodo");
1213  }
1214  CategorySeq categories_match_typed (SfiString pattern, SfiString type) {
1215  Info help = "List BSE categories according to a pattern and type match.";
1216  In pattern = ("Pattern", "Pattern to match category, supports '*' and '?' wildcards.", ":flagstodo");
1217  In type = ("Type", "Base type for categories to conform to.", ":flagstodo");
1218  Out categories = ("Categories", "", ":flagstodo");
1219  }
1220  NoteDescription note_describe (MusicalTuningType musical_tuning, Int note, Int fine_tune) {
1221  Info help = "Describe a note, providing information about its octave, semitone, frequency, etc.";
1222  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1223  In note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1224  In fine_tune = ("Fine Tune", "", 0, -100, 100, 10, ":flagstodo");
1225  Out note_description = ("Note Description", "", ":flagstodo");
1226  }
1227  NoteDescription note_describe_from_freq (MusicalTuningType musical_tuning, Real freq) {
1228  Info help = "Describe a note, given its frequency.";
1229  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1230  In freq = ("Frequency", "", ":flagstodo");
1231  Out note_description = ("Note Description", "", ":flagstodo");
1232  }
1233  NoteDescription note_construct (MusicalTuningType musical_tuning, Int semitone, Int octave, Int fine_tune) {
1234  Info help = "Describe a note, given its semitone, octave and fine tune.";
1235  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1236  In semitone = ("semitone", "", 9, 0, 11, 1, ":flagstodo");
1237  In octave = ("octave", "", 1, -4, 6, 2, ":flagstodo");
1238  In fine_tune = ("Fine Tune", "", 0, -100, 100, 10, ":flagstodo");
1239  Out note_description = ("Note Description", "", ":flagstodo");
1240  }
1241  NoteDescription note_from_string (MusicalTuningType musical_tuning, SfiString name) {
1242  Info help = "Describe a note, given its name and octave offset.";
1243  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1244  In name = ("Name", "", ":flagstodo");
1245  Out note_description = ("Note Description", "", ":flagstodo");
1246  }
1247  Int note_from_freq (MusicalTuningType musical_tuning, Real frequency) {
1248  Info help = "Retrieve the note of a certain frequency.";
1249  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1250  In frequency = ("Frequency", "", ":flagstodo");
1251  Out note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1252  }
1253  Real note_to_freq (MusicalTuningType musical_tuning, Int note, Int fine_tune) {
1254  Info help = "Retrieve the frequency of a certain note.";
1255  In musical_tuning = ("Musical Tuning", "", ":flagstodo");
1256  In note = ("Note", "", 69, 0, 131, 12, ":flagstodo");
1257  In fine_tune = ("Fine Tune", "", 0, -100, 100, 10, ":flagstodo");
1258  Out frequency = ("Frequency", "", ":flagstodo");
1259  }
1260  SampleFileInfo sample_file_info (SfiString file_name) {
1261  Info help = "Load sample file info from file";
1262  In file_name = ("File Name", "The file to load info from", ":flagstodo");
1263  Out sample_file_info = ("sample-file-info", "", ":flagstodo");
1264  }
1265  void script_add_action (SfiString action, SfiString name, SfiString blurb) {
1266  Info help = "Install a user action for script control.";
1267  In action = ("Action", "", ":flagstodo");
1268  In name = ("Name", "", ":flagstodo");
1269  In blurb = ("Blurb", "", ":flagstodo");
1270  }
1271  Janitor script_janitor () {
1272  Info help = "Retrieve the connection dependant janitor object.";
1273  Out janitor = ("Janitor", "", ":flagstodo");
1274  }
1275  void script_send_message (SfiString domain, SfiString msg_type, SfiString title, SfiString primary, SfiString secondary, SfiString details, SfiString config_check) {
1276  Info help = "Send a message from a script.";
1277  In domain = ("domain", "", ":flagstodo");
1278  In msg_type = ("msg-type", "", ":flagstodo");
1279  In title = ("title", "", ":flagstodo");
1280  In primary = ("primary", "", ":flagstodo");
1281  In secondary = ("secondary", "", ":flagstodo");
1282  In details = ("details", "", ":flagstodo");
1283  In config_check = ("config-check", "", ":flagstodo");
1284  }
1285  void script_progress (Real progress) {
1286  Info help = "Indicate progress (from 0.0 to 1.0 or -1 for unknown amount).";
1287  In progress = ("Progress", "", ":flagstodo");
1288  }
1289  void script_quit () {
1290  Info help = "Exit a script succesfully (server side).";
1291  }
1292  void script_remove_action (SfiString action) {
1293  Info help = "Remove a previously installed user action from script control.";
1294  In action = ("Action", "", ":flagstodo");
1295  }
1296  void script_set_status (SfiString message) {
1297  Info help = "Alter script status message.";
1298  In message = ("Message", "", ":flagstodo");
1299  }
1300  void wave_osc_mass_seek_perc (ItemSeq wosc_seq, Real pos_perc) {
1301  Info help = "Seek a list of wave oscillators to a pcm position given in percentage. The oscillators will seek to the given position syncronously.";
1302  In wosc_seq = ("Wave Oscilators", "", ":flagstodo");
1303  In pos_perc = ("pos-perc", "", ":flagstodo");
1304  }
1305  Real string_extract_number (SfiString string, SfiString format, Real aux_base, Real dflt) {
1306  Info help = "Retrieve numbers from a string.";
1307  In string = ("string", "", ":flagstodo");
1308  In format = ("format", "", ":flagstodo");
1309  In aux_base = ("aux-base", "", ":flagstodo");
1310  In dflt = ("dflt", "", ":flagstodo");
1311  Out number = ("number", "", ":flagstodo");
1312  }
1313  SfiString type_authors (SfiString type) {
1314  Info help = "Retrieve the authors who implemented a specific type.";
1315  In type = ("type", "", ":flagstodo");
1316  Out string = ("string", "", ":flagstodo");
1317  }
1318  SfiString type_blurb (SfiString type) {
1319  Info help = "Retrieve the description of a specific type.";
1320  In type = ("type", "", ":flagstodo");
1321  Out string = ("string", "", ":flagstodo");
1322  }
1323  SfiString type_license (SfiString type) {
1324  Info help = "Retrieve the license of a type impementation.";
1325  In type = ("type", "", ":flagstodo");
1326  Out string = ("string", "", ":flagstodo");
1327  }
1328  SfiString type_options (SfiString type) {
1329  Info help = "Retrieve the options of a specific type.";
1330  In type = ("type", "", ":flagstodo");
1331  Out string = ("string", "", ":flagstodo");
1332  }
1333 };
Definition: bsehack.idl:643
Definition: bsehack.idl:907
Definition: bsehack.idl:1122
Definition: bsehack.idl:1025
Interface for writing PCM wave data.
Definition: bseapi.idl:637
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:67
Definition: bsehack.idl:910
Base interface type for containers of Item derived types.
Definition: bseapi.idl:431
Base interface type for objects that can be added to a container.
Definition: bseapi.idl:346
Definition: bsehack.idl:647
Definition: bsehack.idl:629
Definition: bsehack.idl:967
Definition: bsehack.idl:1066
Source module for merging multiple synthesis contexts, used to implement polyphony.
Definition: bseapi.idl:427
Base interface type for synthesis modules with input or output streams.
Definition: bseapi.idl:422
Definition: bsehack.idl:983
Definition: bsehack.idl:898
Definition: bsehack.idl:953
Definition: bsehack.idl:904
signal
Definition: bsehack.idl:960
Definition: bsehack.idl:614
Definition: bsebasics.genidl.hh:548
Definition: bsehack.idl:921
Interface for editable PCM wave samples.
Definition: bseapi.idl:570
Interface for PCM wave samples.
Definition: bseapi.idl:574
Definition: bsehack.idl:636
Definition: bsehack.idl:991
Definition: sficxx.hh:16