-
Notifications
You must be signed in to change notification settings - Fork 9
/
XiiLang.html
543 lines (543 loc) · 61.8 KB
/
XiiLang.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="1038.36">
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica; min-height: 22.0px}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #95221c}
p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
p.p8 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica}
p.p9 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; min-height: 14.0px}
p.p10 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica}
p.p11 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #95221c}
p.p12 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #0e17b6}
p.p13 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco}
p.p14 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #606060}
p.p15 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica; min-height: 17.0px}
p.p16 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica}
p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
p.p18 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
p.p19 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #cd1713}
p.p20 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #102ac3; min-height: 12.0px}
p.p21 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #102ac3}
p.p22 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #cd1713; min-height: 12.0px}
p.p23 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #737373}
span.s1 {font: 18.0px Helvetica}
span.s2 {text-decoration: underline ; color: #5d5e7c}
span.s3 {text-decoration: underline ; color: #144fae}
span.s4 {color: #000000}
span.s5 {color: #0e17b6}
span.s6 {font: 14.0px Helvetica}
span.s7 {font: 12.0px Helvetica}
span.s8 {text-decoration: underline ; color: #1636ee}
span.s9 {color: #102ac2}
span.s10 {color: #cd1713}
span.s11 {color: #102ac3}
span.s12 {color: #737373}
span.Apple-tab-span {white-space:pre}
</style>
</head>
<body>
<p class="p1"><br></p>
<p class="p2"><span class="s1"><b>XiiLang<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b></span><b>a live coding language interpreter</b><span class="s1"><b><span class="Apple-tab-span"> </span></b></span>-<span class="Apple-converted-space"> </span><b>version 4 : November 2012</b></p>
<p class="p3"><br></p>
<p class="p3"><br></p>
<p class="p2">The ixi lang live coding environment is a simple visual system presenting a high entry-level control over synth definitions and samples in SuperCollider. The core idea is to represent events in a spatial layout, thus merging musical code and musical scores. The score of an ixi lang agent is reactive, i.e., if a method is performed upon the score, it changes in real time.</p>
<p class="p4"><br></p>
<p class="p2"><b>NOTE: The interpreter uses a different key command for evaluating ixi lang code, namely alt+arrows</b>.<span class="Apple-converted-space"> </span></p>
<p class="p2">This allows for coding in both sc lang and ixi lang in the same document without confusing interpreters.</p>
<p class="p4"><br></p>
<p class="p2">Further explanation below, but videos can be found on <a href="http://www.vimeo.com/ixi"><span class="s2">www.vimeo.com/ixi</span></a></p>
<p class="p2">A paper on ixi lang for the 2011 ICMC conference can be found here <a href="http://www.ixi-audio.net/thor"><span class="s2">www.ixi-audio.net/thor</span></a></p>
<p class="p2">For more information and feedback contact: <a href="mailto:[email protected]"><span class="s2">[email protected]</span></a><span class="s2"> </span>and updates on ixi lang (+ other stuff) here <a href="http://www.twitter.com/thormagnusson"><span class="s3">http://www.twitter.com/thormagnusson</span></a></p>
<p class="p4"><br></p>
<p class="p4"><br></p>
<p class="p5"><b>Folder structure of ixi lang:</b></p>
<p class="p4"><br></p>
<p class="p2">The ixi lang app (or your SuperCollider app) will have a folder called "ixilang" next to it. In there you keep your projects. The project name is the name you give the folder inside the ixilang folder. Each project will have the following items:<span class="Apple-converted-space"> </span></p>
<p class="p4"><br></p>
<p class="p2"><span class="Apple-tab-span"> </span>- colors.ixi (a file storing the color values of your coding envrionment);<span class="Apple-converted-space"> </span></p>
<p class="p2"><span class="Apple-tab-span"> </span>- keyMapping.ixi (a document storing the mapping between keys and samples);<span class="Apple-converted-space"> </span></p>
<p class="p2"><span class="Apple-tab-span"> </span>- recordings folder (where recordings will appear if you use the "rec" button);<span class="Apple-converted-space"> </span></p>
<p class="p2"><span class="Apple-tab-span"> </span>- samples folder (where you keep your short samples that you map to the keys of the keyboard);<span class="Apple-converted-space"> </span></p>
<p class="p2"><span class="Apple-tab-span"> </span>- scores folder (where scores are saved); sessions folder (where environments are stored);<span class="Apple-converted-space"> </span></p>
<p class="p2"><span class="Apple-tab-span"> </span>- synthdefs.scd file where you can put synth definitions that will appear in the key mapping GUI).</p>
<p class="p2"><span class="Apple-tab-span"> </span>- livesamples folder (where samples are recorded in a live situation)</p>
<p class="p4"><br></p>
<p class="p2">Each project (or do you want to call it a "piece"?) can therefore have its own colour code, samples and key mappings.</p>
<p class="p4"><br></p>
<p class="p4"><br></p>
<p class="p5"><b>Having Problems? Here is a quick troubleshooting:</b></p>
<p class="p4"><br></p>
<p class="p2">You need to make sure you're evaluating the code with alt+arrow keys (and not the SuperCollider default - read about that below). Don't use TABs when coding, only spaces. Do you have a "samples" folder within a "default" folder next to your SuperCollider.app (i.e., ixilang/default/samples )? Put some short sounds into that folder. When you've figured this out, you can start to create your own project folders, not using the "default" anymore.</p>
<p class="p4"><br></p>
<p class="p4"><br></p>
<p class="p5"><b>The three modes of ixi lang:</b></p>
<p class="p4"><br></p>
<p class="p2">The ixi lang presents three different modes in ixi lang: melodic mode, rhythmic mode and concrète mode.</p>
<p class="p4"><br></p>
<p class="p6"><span class="s4">agentname<span class="Apple-converted-space"> </span>-> <span class="Apple-converted-space"> </span>marimba[1<span class="Apple-converted-space"> </span>4<span class="Apple-converted-space"> </span>3<span class="Apple-converted-space"> </span>2<span class="Apple-converted-space"> </span>]<span class="Apple-converted-space"> </span></span>// square brackets indicate melodic score (synthesis or samples)</p>
<p class="p6"><span class="s4">agentname<span class="Apple-converted-space"> </span>-> <span class="Apple-converted-space"> </span>|o <span class="Apple-converted-space"> </span>x<span class="Apple-converted-space"> </span>o s x <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></span>// the "|" symbol indicates percussive score (samples or synthesis)</p>
<p class="p6"><span class="s4">agentname<span class="Apple-converted-space"> </span>-> <span class="Apple-converted-space"> </span>sndname{0 <span class="Apple-converted-space"> </span>1 <span class="Apple-converted-space"> </span>2 <span class="Apple-converted-space"> </span>8 <span class="Apple-converted-space"> </span>}<span class="Apple-tab-span"> </span></span>// curly brackets indicate concrète score (samples)</p>
<p class="p4"><br></p>
<p class="p2">NOTE: for non-programmers the "|" symbol is a vertical bar, often called a pipe and should not be confused with a lowercase "L". For programmers, it's the symbol you use for OR (or "||").</p>
<p class="p4"><br></p>
<p class="p2">In general, when running a command use one space between words. Good practice is the following:</p>
<p class="p4"><br></p>
<p class="p2">future 4:12 >> swap agentname</p>
<p class="p4"><br></p>
<p class="p4"><br></p>
<p class="p5"><b>Creation of ixi lang:</b></p>
<p class="p7"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>*new (project name, key)</b></p>
<p class="p9"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>project name </b>- The name of your project. Represents a folder name. Default value is "default".</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>key </b>- The key of the session (important if playing with other instrumentalists). Default value is "C".</p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// inline example</p>
<p class="p12"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>XiiLang<span class="s4">();</span></p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>or<span class="Apple-tab-span"> </span></p>
<p class="p14"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s5">XiiLang</span><span class="s4">.new(</span>"yourprojectname"<span class="s4">, </span>"E"<span class="s4">);</span></p>
<p class="p15"><br></p>
<p class="p15"><br></p>
<p class="p16"><b>Getting help in ixi lang (type command and ixi evaluate):</b></p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>remind</b></p>
<p class="p9"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b><span class="Apple-tab-span"> </span>Opens a document with instructions of what ixi lang has in store.</p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>tonality</b></p>
<p class="p9"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b><span class="Apple-tab-span"> </span>Opens a document listing available scales and tunings.</p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>instruments</b></p>
<p class="p9"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b><span class="Apple-tab-span"> </span>Listing all registered instruments (although any synthdef on the system can be used).</p>
<p class="p15"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>help</b></p>
<p class="p9"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b><span class="Apple-tab-span"> </span>Opens this document.</p>
<p class="p15"><br></p>
<p class="p16"><b>Operators of ixi lang:</b></p>
<p class="p15"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>-><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Assignment operator: it assigns a score to an agent (see example below)</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>>><span class="Apple-converted-space"> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></b>Route agent through an effect. (see example below)</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span><<<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></b>Remove effect from an agent. (see example below)</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>))<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></b>Increase the amplitude of an agent. (see example below)</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>((<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></b>Reduce the amplitude of an agent. (see example below)</p>
<p class="p15"><br></p>
<p class="p15"><br></p>
<p class="p16"><b>The three score modes of ixi lang:</b></p>
<p class="p15"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>[ ... ]<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Melodic score</b>. Here notes are played in a scale from 1 to 9, where 1 is the tonic.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Spaces (or full stops - new in v3) represent silence. Additional arguments are<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>! for inserting a silence after the score</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ or - for transposition in pitch</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>* or / for increasing or decreasing the timing as multiplied or divided by an integer</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>^^ for accents (volume of each note, e.g. ^1418^)</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>() for note sustain (duration of each note (wholenote = 1, halfnote = 2, quarternote = 4, etc)</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><> for panning (1 being the left speaker, 5 middle and 9 the right speaker, e.g, <15289>)</p>
<p class="p9"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Melodic scores can use any Pattern-ready synthdef on your system, or samples that have<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>been loaded into XiiLangInstr (see class). A special case is the "midi" instrument, i.e., it is<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>not a synth definition, but sends MIDI messages out on a specific MIDI channel.</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>| ... |<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Percussive score</b>. Here samples (or synthdefs) are mapped to keyboard keys<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(see keyMappings.ixi). Spaces (or full stops - new in v3) represent silence.<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Additional arguments are<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>! for inserting a silence after the score</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ or - for transposition in pitch</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>* or / for increasing or decreasing the timing as multiplied or divided by an integer</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>^^ for accents (volume of each note, e.g. ^1418^)</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>() for note sustain (duration of each note (wholenote = 1, halfnote = 2, quarternote = 4, etc)</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><> for panning (1 being the left speaker, 5 middle and 9 the right speaker, e.g, <15289>)</p>
<p class="p9"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>The percussive score can create various types of timbral transitions between the sonic events in<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>the score. The available transitions are: morph, fade, wipe, minus, common, binwipe, copy, mul,<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>subtract, rand, smear, comb, low, band. Those can be used with the sound looping or playing<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>only once, using the % symbol.<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(e.g., <span class="Apple-converted-space"> </span>ringo -><span class="Apple-converted-space"> </span>morph|a <span class="Apple-converted-space"> </span>b <span class="Apple-converted-space"> </span>c <span class="Apple-converted-space"> </span>d <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>(not looping)<span class="Apple-converted-space"> </span>or <span class="Apple-converted-space"> </span>ringo -><span class="Apple-converted-space"> </span>fade%|a <span class="Apple-converted-space"> </span>b <span class="Apple-converted-space"> </span>c <span class="Apple-converted-space"> </span>d <span class="Apple-converted-space"> </span>|)</p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>{ ... }<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Concrete score</b>. Here longer samples can be played and their amplitude controlled.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Spaces (or full stops - new in v3)<span class="Apple-converted-space"> </span>do not represent silence. Additional arguments are<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>! for inserting a silence after the score</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>* or / for changing the scores duration.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><> for panning (1 being the left speaker, 5 middle and 9 the right speaker, e.g, <15289>)</p>
<p class="p15"><br></p>
<p class="p15"><br></p>
<p class="p16"><b>Meta agents (new in version 4)</b></p>
<p class="p15"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>~ ... ~<span class="Apple-tab-span"> </span>Meta agents</b>. Here agents (and groups or other meta agents) can be sequenced. An argument</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>is provided for how many times it is repeated. Example: <span class="Apple-converted-space"> </span>mymeta -> ~ agA 2 agB 4 ~</p>
<p class="p9"><br></p>
<p class="p9"><br></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p16"><b>Post-score operators in ixi lang:</b></p>
<p class="p15"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>!<span class="Apple-tab-span"> </span></b>Will create a silent part in the score according to the argument given. (e.g., !16 is sixteen silent notes)</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span>+<span class="Apple-tab-span"> </span>Transpose the score in MIDI notes. (for example +7 will be a fifth higher than the note written, and -12 will be an octave lower).</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span>*<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span>Will multiply the duration of the array (not note lengths in the array).</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span>/<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span>Will divide the duration of the array (not note lengths in the array).</p>
<p class="p9"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span>()<span class="Apple-tab-span"> </span>Arguments in brackets are note sustain. (1 is one beat, 2 is half, 4 quarter and 8 is eight). Can be multiplied with the _ symbol, so (1_4) is a whole note in a 4/4 time signature.</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span>^<span class="Apple-tab-span"> </span>Arguments in caret symbols are accents (9 is highest amplitude, 0 is silence). This is relative to the agent's general amplitude.</p>
<p class="p15"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><><span class="Apple-tab-span"> </span>Arguments between arrows are panning (1 is left, 5 is centre, 9 is right ).</p>
<p class="p15"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span>@<span class="Apple-tab-span"> </span>Number of times the agent will play. Example: oo -> wood[1 3 2<span class="Apple-converted-space"> </span>4 ]@4</p>
<p class="p15"><br></p>
<p class="p15"><br></p>
<p class="p16"><b>Methods of ixi lang (put in front of agents, as in verb-noun-adjective):</b></p>
<p class="p15"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>doze<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Set the agent to sleep</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>perk<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Wake the agent, if sleeping</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>nap<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Sleep for a N number of seconds. If 2nd argument, then this is repeated N2 times.<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(e.g., nap miles 2:4 )</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>shake<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Shake the score of an agent, practically scrambling all items</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>swap<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Swap items in the score of an agent</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>replace<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Replace new items into the score of an agent (in place)</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>insert<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Insert new items into the score of an agent (not in place)</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>remove<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Remove items from the score of an agent</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>>shift <span class="Apple-tab-span"> </span></b>Right shift the score by N number of places (e.g., >shift jimi 6 )</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span><shift <span class="Apple-tab-span"> </span></b>Left shift the score by N number of places (e.g., <shift jimi 6 )</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>inverse<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>In melodic scores, inversion of the melody as in twelve-tone technique</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>expand<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Expand the score of an agent by N spaces in between notes</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>reverse<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Reverse the score of an agent</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>up <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>In percussive scores, this method turns lower case letters to upper case</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>down <span class="Apple-tab-span"> </span></b>In percussive scores, this method turns upper case letters to lower case</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>yoyo <span class="Apple-tab-span"> </span></b>In percussive scores, this method scrambles the score to a mix of upper and lower cases</p>
<p class="p15"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>scale <span class="Apple-tab-span"> </span></b>As below, but here you can set the scale of individual agent (e.g., scale paul minor)</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>)) <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Increase volume. Can be used with future (e.g., future 0.1:5 >> )) paul ).</p>
<p class="p15"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>(( <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Decrease volume. Can be used with future.</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>NOTE</b> <span class="Apple-tab-span"> </span>The post score operators (above) can also be used in the syntax of these methods<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(in ixi lang "verbs") for example: <span class="Apple-converted-space"> </span>< ringo 1253742 (which reads like "pan ringo<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>to these locations")</p>
<p class="p9"><span class="s6"><b><span class="Apple-converted-space"> </span></b></span><span class="Apple-tab-span"> </span></p>
<p class="p15"><b><span class="Apple-converted-space"> </span></b><span class="s7"><span class="Apple-tab-span"> </span></span></p>
<p class="p16"><b>Commands in ixi lang:</b></p>
<p class="p15"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>tonic<span class="Apple-tab-span"> </span></b>Set the tonic of the performance (as MIDI note value)</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>scale<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Set the scale of the performance (for all agents evaluated after this event)</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>scalepush<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Set the scale of the performance (for all agents, also those playing)</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>tuning<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Set the tuning of the performance (for all agents evaluated after this event - type "tonality"<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>to see tunings - see below)</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>tuningpush<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Set the tuning of the performance (for all agents, also those playing)</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>tempo<span class="Apple-tab-span"> </span></b>Set the tempo of performance ( destination tempo: n seconds) (e.g., tempo 120:2 )</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>future<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Schedule event in the future (in sec:times or bars:times) (e.g., future 2:2 >> shake jimi or<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>future 2b:2 >> shake jimi). To remove the scheduling use: future << jimi.</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>grid<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Draw a grid with n spaces (e.g., grid 8 )</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>kill<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></b>Stop all sounds and future tasks of this window</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>remind<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Get a document listing the functions of ixi lang</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>help<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Get this document<span class="Apple-tab-span"> </span></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>instruments<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Get a list of instruments</p>
<p class="p9"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>tonality<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Get a list of scales and tunings</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>group<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Group together, under one name, various agents. This is handy for control.</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>sequence<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></b>Sequence agents linearly. This will create a new agent, but not stop running agents.</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>snapshot <span class="Apple-tab-span"> </span></b>Take a snapshot of the agent's scores and instruments for recalling later.</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>suicide <span class="Apple-tab-span"> </span></b>Live dangerously! Allow ixi lang to crash in your live coding session.<span class="Apple-converted-space"> </span></p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>hotline <span class="Apple-tab-span"> </span></b>In case you change your mind with regards to the suicide.</p>
<p class="p9"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>midiclients <span class="Apple-tab-span"> </span></b>Get a list of the MIDI clients (ports) available on your system.</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>midiout <span class="Apple-tab-span"> </span></b>Set the MIDI port (as in midiclient 2) and initiate a MIDI clock on that port<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(can slave other software, such as Ableton).</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>coder</b><span class="Apple-tab-span"> </span>Opens up a new ixi lang window where all keystrokes result in sounds.<span class="Apple-converted-space"> </span></p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>autocode</b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Will write and evaluate N number of lines of code. Now check email on stage?</p>
<p class="p9"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>matrix</b> <span class="Apple-tab-span"> </span>Opens up a matrix window. A dynamic state machine that can be adopted in real time<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(hit fn+key to get to code)</p>
<p class="p15"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>store</b> <span class="Apple-tab-span"> </span>Stores the environment of a session (with agents, groups, snapshots and effects)<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>to be loaded up later</p>
<p class="p15"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>load<span class="Apple-tab-span"> </span></b><span class="Apple-tab-span"> </span>Load a stored session and start playing as you left the system</p>
<p class="p9"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>savescore</b> <span class="Apple-tab-span"> </span>Record your session (from start) to be played back later (different from store/load)</p>
<p class="p9"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>playscore<span class="Apple-tab-span"> </span></b>Playback a session (do you want to listen to how your live gig sounded?). You can also<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>play it back asking for a new variation (where the algorithmic decisions taken throughout<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>the piece are different from the score you recorded). eg. [playscore myscore myvariation]</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>newrec<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Eraze all memory of the performance, if you use "savescore" it will record everything from<span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>the time you issued this command</p>
<p class="p9"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>new<span class="Apple-tab-span"> </span></b><span class="Apple-tab-span"> </span>Open up a GUI window to start a new project or create a new key mapping.<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></p>
<p class="p15"><br></p>
<p class="p8"><span class="Apple-tab-span"> </span><b>gui<span class="Apple-tab-span"> </span></b><span class="Apple-tab-span"> </span>Same as new.<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></p>
<p class="p15"><br></p>
<p class="p15"><br></p>
<p class="p16"><b>Available Audio Effects in ixi lang (w/ hardcoded parameters):</b></p>
<p class="p15"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>reverb<span class="Apple-tab-span"> </span></b>A decent space reverb<b><span class="Apple-tab-span"> </span></b></p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>reverbS<span class="Apple-tab-span"> </span></b>A small space reverb</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>reverbL<span class="Apple-tab-span"> </span></b>A large space reverb</p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>delay<span class="Apple-tab-span"> </span></b>A decent delay<b><span class="Apple-tab-span"> </span></b></p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>distort<span class="Apple-tab-span"> </span></b>A decent distortion</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>cyberpunk<span class="Apple-tab-span"> </span></b>A good healthy effect</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>bitcrush<span class="Apple-tab-span"> </span></b>A jolly sounding effect<b><span class="Apple-tab-span"> </span></b></p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>techno<span class="Apple-tab-span"> </span></b>An old trick of sweeping filter</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>antique<span class="Apple-tab-span"> </span></b>A lowpass and some vinyl scratches</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>lowpass<span class="Apple-tab-span"> </span></b>What it says on the tin<b><span class="Apple-tab-span"> </span></b></p>
<p class="p9"><br></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>tremolo<span class="Apple-tab-span"> </span></b>Amplitude variation</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p8"><b><span class="Apple-tab-span"> </span>vibrato<span class="Apple-tab-span"> </span></b>Pitch variation</p>
<p class="p15"><br></p>
<p class="p15"><br></p>
<p class="p16"><b>Creating agents in ixi lang</b></p>
<p class="p15"><br></p>
<p class="p2">By creating an agent (agentname -> .... ), you create a space where a score can be performed. The agent can play any type of score (melodic, percussive or concrète). The agent name is then used when assigning effects or applying methods.<span class="Apple-converted-space"> </span></p>
<p class="p4"><br></p>
<p class="p2">The agent is assigned a score by hitting alt + arrow keys. Any arrow can be used, with ONE exception, where command + left arrow on an agent line will kill that agent (and turn the text red). It will not wake up with a perk command, but has to be reevaluated with commend + right.</p>
<p class="p15"><br></p>
<p class="p15"><br></p>
<p class="p16"><b>Real time recording of sounds into keys</b></p>
<p class="p15"><br></p>
<p class="p2">By hitting "fn" and Return, a window opens up that tells you to press any key to record a new sound "into it". You simply hold down the key and it records until you release the key. The sounds will be stored in the "livesamples" folder, so if you want to use them at a later stage, you move them into the samples folder and map them to the key you want.</p>
<p class="p4"><br></p>
<p class="p15"><br></p>
<p class="p16"><b>Tempo tapping</b></p>
<p class="p15"><br></p>
<p class="p2">You can set the tempo of ixi lang by tapping on the keyboard. Just hold down ctrl and then start tapping on the "," key until you want to stop and then indicate that with the "." key (on a UK keyboard thesa are also the "<" and ">" keys). The tempo will then be calculated and set.<span class="Apple-converted-space"> </span></p>
<p class="p4"><br></p>
<p class="p17"><br></p>
<p class="p16"><b>On XiiLangInstr</b></p>
<p class="p15"><br></p>
<p class="p2"><b>See:</b> <a href="../Core/Object.html"><span class="s8">XiiLangInstr</span></a><b> (highlight and hit alt+y to view)</b></p>
<p class="p15"><br></p>
<p class="p2">The ixi lang instruments class stores the available instruments. Synthdefs are added when the class is run, but you can use any pattern-ready synth definition you have on your system. Synth Definitions are mapped onto keys on the keyboard, and when the language is run it creates synth definitions with the same names as your samples. This mapping is random unless a special keyMapping.ixi file is present in the sample folder where keys are mapped to the NAME of the sound. Mono and short sounds are ideal.</p>
<p class="p4"><br></p>
<p class="p2">Use the command "new" go get the GUI where you can create your keymapping file.</p>
<p class="p4"><br></p>
<p class="p2">If you want to use specific synth definitions for your project and map to the keys, you can create a synthdefs.scd file in your project folder. Make sure you add your synthdefs with the name of the project (e.g., SynthDef(\myDef, {bla bla}).add(\myProject), if you want to be able to map your synthdefs to keys using the keymapping GUI.<span class="Apple-converted-space"> </span></p>
<p class="p15"><br></p>
<p class="p15"><br></p>
<p class="p16"><b>ixi lang Sattellites:</b></p>
<p class="p15"><br></p>
<p class="p16"><b>The Coder :</b></p>
<p class="p15"><b><span class="Apple-converted-space"> </span></b></p>
<p class="p2">Opens up an ixi lang coding file, just as normally, except every keystroke is "sounded" as per key mapping. This makes it possible to live code in more "real-time" than when there is a delay between writing a score and executing it.</p>
<p class="p15"><br></p>
<p class="p16"><b>The Matrix:<span class="Apple-converted-space"> </span></b></p>
<p class="p15"><br></p>
<p class="p2">The Matrix is a sequencer where you can place samples, notes or SuperCollider code. Write letters into the matrix and those are containers of a function (which can be to trigger a sound or to run SuperCollider code). To control the cell the key combination of "fn" + the key value you want is used. Hit the TAB to start an actor and hit delete to remove it.<span class="Apple-converted-space"> </span></p>
<p class="p4"><br></p>
<p class="p2">The following variables are available as globals and make it possible to create complex patterns.</p>
<p class="p3"><br></p>
<p class="p18"><span class="Apple-tab-span"> </span>~instr = <span class="s9">\string</span>; <span class="Apple-tab-span"> </span>// set the instrument to string</p>
<p class="p18"><span class="Apple-tab-span"> </span>~note<span class="Apple-converted-space"> </span>= <span class="s9">60</span>;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>// the note value of the instrument</p>
<p class="p18"><span class="Apple-tab-span"> </span>~amp <span class="Apple-converted-space"> </span>= <span class="s9">0.5</span>;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>// amplitude</p>
<p class="p18"><span class="Apple-tab-span"> </span>~wait<span class="Apple-converted-space"> </span>= <span class="s9">0.25</span>;<span class="Apple-tab-span"> </span>// how long the agent waits on this cell</p>
<p class="p18"><span class="Apple-tab-span"> </span>~nextX = <span class="s9">3</span>;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>// which X (horizontal column to enter next)</p>
<p class="p18"><span class="Apple-tab-span"> </span>~nextY = <span class="s9">1</span>;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>// which Y (vertical row to enter next)</p>
<p class="p17"><br></p>
<p class="p2">In the sccode: field, this can be coded using the SC lang (the language of SuperCollider):</p>
<p class="p3"><span class="Apple-tab-span"> </span></p>
<p class="p18"><span class="Apple-tab-span"> </span>~nextX = <span class="s9">5.rand</span>;<span class="Apple-tab-span"> </span></p>
<p class="p15"><br></p>
<p class="p2">The Matrix is a bit of a riddle. You have to explore it yourself!</p>
<p class="p17"><br></p>
<p class="p15"><br></p>
<p class="p16"><b>Example of a ixi lang session with comments<span class="Apple-converted-space"> </span></b></p>
<p class="p3"><br></p>
<p class="p19">// remove comments and run this line in an EMPTY document and the ixi lang interpreter is launched (here you use SHIFT + RETURN)</p>
<p class="p19">// or better use the demosession.scd file within the ixi lang folder</p>
<p class="p20"><br></p>
<p class="p21">XiiLang<span class="s4">(txt:</span>true<span class="s4">)<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></span></p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">tuning just<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// choose a tuning (remember to use the ixi lang evaluation (Alt + right arrow)</p>
<p class="p19"><span class="s4">scale minor<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// set the scale</p>
<p class="p3"><br></p>
<p class="p3"><br></p>
<p class="p19">// melodic score</p>
<p class="p19"><span class="s4">jimi <span class="Apple-converted-space"> </span>-> <span class="Apple-converted-space"> </span>string[1 <span class="Apple-converted-space"> </span>2<span class="Apple-converted-space"> </span>6<span class="Apple-converted-space"> </span>2 <span class="Apple-converted-space"> </span>]<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></span>// here we have an agent called jimi, playing four notes</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">jimi <span class="Apple-converted-space"> </span>-> <span class="Apple-converted-space"> </span>string[1 <span class="Apple-converted-space"> </span>2<span class="Apple-converted-space"> </span>6<span class="Apple-converted-space"> </span>2 <span class="Apple-converted-space"> </span>]+12<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></span>// same as above but transposed up an octave (MIDI notes)</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">jimi <span class="Apple-converted-space"> </span>-> <span class="Apple-converted-space"> </span>string[1 <span class="Apple-converted-space"> </span>2<span class="Apple-converted-space"> </span>6<span class="Apple-converted-space"> </span>2 <span class="Apple-converted-space"> </span>]!16<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></span>// ! 16 makes silence for 16 notes before playing again</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">jimi <span class="Apple-converted-space"> </span>-> <span class="Apple-converted-space"> </span>string[1 <span class="Apple-converted-space"> </span>2<span class="Apple-converted-space"> </span>6<span class="Apple-converted-space"> </span>2 <span class="Apple-converted-space"> </span>]+12!16(12) </span>// this can be combined - and alternating between whole and half notes</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">jimi <span class="Apple-converted-space"> </span>-> <span class="Apple-converted-space"> </span>string[1 <span class="Apple-converted-space"> </span>2<span class="Apple-converted-space"> </span>6<span class="Apple-converted-space"> </span>2 <span class="Apple-converted-space"> </span>]+12(12~8) </span>//<span class="Apple-converted-space"> </span>alternating between whole and half notes but note sustain is multiplied by 8</p>
<p class="p3"><br></p>
<p class="p18">midiclients<span class="Apple-tab-span"> </span>// want to send midi out to another app?</p>
<p class="p3"><br></p>
<p class="p18">midiout 2<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>// send out on bus 2</p>
<p class="p3"><br></p>
<p class="p18">jarret<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span>-> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>midi[1 <span class="Apple-converted-space"> </span>4 <span class="Apple-converted-space"> </span>2<span class="Apple-converted-space"> </span>1<span class="Apple-converted-space"> </span>]+12<span class="Apple-tab-span"> </span><span class="s10">// sending out midi on channel 1</span></p>
<p class="p3"><br></p>
<p class="p18">jarret<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span>-> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>midi[1 <span class="Apple-converted-space"> </span>4 <span class="Apple-converted-space"> </span>2<span class="Apple-converted-space"> </span>1<span class="Apple-converted-space"> </span>]c5 <span class="Apple-tab-span"> </span><span class="s10">// sending out midi info on channel 5</span></p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">a -> (135)<span class="Apple-tab-span"> </span></span>// a chord can be defined in brackets and assigned to a character (one letter only)</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">jarret -> piano[1 <span class="Apple-converted-space"> </span>3 <span class="Apple-converted-space"> </span>5 <span class="Apple-converted-space"> </span>a<span class="Apple-converted-space"> </span>]<span class="Apple-tab-span"> </span></span>// the chord is then played inside the score</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">a -> $16 <span class="Apple-tab-span"> </span></span>// 16 semitones above the fundamental</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">b -> $24<span class="Apple-tab-span"> </span></span>// two octaves above</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">c -> (158ab)<span class="Apple-tab-span"> </span></span>// a chord with a tonic, a fifth, an octave, a third, and two octave above</p>
<p class="p3"><br></p>
<p class="p18">bb -> piano[1 2 3 a b c c ]</p>
<p class="p3"><br></p>
<p class="p19">// or as here below, jack a minor chord into a major scale</p>
<p class="p18">scale major</p>
<p class="p18">a -> $3</p>
<p class="p18">c -> (1a5)</p>
<p class="p18">d -> (135)</p>
<p class="p18">bb -> piano[1 2 a 3 4 5 <span class="Apple-converted-space"> </span>c <span class="Apple-converted-space"> </span>d <span class="Apple-converted-space"> </span>](1)</p>
<p class="p3"><br></p>
<p class="p3"><br></p>
<p class="p19">// percussive score</p>
<p class="p19"><span class="s4">ringo<span class="Apple-converted-space"> </span>-> <span class="Apple-converted-space"> </span>|o <span class="Apple-converted-space"> </span>x<span class="Apple-converted-space"> </span>o<span class="Apple-converted-space"> </span>x <span class="Apple-converted-space"> </span>|<span class="Apple-tab-span"> </span></span>// here o is mapped to a bass drum and x to a snare drum</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">ringo2 <span class="Apple-converted-space"> </span>-> <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>ii <span class="Apple-converted-space"> </span>s<span class="Apple-converted-space"> </span>n | (1148)<span class="Apple-tab-span"> </span></span>// here the notes get durations (two whole notes, a quarter and ab eigth)</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">ringo3 <span class="Apple-tab-span"> </span>-> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>|c c c c |!2^1219^<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// expanded by two and the accents are of amplitude 1 2 1 and 9 (relative to general amp)</p>
<p class="p3"><br></p>
<p class="p18">ringo4 <span class="Apple-converted-space"> </span>-> <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>o o d sd <span class="Apple-converted-space"> </span>|!12<span class="Apple-tab-span"> </span><span class="s10">// ! 12 inserts silence for 12 beats</span></p>
<p class="p3"><br></p>
<p class="p3"><br></p>
<p class="p19">// concrète score</p>
<p class="p18">pierre <span class="Apple-tab-span"> </span>-> <span class="Apple-converted-space"> </span>water{0<span class="Apple-converted-space"> </span>2 <span class="Apple-converted-space"> </span>8 <span class="Apple-converted-space"> </span>4<span class="Apple-converted-space"> </span>1 0 <span class="Apple-converted-space"> </span>}<span class="Apple-tab-span"> </span><span class="s10">// numbers are amplitude</span></p>
<p class="p3"><br></p>
<p class="p18">henry <span class="Apple-tab-span"> </span>-> <span class="Apple-converted-space"> </span>water{0<span class="Apple-converted-space"> </span>2 <span class="Apple-converted-space"> </span>8 <span class="Apple-converted-space"> </span>}!14<span class="Apple-tab-span"> </span><span class="s10">// last amp value is extended by 14 beats</span></p>
<p class="p3"><br></p>
<p class="p18">schaeffer -><span class="Apple-converted-space"> </span>water{0<span class="Apple-converted-space"> </span>2 <span class="Apple-converted-space"> </span>8 <span class="Apple-converted-space"> </span>}*4!14<span class="Apple-tab-span"> </span><span class="s10">// duration is multiplied by 4 and same as above</span></p>
<p class="p3"><br></p>
<p class="p3"><br></p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">jimi ))<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></span>// increase the volume of jimi</p>
<p class="p3"><br></p>
<p class="p18">jimi >> delay <span class="Apple-tab-span"> </span>// add one effect to jimi's output</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">jimi >> distort >> reverb<span class="Apple-converted-space"> </span></span>// put jimi through distortion and reverb effects</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">jimi << distort<span class="Apple-tab-span"> </span></span>// remove distortion but not the reverb effect</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">jimi << <span class="Apple-tab-span"> </span></span>// remove all effects</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">shake jimi<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></span>// scramble jimi's score</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">future 2:4 >> swap jimi <span class="Apple-tab-span"> </span></span>// in 2 seconds time, swap jimi's score. Do this 4 times</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">future 2b:4 >> swap jimi <span class="Apple-tab-span"> </span></span>// every 2 bars, swap jimi's score. Do this 4 times</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">tempo 60<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// set the tempo</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">tempo 120:10<span class="Apple-tab-span"> </span></span>// set the tempo to 120 in 10 seconds</p>
<p class="p3"><br></p>
<p class="p18">group funnyband -> ringo jimi <span class="Apple-tab-span"> </span><span class="s10">// create a new group</span></p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">doze band<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// make the band stop</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">perk band <span class="Apple-tab-span"> </span></span>// restart the bandmembers</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">sequence drumbo -> ringo ringo2<span class="Apple-tab-span"> </span></span>// create a new sequence of two sequences</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">snapshot -> one <span class="Apple-tab-span"> </span></span>// take a snapshot of the agent states</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">snapshot one<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// recall the snapshot</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">swap jimi<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></span>// swap jimi's score</p>
<p class="p22"><br></p>
<p class="p19"><span class="s4">+ jimi 12 <span class="Apple-tab-span"> </span></span>// add 12 as an argument to the score (transposing octave up)</p>
<p class="p22"><br></p>
<p class="p19"><span class="s4">^ jimi 1842 <span class="Apple-tab-span"> </span></span>// setting the amplitude arguments of jimi</p>
<p class="p22"><br></p>
<p class="p19"><span class="s4">future 2b:12 >> + jimi 7 12 0 <span class="Apple-tab-span"> </span></span>// every 2 bars, transpose jimi's score to the tailing arguments<span class="Apple-converted-space"> </span></p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">snapshot -> two <span class="Apple-tab-span"> </span></span>// take a snapshot of the agent states</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">snapshot two<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// recall the snapshot</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">future 3:12 >> snapshot <span class="Apple-tab-span"> </span></span>// recall a random snapshot every 3 seconds (12 times)</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">autocode 4 <span class="Apple-tab-span"> </span></span>// create four lines of automatic code writing</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">save mysession <span class="Apple-tab-span"> </span></span>// save a session with a unique name</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">load mysession<span class="Apple-tab-span"> </span></span>// load that session at a later time</p>
<p class="p3"><br></p>
<p class="p19"><span class="s4">help <span class="Apple-tab-span"> </span></span>// get this file</p>
<p class="p3"><br></p>
<p class="p19">/// Experimental</p>
<p class="p3"><br></p>
<p class="p18"><span class="s11">Using</span> ixi lang in normal <span class="s11">SC</span> code:</p>
<p class="p3"><br></p>
<p class="p19">// when creating an agent, the string has to go in</p>
<p class="p19"><span class="s12">"aa -> xylo[2 3 4 ]"</span><span class="s4">.ixilang(0, newagent:</span><span class="s11">true</span><span class="s4">) </span>// 1st arg: document nr, 2nd arg: new agent</p>
<p class="p23">"axa -> xylo[2 3 4 8 3 ]"<span class="s4">.ixilang( newagent:</span><span class="s11">true</span><span class="s4">)</span></p>
<p class="p3"><br></p>
<p class="p19">// if doc number is nil, a new window is created.</p>
<p class="p3"><br></p>
<p class="p19">// then one can give it any ixi lang action:</p>
<p class="p18"><span class="s12">"doze axa"</span>.ixilang(0)</p>
<p class="p18"><span class="s12">"perk axa"</span>.ixilang(0)</p>
<p class="p3"><br></p>
<p class="p3"><br></p>
</body>
</html>