10 Const MAXINT63 = +9223372036854775807;
11 Const MAXINT32 = +4294967295;
12 Const MAXINT31 = +2147483647;
13 Const MININT31 = -2147483648;
14 Const MAXFLOAT64 = 1.7976931348623157e+308;
18 NONE = Enum (0,
"", _(
"OK")),
19 INTERNAL = Enum (1,
"", _(
"Internal error (please report)")),
20 UNKNOWN = Enum (2,
"", _(
"Unknown error")),
21 IO = Enum (3,
"", _(
"Input/output error")),
22 PERMS = Enum (4,
"", _(
"Insufficient permissions")),
24 FILE_BUSY = Enum (5,
"", _(
"Device or resource busy")),
25 FILE_EXISTS = Enum (6,
"", _(
"File exists already")),
26 FILE_EOF = Enum (7,
"", _(
"End of file")),
27 FILE_EMPTY = Enum (8,
"", _(
"File empty")),
28 FILE_NOT_FOUND = Enum (9,
"", _(
"No such file, device or directory")),
29 FILE_IS_DIR = Enum (10,
"", _(
"Is a directory")),
30 FILE_OPEN_FAILED = Enum (11,
"", _(
"Open failed")),
31 FILE_SEEK_FAILED = Enum (12,
"", _(
"Seek failed")),
32 FILE_READ_FAILED = Enum (13,
"", _(
"Read failed")),
33 FILE_WRITE_FAILED = Enum (14,
"", _(
"Write failed")),
35 MANY_FILES = Enum (15,
"", _(
"Too many open files")),
36 NO_FILES = Enum (16,
"", _(
"Too many open files in system")),
37 NO_SPACE = Enum (17,
"", _(
"No space left on device")),
38 NO_MEMORY = Enum (18,
"", _(
"Out of memory")),
40 NO_HEADER = Enum (19,
"", _(
"Failed to detect header")),
41 NO_SEEK_INFO = Enum (20,
"", _(
"Failed to retrieve seek information")),
42 NO_DATA = Enum (21,
"", _(
"No data available")),
43 DATA_CORRUPT = Enum (22,
"", _(
"Data corrupt")),
44 WRONG_N_CHANNELS = Enum (23,
"", _(
"Wrong number of channels")),
45 FORMAT_INVALID = Enum (24,
"", _(
"Invalid format")),
46 FORMAT_UNKNOWN = Enum (25,
"", _(
"Unknown format")),
47 DATA_UNMATCHED = Enum (26,
"", _(
"Requested data values unmatched")),
49 TEMP = Enum (27,
"", _(
"Temporary error")),
50 WAVE_NOT_FOUND = Enum (28,
"", _(
"No such wave")),
51 CODEC_FAILURE = Enum (29,
"", _(
"Codec failure")),
52 UNIMPLEMENTED = Enum (30,
"", _(
"Functionality not implemented")),
53 INVALID_PROPERTY = Enum (31,
"", _(
"Invalid object property")),
54 INVALID_MIDI_CONTROL = Enum (32,
"", _(
"Invalid MIDI control type")),
55 PARSE_ERROR = Enum (33,
"", _(
"Parsing error")),
56 SPAWN = Enum (34,
"", _(
"Failed to spawn child process")),
58 DEVICE_NOT_AVAILABLE = Enum (35,
"", _(
"No device (driver) available")),
59 DEVICE_ASYNC = Enum (36,
"", _(
"Device not async capable")),
60 DEVICE_BUSY = Enum (37,
"", _(
"Device busy")),
61 DEVICE_FORMAT = Enum (38,
"", _(
"Failed to configure device format")),
62 DEVICE_BUFFER = Enum (39,
"", _(
"Failed to configure device buffer")),
63 DEVICE_LATENCY = Enum (40,
"", _(
"Failed to configure device latency")),
64 DEVICE_CHANNELS = Enum (41,
"", _(
"Failed to configure number of device channels")),
65 DEVICE_FREQUENCY = Enum (42,
"", _(
"Failed to configure device frequency")),
66 DEVICES_MISMATCH = Enum (43,
"", _(
"Device configurations mismatch")),
68 SOURCE_NO_SUCH_MODULE = Enum (44,
"", _(
"No such synthesis module")),
69 SOURCE_NO_SUCH_ICHANNEL = Enum (45,
"", _(
"No such input channel")),
70 SOURCE_NO_SUCH_OCHANNEL = Enum (46,
"", _(
"No such output channel")),
71 SOURCE_NO_SUCH_CONNECTION = Enum (47,
"", _(
"Input/Output channels not connected")),
72 SOURCE_PRIVATE_ICHANNEL = Enum (48,
"", _(
"Input channel is private")),
73 SOURCE_ICHANNEL_IN_USE = Enum (49,
"", _(
"Input channel already in use")),
74 SOURCE_CHANNELS_CONNECTED = Enum (50,
"", _(
"Input/output channels already connected")),
75 SOURCE_CONNECTION_INVALID = Enum (51,
"", _(
"Invalid synthesis module connection")),
76 SOURCE_PARENT_MISMATCH = Enum (52,
"", _(
"Parent mismatch")),
77 SOURCE_BAD_LOOPBACK = Enum (53,
"", _(
"Bad loopback")),
78 SOURCE_BUSY = Enum (54,
"", _(
"Synthesis module currently busy")),
79 SOURCE_TYPE_INVALID = Enum (55,
"", _(
"Invalid synthsis module type")),
81 PROC_NOT_FOUND = Enum (56,
"", _(
"No such procedure")),
82 PROC_BUSY = Enum (57,
"", _(
"Procedure currently busy")),
83 PROC_PARAM_INVAL = Enum (58,
"", _(
"Procedure parameter invalid")),
84 PROC_EXECUTION = Enum (59,
"", _(
"Procedure execution failed")),
85 PROC_ABORT = Enum (60,
"", _(
"Procedure execution aborted")),
87 NO_ENTRY = Enum (61,
"", _(
"No such entry")),
88 NO_EVENT = Enum (62,
"", _(
"No such event")),
89 NO_TARGET = Enum (63,
"", _(
"No target")),
90 NOT_OWNER = Enum (64,
"", _(
"Ownership mismatch")),
91 INVALID_OFFSET = Enum (65,
"", _(
"Invalid offset")),
92 INVALID_DURATION = Enum (66,
"", _(
"Invalid duration")),
93 INVALID_OVERLAP = Enum (67,
"", _(
"Invalid overlap")),
98 PROGRAM = Enum (1, _(
"Program Change")),
99 PRESSURE = Enum (2, _(
"Channel Pressure")),
100 PITCH_BEND = Enum (3, _(
"Pitch Bend")),
101 VELOCITY = Enum (4, _(
"Note Velocity")),
102 FINE_TUNE = Enum (5, _(
"Note Fine Tune")),
104 CONTINUOUS_0 = Enum (64, _(
"Bank Select")),
105 CONTINUOUS_1 = Enum (65, _(
"Modulation Depth")),
106 CONTINUOUS_2 = Enum (66, _(
"Breath Control")),
107 CONTINUOUS_3 = Enum (67, _(
"Continuous 3")),
108 CONTINUOUS_4 = Enum (68, _(
"Foot Controller")),
109 CONTINUOUS_5 = Enum (69, _(
"Portamento Time")),
110 CONTINUOUS_6 = Enum (70, _(
"Data Entry")),
111 CONTINUOUS_7 = Enum (71, _(
"Volume")),
112 CONTINUOUS_8 = Enum (72, _(
"Balance")),
113 CONTINUOUS_9 = Enum (73, _(
"Continuous 9")),
114 CONTINUOUS_10 = Enum (74, _(
"Panorama")),
115 CONTINUOUS_11 = Enum (75, _(
"Expression")),
116 CONTINUOUS_12 = Enum (76, _(
"Effect Control 1")),
117 CONTINUOUS_13 = Enum (77, _(
"Effect Control 2")),
118 CONTINUOUS_14 = Enum (78, _(
"Continuous 14")),
119 CONTINUOUS_15 = Enum (79, _(
"Continuous 15")),
120 CONTINUOUS_16 = Enum (80, _(
"General Purpose Controller 1")),
121 CONTINUOUS_17 = Enum (81, _(
"General Purpose Controller 2")),
122 CONTINUOUS_18 = Enum (82, _(
"General Purpose Controller 3")),
123 CONTINUOUS_19 = Enum (83, _(
"General Purpose Controller 4")),
124 CONTINUOUS_20 = Enum (84, _(
"Continuous 20")),
125 CONTINUOUS_21 = Enum (85, _(
"Continuous 21")),
126 CONTINUOUS_22 = Enum (86, _(
"Continuous 22")),
127 CONTINUOUS_23 = Enum (87, _(
"Continuous 23")),
128 CONTINUOUS_24 = Enum (88, _(
"Continuous 24")),
129 CONTINUOUS_25 = Enum (89, _(
"Continuous 25")),
130 CONTINUOUS_26 = Enum (90, _(
"Continuous 26")),
131 CONTINUOUS_27 = Enum (91, _(
"Continuous 27")),
132 CONTINUOUS_28 = Enum (92, _(
"Continuous 28")),
133 CONTINUOUS_29 = Enum (93, _(
"Continuous 29")),
134 CONTINUOUS_30 = Enum (94, _(
"Continuous 30")),
135 CONTINUOUS_31 = Enum (95, _(
"Continuous 31")),
137 CONSTANT_HIGH = Enum (96, _(
"Constant HIGH")),
138 CONSTANT_CENTER = Enum (97, _(
"Constant CENTER")),
139 CONSTANT_LOW = Enum (98, _(
"Constant LOW")),
140 CONSTANT_NEGATIVE_CENTER = Enum (99, _(
"Constant Negative CENTER")),
141 CONSTANT_NEGATIVE_HIGH = Enum (100, _(
"Constant Negative HIGH")),
142 PARAMETER = Enum (101, _(
"Registered Parameter")),
143 NON_PARAMETER = Enum (102, _(
"Non-Registered Parameter")),
145 CONTROL_0 = Enum (128, _(
"Control 0 Bank Select MSB")),
146 CONTROL_1 = Enum (129, _(
"Control 1 Modulation Depth MSB")),
147 CONTROL_2 = Enum (130, _(
"Control 2 Breath Control MSB")),
148 CONTROL_3 = Enum (131, _(
"control-3")),
149 CONTROL_4 = Enum (132, _(
"Control 4 Foot Controller MSB")),
150 CONTROL_5 = Enum (133, _(
"Control 5 Portamento Time MSB")),
151 CONTROL_6 = Enum (134, _(
"Control 6 Data Entry MSB")),
152 CONTROL_7 = Enum (135, _(
"Control 7 Volume MSB")),
153 CONTROL_8 = Enum (136, _(
"Control 8 Balance MSB")),
154 CONTROL_9 = Enum (137, _(
"control-9")),
155 CONTROL_10 = Enum (138, _(
"Control 10 Panorama MSB")),
156 CONTROL_11 = Enum (139, _(
"Control 11 Expression MSB")),
157 CONTROL_12 = Enum (140, _(
"Control 12 Effect Control 1 MSB")),
158 CONTROL_13 = Enum (141, _(
"Control 13 Effect Control 2 MSB")),
159 CONTROL_14 = Enum (142, _(
"control-14")),
160 CONTROL_15 = Enum (143, _(
"control-15")),
161 CONTROL_16 = Enum (144, _(
"Control 16 General Purpose Controller 1 MSB")),
162 CONTROL_17 = Enum (145, _(
"Control 17 General Purpose Controller 2 MSB")),
163 CONTROL_18 = Enum (146, _(
"Control 18 General Purpose Controller 3 MSB")),
164 CONTROL_19 = Enum (147, _(
"Control 19 General Purpose Controller 4 MSB")),
165 CONTROL_20 = Enum (148, _(
"control-20")),
166 CONTROL_21 = Enum (149, _(
"control-21")),
167 CONTROL_22 = Enum (150, _(
"control-22")),
168 CONTROL_23 = Enum (151, _(
"control-23")),
169 CONTROL_24 = Enum (152, _(
"control-24")),
170 CONTROL_25 = Enum (153, _(
"control-25")),
171 CONTROL_26 = Enum (154, _(
"control-26")),
172 CONTROL_27 = Enum (155, _(
"control-27")),
173 CONTROL_28 = Enum (156, _(
"control-28")),
174 CONTROL_29 = Enum (157, _(
"control-29")),
175 CONTROL_30 = Enum (158, _(
"control-30")),
176 CONTROL_31 = Enum (159, _(
"control-31")),
178 CONTROL_32 = Enum (160, _(
"Control 32 Bank Select LSB")),
179 CONTROL_33 = Enum (161, _(
"Control 33 Modulation Depth LSB")),
180 CONTROL_34 = Enum (162, _(
"Control 34 Breath Control LSB")),
181 CONTROL_35 = Enum (163, _(
"control-35")),
182 CONTROL_36 = Enum (164, _(
"Control 36 Foot Controller LSB")),
183 CONTROL_37 = Enum (165, _(
"Control 37 Portamento Time LSB")),
184 CONTROL_38 = Enum (166, _(
"Control 38 Data Entry LSB")),
185 CONTROL_39 = Enum (167, _(
"Control 39 Volume LSB")),
186 CONTROL_40 = Enum (168, _(
"Control 40 Balance LSB")),
187 CONTROL_41 = Enum (169, _(
"control-41")),
188 CONTROL_42 = Enum (170, _(
"Control 42 Panorama LSB")),
189 CONTROL_43 = Enum (171, _(
"Control 43 Expression LSB")),
190 CONTROL_44 = Enum (172, _(
"Control 44 Effect Control 1 LSB")),
191 CONTROL_45 = Enum (173, _(
"Control 45 Effect Control 2 LSB")),
192 CONTROL_46 = Enum (174, _(
"control-46")),
193 CONTROL_47 = Enum (175, _(
"control-47")),
194 CONTROL_48 = Enum (176, _(
"Control 48 General Purpose Controller 1 LSB")),
195 CONTROL_49 = Enum (177, _(
"Control 49 General Purpose Controller 2 LSB")),
196 CONTROL_50 = Enum (178, _(
"Control 50 General Purpose Controller 3 LSB")),
197 CONTROL_51 = Enum (179, _(
"Control 51 General Purpose Controller 4 LSB")),
198 CONTROL_52 = Enum (180, _(
"control-52")),
199 CONTROL_53 = Enum (181, _(
"control-53")),
200 CONTROL_54 = Enum (182, _(
"control-54")),
201 CONTROL_55 = Enum (183, _(
"control-55")),
202 CONTROL_56 = Enum (184, _(
"control-56")),
203 CONTROL_57 = Enum (185, _(
"control-57")),
204 CONTROL_58 = Enum (186, _(
"control-58")),
205 CONTROL_59 = Enum (187, _(
"control-59")),
206 CONTROL_60 = Enum (188, _(
"control-60")),
207 CONTROL_61 = Enum (189, _(
"control-61")),
208 CONTROL_62 = Enum (190, _(
"control-62")),
209 CONTROL_63 = Enum (191, _(
"control-63")),
211 CONTROL_64 = Enum (192, _(
"Control 64 Damper Pedal Switch (Sustain)")),
212 CONTROL_65 = Enum (193, _(
"Control 65 Portamento Switch")),
213 CONTROL_66 = Enum (194, _(
"Control 66 Sustenuto Switch")),
214 CONTROL_67 = Enum (195, _(
"Control 67 Soft Switch")),
215 CONTROL_68 = Enum (196, _(
"Control 68 Legato Pedal Switch")),
216 CONTROL_69 = Enum (197, _(
"Control 69 Hold Pedal Switch")),
217 CONTROL_70 = Enum (198, _(
"Control 70 Sound Variation")),
218 CONTROL_71 = Enum (199, _(
"Control 71 Filter Resonance (Timbre)")),
219 CONTROL_72 = Enum (200, _(
"Control 72 Sound Release Time")),
220 CONTROL_73 = Enum (201, _(
"Control 73 Sound Attack Time")),
221 CONTROL_74 = Enum (202, _(
"Control 74 Sound Brightness")),
222 CONTROL_75 = Enum (203, _(
"Control 75 Sound Decay Time")),
223 CONTROL_76 = Enum (204, _(
"Control 76 Vibrato Rate")),
224 CONTROL_77 = Enum (205, _(
"Control 77 Vibrato Depth")),
225 CONTROL_78 = Enum (206, _(
"Control 78 Vibrato Delay")),
226 CONTROL_79 = Enum (207, _(
"Control 79 Sound Control 10")),
227 CONTROL_80 = Enum (208, _(
"Control 80 General Purpose Switch 5")),
228 CONTROL_81 = Enum (209, _(
"Control 81 General Purpose Switch 6")),
229 CONTROL_82 = Enum (210, _(
"Control 82 General Purpose Switch 7")),
230 CONTROL_83 = Enum (211, _(
"Control 83 General Purpose Switch 8")),
231 CONTROL_84 = Enum (212, _(
"Control 84 Portamento Control (Note)")),
232 CONTROL_85 = Enum (213, _(
"control-85")),
233 CONTROL_86 = Enum (214, _(
"control-86")),
234 CONTROL_87 = Enum (215, _(
"control-87")),
235 CONTROL_88 = Enum (216, _(
"control-88")),
236 CONTROL_89 = Enum (217, _(
"control-89")),
237 CONTROL_90 = Enum (218, _(
"control-90")),
238 CONTROL_91 = Enum (219, _(
"Control 91 Reverb Depth")),
239 CONTROL_92 = Enum (220, _(
"Control 92 Tremolo Depth")),
240 CONTROL_93 = Enum (221, _(
"Control 93 Chorus Depth")),
241 CONTROL_94 = Enum (222, _(
"Control 93 Detune Depth")),
242 CONTROL_95 = Enum (223, _(
"Control 95 Phase Depth")),
243 CONTROL_96 = Enum (224, _(
"Control 96 Data Increment Trigger")),
244 CONTROL_97 = Enum (225, _(
"Control 97 Data Decrement Trigger")),
245 CONTROL_98 = Enum (226, _(
"Control 98 Non-Registered Parameter MSB")),
246 CONTROL_99 = Enum (227, _(
"Control 99 Non-Registered Parameter LSB")),
247 CONTROL_100 = Enum (228, _(
"Control 100 Registered Parameter MSB")),
248 CONTROL_101 = Enum (229, _(
"Control 101 Registered Parameter LSB")),
249 CONTROL_102 = Enum (230, _(
"control-102")),
250 CONTROL_103 = Enum (231, _(
"control-103")),
251 CONTROL_104 = Enum (232, _(
"control-104")),
252 CONTROL_105 = Enum (233, _(
"control-105")),
253 CONTROL_106 = Enum (234, _(
"control-106")),
254 CONTROL_107 = Enum (235, _(
"control-107")),
255 CONTROL_108 = Enum (236, _(
"control-108")),
256 CONTROL_109 = Enum (237, _(
"control-109")),
257 CONTROL_110 = Enum (238, _(
"control-110")),
258 CONTROL_111 = Enum (239, _(
"control-111")),
259 CONTROL_112 = Enum (240, _(
"control-112")),
260 CONTROL_113 = Enum (241, _(
"control-113")),
261 CONTROL_114 = Enum (242, _(
"control-114")),
262 CONTROL_115 = Enum (243, _(
"control-115")),
263 CONTROL_116 = Enum (244, _(
"control-116")),
264 CONTROL_117 = Enum (245, _(
"control-117")),
265 CONTROL_118 = Enum (246, _(
"control-118")),
266 CONTROL_119 = Enum (247, _(
"control-119")),
267 CONTROL_120 = Enum (248, _(
"Control 120 All Sound Off ITrigger")),
268 CONTROL_121 = Enum (249, _(
"Control 121 All Controllers Off ITrigger")),
269 CONTROL_122 = Enum (250, _(
"Control 122 Local Control Switch")),
270 CONTROL_123 = Enum (251, _(
"Control 123 All Notes Off ITrigger")),
271 CONTROL_124 = Enum (252, _(
"Control 124 Omni Mode Off ITrigger")),
272 CONTROL_125 = Enum (253, _(
"Control 125 Omni Mode On ITrigger")),
273 CONTROL_126 = Enum (254, _(
"Control 126 Monophonic Voices Mode")),
274 CONTROL_127 = Enum (255, _(
"Control 127 Polyphonic Mode On ITrigger")),
280 OD_12_TET = Enum (1, _(
"12 Tone Equal Temperament"),
281 _(
"The most common tuning system for modern Western music, "
282 "is the twelve-tone equal temperament, abbreviated as 12-TET, "
283 "which divides the octave into 12 equal parts.")),
284 OD_7_TET = Enum (_(
"7 Tone Equal Temperament"),
285 _(
"A fairly common tuning system is the seven-tone equal temperament tuning system, "
286 "abbreviated as 7-TET. It divides the octave into 7 equal parts using 171 cent steps.")),
287 OD_5_TET = Enum (_(
"5 Tone Equal Temperament"),
288 _(
"A fairly common tuning system is the five-tone equal temperament tuning system, "
289 "abbreviated as 5-TET. It divides the octave into 5 equal parts using 240 cent steps.")),
291 DIATONIC_SCALE = Enum (_(
"Diatonic Scale"),
292 _(
"In music theory, a diatonic scale (also: heptatonia prima) is a seven-note "
293 "musical scale comprising five whole-tone and two half-tone steps. "
294 "The half tones are maximally separated, so between two half-tone steps "
295 "there are either two or three whole tones, repeating per octave.")),
296 INDIAN_SCALE = Enum (_(
"Indian Scale"),
297 _(
"Diatonic scale used in Indian music with wolf interval at Dha, close to 3/2")),
298 PYTHAGOREAN_TUNING = Enum (_(
"Pythagorean Tuning"),
299 _(
"Pythagorean tuning is the oldest way of tuning the 12-note chromatic scale, "
300 "in which the frequency relationships of all intervals are based on the ratio 3:2. "
301 "Its discovery is generally credited to Pythagoras.")),
302 PENTATONIC_5_LIMIT = Enum (_(
"Pentatonic 5-limit"),
303 _(
"Pentatonic scales are used in modern jazz and pop/rock contexts "
304 "because they work exceedingly well over several chords diatonic "
305 "to the same key, often better than the parent scale.")),
306 PENTATONIC_BLUES = Enum (_(
"Pentatonic Blues"),
307 _(
"The blues scale is the minor pentatonic with an additional augmented fourth, "
308 "which is referred to as the \"blues note\".")),
309 PENTATONIC_GOGO = Enum (_(
"Pentatonic Gogo"),
310 _(
"The Pentatonic Gogo scale is an anhemitonic pentatonic scale used to tune the "
311 "instruments of the Gogo people of Tanzania.")),
313 QUARTER_COMMA_MEANTONE = Enum (_(
"Quarter-Comma Meantone"),
314 _(
"Quarter-comma meantone was the most common meantone temperament in the "
315 "sixteenth and seventeenth centuries and sometimes used later.")),
316 SILBERMANN_SORGE = Enum (_(
"Silbermann-Sorge Temperament"),
317 _(
"The Silbermann-Sorge temperament is a meantone temperament used for "
318 "Baroque era organs by Gottfried Silbermann.")),
320 WERCKMEISTER_3 = Enum (_(
"Werckmeister III"),
321 _(
"This tuning uses mostly pure (perfect) fifths, as in Pythagorean tuning, but each "
322 "of the fifths C-G, G-D, D-A and B-F# is made smaller, i.e. tempered by 1/4 comma. "
323 "Werckmeister designated this tuning as particularly suited for playing chromatic music.")),
324 WERCKMEISTER_4 = Enum (_(
"Werckmeister IV"),
325 _(
"In this tuning the fifths C-G, D-A, E-B, F#-C#, and Bb-F are tempered narrow by 1/3 comma, "
326 "and the fifths G#-D# and Eb-Bb are widened by 1/3 comma. The other fifths are pure. "
327 "Most of its intervals are close to sixth-comma meantone. "
328 "Werckmeister designed this tuning for playing mainly diatonic music.")),
329 WERCKMEISTER_5 = Enum (_(
"Werckmeister V"),
330 _(
"In this tuning the fifths D-A, A-E, F#-C#, C#-G#, and F-C are narrowed by 1/4 comma, "
331 "and the fifth G#-D# is widened by 1/4 comma. The other fifths are pure. "
332 "This temperament is closer to equal temperament than Werckmeister III or IV.")),
333 WERCKMEISTER_6 = Enum (_(
"Werckmeister VI"),
334 _(
"This tuning is also known as Septenarius tuning is based on a division of the monochord "
335 "length into 196 = 7 * 7 * 4 parts. "
336 "The resulting scale has rational frequency relationships, but in practice involves pure "
337 "and impure sounding fifths. "
338 "Werckmeister described the Septenarius as a \"temperament which has nothing at all to do "
339 "with the divisions of the comma, nevertheless in practice so correct that one can be really "
340 "satisfied with it\".")),
341 KIRNBERGER_3 = Enum (_(
"Kirnberger III"),
342 _(
"Kirnberger's method of compensating for and closing the circle of fifths is to split the \"wolf\" "
343 "interval known to those who have used meantone temperaments between four fifths instead, "
344 "allowing for four 1/4-comma wolves to take their place. "
345 "1/4-comma wolves are used extensively in meantone and are much easier to tune and to listen to. "
346 "Therefore, only one third remains pure (between C and E).")),
347 YOUNG = Enum (_(
"Young Temperament"),
348 _(
"Thomas Young devised a form of musical tuning to make the harmony most perfect in those keys which "
349 "are the most frequently used (give better major thirds in those keys), but to not have any unplayable keys. "
350 "This is attempted by tuning upwards from C a sequence of six pure fourths, "
351 "as well as six equally imperfect fifths.")),
356 Const MAX_NOTE = 131;
357 Const NOTE_VOID = MAX_NOTE + 1;
364 Const MAX_FINE_TUNE = 100;
366 Const MAX_BPM = 1024;
367 Const MIN_TRANSPOSE = -72;
368 Const MAX_TRANSPOSE = +72;
370 Const STORAGE =
"r:w:S";
371 Const STANDARD = STORAGE
":G";
372 Const NOTEHINTS = STANDARD
":note";
373 Const FINETUNEHINTS = STANDARD
":finetune";
374 Const VELOCITYHINTS = STANDARD
":velocity";
383 int32 argb = Num (
"ARGB",
"ARGB Format: (alpha << 24) | (red << 16) | (green << 8) | blue", STANDARD);
388 int32 width = Range (
"Width",
"Width in pixels or 0 for no icon", STANDARD, 0, 4096, 1, 0);
389 int32 height = Range (
"Height",
"Height in pixels or 0 for no icon", STANDARD, 0, 4096, 1, 0);
390 PixelSeq pixels =
Sequence (
"Pixels",
"Array of width*height ARGB pixels", STANDARD);
429 int32 tick = Range (
"Current tick",
"Song position timing applies to", STANDARD, 0, MAXINT31, 384, 0);
430 float64 bpm = Range (
"BPM",
"Beats per minute", STANDARD, MIN_BPM, MAX_BPM, 10, 120);
432 int32 numerator = Range (
"Numerator",
"Number of notes per measure", STANDARD, 1, 256, 2, 4);
433 int32 denominator = Range (
"Denominator",
"Type of notes counted per measure", STANDARD, 1, 256, 2, 4);
435 int32 tpqn = Range (
"TPQN",
"Ticks per quarter note", STANDARD, 1, MAXINT31, 12, 384);
436 int32 tpt = Range (
"TPT",
"Ticks per tact", STANDARD, 1, MAXINT31, 12, 384);
438 float64 stamp_ticks = Range (
"Tick Increment",
"Ticks per stamp increment (useful only during playback)", STANDARD, 1, MAXINT31, 12, 384);
444 MusicalTuning musical_tuning;
445 int32 note = Range (
"Note",
"",
":readwrite:note");
446 int32 octave = Range (
"Octave",
"",
":readwrite:octave");
447 float64 freq = Range (
"Frequency",
"",
":readwrite:freq");
448 int32 finetune = Range (
"Finetune",
"",
":readwrite:finetune", -100, +100, 10, 0);
449 int32 semitone = Range (
"Semitone",
"",
":readwrite", 0, 11, 1, 0);
450 bool upshift = Bool (
"Upshift",
"Flag set for notes that correspond to a black piano key");
451 int32 letter = Range (
"Letter",
"International abbreviation letter for this note",
":readwrite", 32, 126, 1, 64);
470 Icon icon =
Record (
"Icon",
"State dependent icon representation of this item",
"r:G");
502 int32
id = Num (
"ID",
"", 0,
":readwrite");
503 int32 channel = Range (
"Channel",
"",
":readwrite", 0, MAXINT31, 1);
504 int32 tick = Range (
"Tick",
"",
":readwrite", 0, MAXINT31, 1);
505 int32 duration = Range (
"Duration",
"Duration in number of ticks",
":readwrite", 0, MAXINT31, 1);
506 int32 note = Range (
"Note",
"", NOTEHINTS, MIN_NOTE, MAX_NOTE, 12, KAMMER_NOTE);
507 int32 fine_tune = Range (
"Fine Tune",
"", FINETUNEHINTS, MIN_FINE_TUNE, MAX_FINE_TUNE, 1);
508 float64 velocity = Range (
"Velocity",
"", VELOCITYHINTS, 0, 1.0, 0.1, 1);
509 bool selected = Bool (
"Selected",
"",
":readwrite",
false);
519 int32
id = Num (
"ID",
"",
":readwrite");
520 int32 tick = Range (
"Tick",
"",
":readwrite", 0, MAXINT31, 1);
521 MidiSignal control_type;
522 float64 value = Range (
"Value",
"",
":readwrite", -1, +1, 0.1);
523 bool selected = Bool (
"Selected",
"",
":readwrite");
540 Error
change_control (int32
id, int32 tick, MidiSignal control_type, float64 value);
541 Error
change_note (int32
id, int32 tick, int32 duration, int32 note, int32 fine_tune, float64 velocity);
543 int32
insert_control (int32 tick, MidiSignal control_type, float64 value);
544 int32
insert_note (int32 channel, int32 tick, int32 duration, int32 note, int32 fine_tune, float64 velocity);
545 int32
insert_note_auto (int32 tick, int32 duration, int32 note, int32 fine_tune, float64 velocity);
548 void queue_notes (int32 tick, int32 duration, int32 min_note, int32 max_note);
551 void select_notes (int32 tick, int32 duration, int32 min_note, int32 max_note);
553 void select_controls (int32 tick, int32 duration, MidiSignal control_type);
554 void deselect_notes (int32 tick, int32 duration, int32 min_note, int32 max_note);
630 group _(
"Playback Settings") {
631 bool auto_activate = Bool (_(
"Auto Activate"),
632 _(
"Automatic activation only needs to be enabled for synthesis networks that don't "
633 "use virtual ports for their input and output"),
691 int32 tick = Range (
"Tick",
"", STANDARD, 0, MAXINT31, 384);
693 int32 duration = Range (
"Duration",
"", STANDARD, 0, MAXINT31, 384);
698 sequence PartLinkSeq {
704 int32 tick = Range (
"Tick",
"", STANDARD, 0, MAXINT31, 384);
706 int32 duration = Range (
"Duration",
"", STANDARD, 0, MAXINT31, 384);
710 sequence TrackPartSeq {
762 float64 bpm = Range (_(
"BPM"), _(
"Beats per minute"), STANDARD
":scale", MIN_BPM, MAX_BPM, 10, 120);
765 MusicalTuning musical_tuning = Enum (_(
"Musical Tuning"),
766 _(
"The tuning system which specifies the tones or pitches to be used. "
767 "Due to the psychoacoustic properties of tones, various pitch combinations can "
768 "sound \"natural\" or \"pleasing\" when used in combination, the musical "
769 "tuning system defines the number and spacing of frequency values applied."),
770 STANDARD
":unprepared");
777 int64 size = Range (
"File Size",
"File size in bytes",
":readwrite", 0, MAXINT63);
778 int64 mtime = Range (
"MTime",
"Last modification time in µseconds",
":readwrite", 0, MAXINT63);
779 String loader =
String (
"Loader",
"Sample loader implementation", STANDARD);
781 Error error = Enum (
"Error",
"Indicator for errors during sample operation", STANDARD);
892 NoteDescription note_describe_from_freq (MusicalTuning musical_tuning, float64 freq);
898 int32
note_from_freq (MusicalTuning musical_tuning, float64 frequency);
900 float64
note_to_freq (MusicalTuning musical_tuning, int32 note, int32 fine_tune);
String get_version()
Retrieve BSE version.
Part get_part(int32 tick)
Get the part starting at a specific tick position.
Track create_track()
Create a new Track for a Song.
void register_core_plugins()
Register core plugins.
Const MIN_FINE_TUNE
Octave of MAX_NOTE.
Definition: bseapi.idl:363
Interface for Track and Part objects, as well as meta data for sequencing.
Definition: bseapi.idl:733
TestObject get_test_object()
Retrieve object for API, signal, etc tests.
void clear_undo()
Delete all recorded undo or redo steps.
void start_playback()
Start playback in an activated project.
Structure linking to a Track from within a Part.
Definition: bseapi.idl:703
void remove_bus(Bus bus)
Delete a mixer bus from a Song.
Interface for writing PCM wave data.
Definition: bseapi.idl:851
Item common_ancestor(Item other)
Find a common container (parent or grand-parent) of two items if any.
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:88
void select_notes_exclusive(int32 tick, int32 duration, int32 min_note, int32 max_note)
Select all notes within rectangle and deselect all others.
void stop_playback()
Stop project playback.
String get_sample_path()
Retrieve sample search path.
AuxDataSeq list_module_types()
A list of Source type names for create_source().
void queue_controls(int32 tick, int32 duration)
Queue updates for all control events and notes starting within the given range.
void select_controls(int32 tick, int32 duration, MidiSignal control_type)
Select all control events within range.
Error change_control(int32 id, int32 tick, MidiSignal control_type, float64 value)
Change an existing control event within a part.
String get_custom_effect_dir()
Retrieve user specific effects directory.
PartSeq list_parts_uniq()
List all parts contained in a track.
bool preferences_locked()
Returns whether the bse-preferences property is currently locked against modifications or not...
signal void port_unregistered()
Signal that notifies when a named output port is unregistered.
SongTiming get_timing(int32 tick)
Retrieve song timing information at a specific tick.
void queue_notes(int32 tick, int32 duration, int32 min_note, int32 max_note)
Queue updates for all notes starting within the given rectangle.
Const MIN_OCTAVE
Octave number for MIDI A'.
Definition: bseapi.idl:361
Error can_create_source(String module_type)
Check whether inserting a new module into a synthesis network is possible.
signal void changed(String what)
Notification for object state or property changes.
Representation of an icon pixel image.
Definition: bseapi.idl:387
Const MAX_OCTAVE
Octave of MIN_NOTE.
Definition: bseapi.idl:362
Synthesizer module for embedding (rerouting input and output) of another synthesizer network (SNet)...
Definition: bseapi.idl:643
String get_script_path()
Retrieve script search path.
A note description provides all needed details about a specific note. ".
Definition: bseapi.idl:442
bool is_playing()
Check whether a project is currently playing (song sequencing).
int32 get_last_tick()
Retrieve the last tick for this track.
Const KAMMER_FREQ
Kammer note, representing the kammer frequency's MIDI note value for A' or A4.
Definition: bseapi.idl:359
Interface serving as container for Wave objects.
Definition: bseapi.idl:793
bool supports_user_synths()
Check whether users may edit synthesis modules of this network.
Base interface type for containers of Item derived types.
Definition: bseapi.idl:615
Icon module_type_icon(String module_type)
Retrieve the icon associated with a module type.
String get_vorbis_version()
Retrieve BSE Vorbis handler version.
void remove_track(Track track)
Delete a Track from a Song.
Track find_any_track_for_part(Part part)
Find the first track that contains part, suitable to check for orphan parts.
String text3
Possibly (technical) details or machine error message.
Definition: bseapi.idl:423
int32 get_max_note()
Retrieve the maximum note supported in this part.
Definition: bsecxxutils.hh:90
Base interface type for objects that can be added to a container.
Definition: bseapi.idl:469
float64 note_to_freq(MusicalTuning musical_tuning, int32 note, int32 fine_tune)
Retrieve the frequency of a certain note.
Error ensure_output()
Ensure that a bus has an output connection.
Record representing the use of a Part within a Track at a specific position.
Definition: bseapi.idl:689
signal void user_message(UserMessage umsg)
Notification signal for user messages from BSE.
Interface for effect stacks and per-track audio signal routing to the master output.
Definition: bseapi.idl:715
AuxData - record to describe entity attributes with "key=value" strings.
Definition: bseapi.idl:394
Source module for merging multiple synthesis contexts, used to implement polyphony.
Definition: bseapi.idl:611
void start_recording(String wave_file, float64 n_seconds)
Start recording to a WAV file.
Source create_source(String module_type)
Insert a new module into a synthesis network.
signal void echo_reply(String msg)
Signal emitted in response to echo_test().
Base interface type for Item managers.
Definition: bseapi.idl:620
Error disconnect_bus(Bus bus)
Remove a bus from the input list of a bus.
String get_custom_instrument_dir()
Retrieve user specific instruments directory.
void register_scripts()
Register external scripts.
Data interface for containment of piano notes and MIDI effects.
Definition: bseapi.idl:532
A list of part control events.
Definition: bseapi.idl:527
Error disconnect_track(Track track)
Remove a track from the input list of a bus.
Indicate a message about an error condition.
Definition: bseapi.idl:411
Base interface type for synthesis modules with input or output streams.
Definition: bseapi.idl:576
Error play()
Activate a project and start project playback (an already playing project is first halted)...
PartControlSeq list_selected_controls(MidiSignal control_type)
List all currently selected control events of a specific type.
void deselect_controls(int32 tick, int32 duration, MidiSignal control_type)
Deselect all controls within given range.
Part create_part()
Create a new Part in a Song.
UserMessageType utype
Severity classification for this message.
Definition: bseapi.idl:419
Const KAMMER_OCTAVE
Pitch Standard, see also: https://en.wikipedia.org/wiki/A440_(pitch_standard)
Definition: bseapi.idl:360
void save_preferences()
Save the bse-preferences property to disk.
PartNoteSeq list_notes_crossing(int32 tick, int32 duration)
List all notes within or crossing a tick range.
void deselect_event(int32 id)
Deselect an existing event.
Definition: sficxx.hh:326
NoteDescription note_from_string(MusicalTuning musical_tuning, String name)
Describe a note, given its name and octave offset.
Error activate()
Activate a project, precondition to start playback.
Error restore_from_file(String file_name)
Load a project from file.
Indicate an informational message.
Definition: bseapi.idl:413
SongTiming get_timing(int32 tick)
Retrieve song timing information at a specific tick.
String title
Usually GUI window title.
Definition: bseapi.idl:420
Error import_midi_file(String file_name)
List uname paths for all items of a specified type within a project.
Customizable synthesis (filter) network container.
Definition: bseapi.idl:639
PartControlSeq list_controls(int32 tick, int32 duration, MidiSignal control_type)
List all control events within a tick range.
void remove_part(Part part)
Delete a Part from a Song.
Structure containing meta data for multi wave samples.
Definition: bseapi.idl:775
AuxData find_module_type(String module_type)
Retrieve info about a Source type names.
bool can_play()
Check whether project playback would makes sense.
void undo()
Undo a previous operation in a project.
Object to carry out IDL, API, signal, etc tests.
Definition: bseapi.idl:405
PartNoteSeq list_notes_within(int32 channel, int32 tick, int32 duration)
List all notes within a tick range.
String get_ladspa_path()
Retrieve ladspa search path.
Interface for sequencing information and links to Part objects.
Definition: bseapi.idl:664
bool is_dirty()
Check whether a project needs saving.
String text1
Primary message to the user, should be limited to 80-100 chars.
Definition: bseapi.idl:421
void destroy_project(Project project)
Destroy a previously created new project.
NoteDescription note_construct(MusicalTuning musical_tuning, int32 semitone, int32 octave, int32 fine_tune)
Describe a note, given its semitone, octave and fine tune.
int32 note_from_freq(MusicalTuning musical_tuning, float64 frequency)
Retrieve the note of a certain frequency.
Part specific note event representation.
Definition: bseapi.idl:500
int32 insert_note(int32 channel, int32 tick, int32 duration, int32 note, int32 fine_tune, float64 velocity)
Insert a new note into a part.
void deselect_notes(int32 tick, int32 duration, int32 min_note, int32 max_note)
Deselect all notes within rectangle.
int32 redo_depth()
Get the number of times redo can be called on the project.
void remove_link(int32 id)
Remove a specific part link by ID from a track.
PartLinkSeq list_links()
List all places where parts are used (linked) from tracks, sorted by tick.
int32 insert_part(int32 tick, Part part)
Insert Part into Track at tick, returns the corresponding link id.
PartControlSeq get_controls(int32 tick, MidiSignal control_type)
Retrieve all control events of a specific type at specified tick.
SongTiming get_timing(int32 tick)
Retrieve song timing information at a specific tick.
PartControlSeq get_channel_controls(int32 channel, int32 tick, int32 duration, MidiSignal control_type)
Retrieve all control events of a specific type within range of a channel.
int32 get_min_note()
Retrieve the minimum note supported in this part.
void inject_midi_control(int32 midi_channel, int32 midi_control, float64 control_value)
Inject a MIDI control event into the project's MIDI receiver.
Fundamental base type for all BSE objects.
Definition: bseapi.idl:462
int64 proxy_id()
Retrieve the BseObject proxy ID for an Object.
UserMessageType
Definition: bseapi.idl:410
Indicate a debugging message (usually insignificant).
Definition: bseapi.idl:414
String get_plugin_path()
Retrieve plugin search path.
void clean_dirty()
Clear a project's dirty flags.
NoteDescription note_describe(MusicalTuning musical_tuning, int32 note, int32 fine_tune)
Describe a note, providing information about its octave, semitone, frequency, etc.
Object from_proxy(int64 proxyid)
Find an Object from its associated BseObject proxy id.
void remove_tick(int32 tick)
Remove Part at specified tick from a track.
String debug_name()
Object name useful for debugging output.
A list of part note events.
Definition: bseapi.idl:513
void select_event(int32 id)
Select an existing event.
int32 n_scripts()
Return the number of scripts currently running on this server.
String get_instrument_path()
Retrieve instrument search path.
Base interface type for all kinds of synthesis networks.
Definition: bseapi.idl:624
Indicate a message about a possibly harmful condition.
Definition: bseapi.idl:412
A list of Part or derived types.
Definition: bseapi.idl:571
bool is_active()
Check whether a project is active (currently synthesizing).
PartNoteSeq check_overlap(int32 tick, int32 duration, int32 note)
Check whether a note would overlap with neighbours.
StringSeq attributes
List of "key=value" auxillary data strings.
Definition: bseapi.idl:396
Error connect_track(Track track)
Add a track to the input list of a bus.
Part specific control event representation.
Definition: bseapi.idl:518
PartNoteSeq list_selected_notes()
List all currently selected notes.
int32 insert_control(int32 tick, MidiSignal control_type, float64 value)
Insert a new control event into a part.
Stringeq - a variable length list of test strings.
Definition: bseapi.idl:377
Main Bse remote origin object.
Definition: bseapi.idl:858
bool can_load(String file_name)
Check whether a loader can be found for a wave file.
Interface for editable PCM wave samples.
Definition: bseapi.idl:785
int32 insert_note_auto(int32 tick, int32 duration, int32 note, int32 fine_tune, float64 velocity)
Insert a new note into a part with automatic channel selection.
Interface for PCM wave samples.
Definition: bseapi.idl:789
void auto_deactivate(int32 msec_delay)
Automatically deactivate a few milliseconds after playback stopped.
Error remove_source(Source module)
Remove an existing module from its synthesis network.
void change_name(String name)
Change a project name without recording undo steps.
Song timing configuration.
Definition: bseapi.idl:428
PartNoteSeq get_notes(int32 tick, int32 note)
Retrieve all notes at a specific frequency or crossing a tick.
String get_mp3_version()
Retrieve BSE MP3 handler version.
Source ichannel_get_osource(int32 input_channel, int32 input_joint)
Retrieve output module connected to a specific joint of an input channel.
Item lookup_item(String uname)
Find an immediate child of a container by name (unique per container child).
void select_controls_exclusive(int32 tick, int32 duration, MidiSignal control_type)
Select all control events within range and deselect all others.
Bus create_bus()
Create a new mixer bus for a Song.
Error ensure_output()
Ensure the track has an output connection to a bus.
int32 echo_test(String msg)
Echo custom message to stdout.
String entity
Entity that has an auxillary data list.
Definition: bseapi.idl:395
Representation of an image pixel sequence in ARGB format.
Definition: bseapi.idl:382
Error connect_bus(Bus bus)
Add a bus to the input list of a bus.
SampleFileInfo sample_file_info(String file_name)
Load sample file info from file.
Const KAMMER_NOTE
Value represents unparsable/unknown notes.
Definition: bseapi.idl:358
void select_notes(int32 tick, int32 duration, int32 min_note, int32 max_note)
Select all notes within rectangle.
String text2
Explanatory (secondary) message no limitations recommended.
Definition: bseapi.idl:422
AuxDataSeq - a variable length list of AuxData records.
Definition: bseapi.idl:400
Error delete_event(int32 id)
Delete an existing event from a part.
void stop()
Stop project playback and deactivate project.
Project create_project(String project_name)
Create a new project (name is modified to be unique if necessary.
TrackPartSeq list_parts()
List parts scheduled in a track, sorted by tick.
Sequence of TrackPart records.
Definition: bseapi.idl:710
void redo()
Redo a previously undone operation in a project.
String label
Message class label, used to enable/disable this type of message.
Definition: bseapi.idl:424
Sequence of PartLink records.
Definition: bseapi.idl:698
Source get_output_source()
Get the output module of a track.
Structure for submission of user interface messages from BSE.
Definition: bseapi.idl:418
int32 undo_depth()
Check whether a project can perform undo steps.
String get_effect_path()
Retrieve effect search path.
Projects support loading, saving, playback and act as containers for all other sound objects...
Definition: bseapi.idl:805
bool is_event_selected(int32 id)
Check whether an event is selected.
Error change_note(int32 id, int32 tick, int32 duration, int32 note, int32 fine_tune, float64 velocity)
Change an existing note within a part.
Interface for MIDI synthesis networks.
Definition: bseapi.idl:801
void register_ladspa_plugins()
Register LADSPA (Linux Audio Developer's Simple Plugin API) plugins.
void deactivate()
Deactivate the project, automatically stop playback.
String get_demo_path()
Retrieve demo search path.
Interface for MIDI event notification.
Definition: bseapi.idl:797