summaryrefslogtreecommitdiffstats
path: root/tde-i18n-sv/docs/tdemultimedia/artsbuilder/midi.docbook
blob: f8e13ed2f606a4437d92e15f690d13dc430ba60d (plain)
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
<!-- <?xml version="1.0" ?>
<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd">
To validate or process this file as a standalone document, uncomment
this prolog. Be sure to comment it out again when you are done -->

<chapter id="midi">
<title
>&MIDI;</title>

<sect1 id="midi-overview">
<title
>Översikt</title>

<!-- what-to-say-here: aRts has three roles
  * moving midi events around between applications
  * abstracting the hardware
  * synthesizer -->

<para
>&MIDI;-stödet i &arts; kan göra ett antal olika saker. För det första, tillåter det <emphasis
>kommunikation</emphasis
> mellan olika delar av programvaran som producerar eller konsumerar &MIDI;-händelser. Om du till exempel har en sequencer och en samplingsenhet som båda använder &arts;, kan &arts; skicka &MIDI;-händelser från sequencern till samplingsenheten. </para>

<para
>För det andra, kan &arts; också hjälpa program att <emphasis
>växelverka med hårdvaran</emphasis
>. Om en programvarudel (till exempel samplingen) fungerar tillsammans med &arts;, kan den dessutom ta emot &MIDI;-händelser från ett externt &MIDI;-keyboard. </para>

<para
>Till slut, så utgör &arts; en utmärkt <emphasis
>modulär synthesizer</emphasis
>. Den är konstruerat att göra just detta. Man kan alltså bygga instrument av små moduler med aRts-byggaren, och sedan använda instrumenten för att komponera eller spela musik. Syntes betyder inte nödvändigtvis bara ren syntes, utan det finns moduler som kan användas för att spela upp samplingar. På så sätt kan &arts; vara både en samplingsenhet eller synt, och eftersom den är fullständigt modulär, är den mycket lätt att utöka, mycket lätt att experimentera med, kraftfull och flexibel. </para>
</sect1>

<sect1 id="midi-manager">
<title
>&MIDI;-hanteraren</title>
<!-- what-to-say-here:
  * how to use artscontrol - view midimanager
  * what does autorestore do? (not yet implemented - so not yet documented) -->

<para
>Den centrala komponenten i &arts; som håller reda på vilka program som är anslutna och hur midi-händelser ska skickas mellan dem är midi-hanteraren. För att se eller påverka vad den gör, starta artscontrol. Välj sedan <menuchoice
><guilabel
>Visa</guilabel
><guilabel
>Visa midihanterare</guilabel
> </menuchoice
> i menyn. </para>

<para
>Till vänster ser man <guilabel
>Midi-inmatning</guilabel
>. Där listas alla objekt som skapar &MIDI;-händelser, som en extern &MIDI;-port som skickar data från ett anslutet &MIDI;-keyboard, en sequencer som spelar en sång och så vidare. Till höger ser man <guilabel
>Midi-utmatning</guilabel
>. Där listas allting som konsumerar &MIDI;-händelser, som en simulerad samplingsenhet (programvara), eller den externa &MIDI;-porten som en hårdvarusamplingsenhet är ansluten till utanför din dator. Nya program, som en sequencer eller liknande, registrerar sig själva, så att listan ändras med tiden. </para>

<para
>Du kan ansluta ingångar och utgångar om du markerar en ingång i listan till vänster och en utgång till höger, och väljer <guilabel
>Anslut</guilabel
> med knappen nedanför. <guilabel
>Koppla från</guilabel
> fungerar på samma sätt. Du ser vad som är anslutet som små linjer mellan ingångar och utgångar, mitt i fönstret. Observera att du kan ansluta en ingång till mer än en utgång (och tvärtom). </para>

<para
>Program (som sequencern Brahms) läggs till av sig själv när de startas och tas bort från listan när de avslutas. Men du kan också lägga till nya enheter med menyn <guilabel
>Lägg till</guilabel
>. </para>

<variablelist>
<varlistentry>
<term
><guimenuitem
>System midi port (OSS)</guimenuitem
></term>
<listitem>
<para
>Det här skapar ett nytt  &arts;-objekt som kommunicerar med en extern midi-port. </para>

<para
>Eftersom externa midi-portar både kan skicka och ta emot data, så läggs både en ingång och utgång till med det här valet. Med &Linux;, ska du antingen ha en <acronym
>OSS</acronym
>-drivrutin (eller <acronym
>OSS</acronym
>/Free, som följer med &Linux;-kärnan) eller en <acronym
>ALSA</acronym
>-drivrutin installerad för ditt ljudkort, för att det här ska fungera. Du blir tillfrågad om enhetens namn. Det här är oftast <filename class="devicefile"
>/dev/midi</filename
> eller <filename class="devicefile"
>/dev/midi00</filename
>. </para>

<para
>Om du har mer än en &MIDI;-enhet eller en &MIDI;-återkopplingsenhet installerad, kan det dock finnas fler alternativ. För att visa information om midi-portar, starta inställningscentralen, och välj <menuchoice
><guilabel
>Information</guilabel
> <guilabel
>Ljud</guilabel
></menuchoice
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guimenuitem
>aRts syntes midi utmatning</guimenuitem
></term>
<listitem>
<para
>Det här lägger till en ny &MIDI;-utgång med ett &arts; syntinstrument. Om du väljer menyalternativet, dyker en dialogruta upp som låter dig ange ett instrument. Du kan skapa nya instrument med aRts-byggaren. Alla <literal role="extension"
>.arts</literal
>-filer med ett namn som börjar med <filename
>instrument_</filename
> visas här. </para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="brahms">
<title
>Att använda &arts; &amp; Brahms</title>

<para
>I själva verket är det riktigt lätt att komma igång. Du behöver en version av Brahms som fungerar med &kde; 2.1, som finns i <literal
>kmusic</literal
> <acronym
>CVS</acronym
>-modulen. Det finns också information om hur man skaffar &brahms; på <ulink url="http://www.arts-project.org/"
>aRts hemsida</ulink
> i avsnittet om nerladdning. </para>

<para
>När du har startat programmet, syns det i &MIDI;-hanteraren. Om du vill använda syntes, lägg helt enkelt till ett &MIDI;-instrument med <menuchoice
><guilabel
>Lägg till</guilabel
><guilabel
>aRts syntes midi utmatning</guilabel
></menuchoice
>. </para>

<para
>Välj ett instrument (till exempel <guilabel
>organ2</guilabel
>). Anslut instrumentet med knappen <guilabel
>Anslut</guilabel
>. Därefter kan du börja komponera i &brahms;, och resultatet syntetiseras med &arts;. </para>

<para
>Det är oftast en god ide att ha &artscontrol;-fönstret öppet, och se till att volymen inte är för hög (ljudkvaliteten blir sämre när staplarna når den övre gränsen). Nu kan du börja skriva en ny &arts; demo, och när du är klar kan du få den publicerad på aRts-project.org ;-). </para>

<!-- TODO: how to do more than one instrument in Brahms (hm, not implemented
     yet, not documented yet), how to use samples, mapping and so on. These
  	 things need to be implemented, too. -->

</sect1>

<sect1 id="midisend">
<title
>midisend</title>

<para
><command
>midisend</command
>  är ett litet program som låter dig skicka &MIDI;-händelser från skalet. Det registreras som en klient precis som alla andra program. Det enklaste sättet att använda det är att skriva <screen
><prompt
>&percnt;</prompt
> <userinput
><command
>midisend</command
> <option
>-f</option
> <parameter
><replaceable
>/dev/midi00</replaceable
></parameter
></userinput
> </screen
> som gör ungefär samma sak som att lägga till en  &MIDI;-port i &artscontrol;. (Inte riktigt, därför att <command
>midisend</command
> skickar bara händelser). Skillnaden är att det är till exempel lätt att starta <command
>midisend</command
> på olika datorer (och på det sättet använda nätverkstransparens). </para>

<para
>Det är också möjligt att låta <command
>midisend</command
> skicka data från <filename class="devicefile"
>stdin</filename
>, vilket du kan använda för att skicka data från program som inte stöder &arts;, så här: <screen
><prompt
>&percnt;</prompt
> <userinput
><command
><replaceable
>program_som_skickar_MIDI_händelser_på_standardutmatning</replaceable
></command
> | <command
>midisend</command
> <option
>-f</option
> <option
><replaceable
>-</replaceable
></option
></userinput
></screen>
<!-- TODO: document all options -->
</para>

</sect1>

<sect1 id="midi-creating-instruments">
<title
>Att skapa instrument</title>
 
<para
>Sättet som &arts; utför midi-syntes är följande: Det finns strukturer som har ett antal ingångar, där de hämtar frekvensen, anslagsstyrkan (volymen) och en parameter som anger om tangenten fortfarande är nertryckt. Strukturen ska nu syntetisera exakt den tonen med den volymen, och reagera på parametern pressed (där pressed = 1 betyder att användaren håller nere tangenten och pressed = 0 betyder att användaren har släppt tangenten). </para>

<para
>När &MIDI;-händelser anländer, skapar &arts; nya strukturer för tonerna efter behov, anger parametrarna, och rensar bort dem när de är klara. </para>

<para
>För att skapa och använda en sådan struktur, ska du göra följande: </para>

<itemizedlist>
<listitem>
<para
>För att komma igång är det bekvämaste sättet att öppna <filename
>template_Instrument.arts</filename
> i Arts-byggaren. </para>

<para
>Det här kan åstadkommas genom att använda <menuchoice
><guimenu
>Arkiv</guimenu
><guimenuitem
>Öppna exempel...</guimenuitem
></menuchoice
> och välja <guimenuitem
>template_Instrument</guimenuitem
> i fildialogrutan. Det här skapar en tom struktur med de nödvändiga parametrarna, som du bara behöver <quote
>fylla i</quote
>. </para>
</listitem>

<listitem>
<para
>För att hantera parametern "pressed", är det praktiskt att använda Synth&lowbar;ENVELOPE&lowbar;ADSR, eller om en wav-fil med trumma spelas, spela bara upp den ändå och ignorera parametern. </para>
</listitem>

<listitem>
<para
>Strukturen ska indikera när den inte behövs längre med utgången <quote
>done</quote
>. Om done är <returnvalue
>1</returnvalue
>, antar &arts; att strukturen kan tas bort. Praktiskt nog så tillhandahåller ADSR-enveloppen en parameter som anger när den är färdig, så du behöver bara ansluta den till done-utgången för strukturen. </para>
</listitem>

<listitem>
<para
>Du bör döpa om din struktur till något namn som börjar med <filename
>instrument_</filename
>, som <filename
>instrument_piano.arts</filename
> - du bör spara filen med samma namn i katalogen <filename class="directory"
>$<envar
>HOME</envar
>/arts/structures</filename
> (där aRts-byggaren normalt sparar filer). </para>
</listitem>

<listitem>
<para
>Till sist, när du väl har sparat den, kan du använda den med &artscontrol; i &MIDI;-hanteraren.</para>
</listitem>

<listitem>
<para
>Och din struktur ska förstås spela ljuddata som den skapar via vänster och höger utgång för strukturen, som sedan spelas med ljudhanteraren (du kan se det här i &artscontrol;), så att du till slut kan höra ljudet (eller efterbehandla det med ljudeffekter). </para>
</listitem>
</itemizedlist>

<para
>Ett bra sätt att lära sig hur man skapar instrument är att öppna ett befintligt instrument med <menuchoice
><guilabel
>Arkiv</guilabel
><guilabel
>Öppna Exempel</guilabel
> </menuchoice
> och se hur det fungerar ;) </para>
</sect1>

<sect1 id="mapped-instruments">
<title
>Instrumentkartor</title>

<para
>Instrumentkartor är instrument som beter sig olika beroende på tonhöjden, programmet, kanalen eller anslagsstyrkan. Man kan till exempel skapa ett piano med fem oktaver, och använda en sampling för varje oktav (med tonhöjden förskjuten i motsvarande mån). Det här låter mycket bättre än att bara använda en sampling. </para>

<para
>Man kan också bygga en trumkarta, som spelar en särskild trumsampling för varje tangent. </para>

<para
>Till sist är det mycket användbart om man kombinerar helt olika ljud i en instrumentkarta för olika program. På det här sättet kan man använda sin sequencer, externa keyboard eller en annan &MIDI;-källa för att byta mellan ljud utan att behöva manipulera &arts; under arbetets gång. </para>

<para
>Ett bra exempel på det här är <filename
>arts_all</filename
>, som helt enkelt kombinerar alla instrument som levereras med &arts; i en karta. På så sätt behöver man bara ange att detta <quote
>instrument</quote
> ska användas en gång i &artscontrol;, och sedan kan man komponera en hel sång i en sequencer utan att överhuvudtaget bry sig om &arts;. Behövs ett annat ljud? Ändra helt enkelt programmet i sequencern, och &arts; tillhandahåller ett nytt ljud. </para>

<para
>Att skapa sådana kartor är ganska rättframt. Man behöver bara skapa en textfil, och skriva regler som ser ut så här: </para>

<programlisting
>ON <replaceable
>[ villkor ...]</replaceable
> DO structure=<replaceable
>någon_struktur</replaceable
>.arts
</programlisting>

<para
>Villkoren kan vara ett eller flera av följande: </para>

<variablelist>

<varlistentry>
<term
><option
>pitch</option
></term>

<listitem>
<para
>Tonhöjden som spelas. Man använder det här om man vill dela instrumentet beroende på tonhöjd. I vårt ursprungliga exempel, skulle ett piano som använder olika samplingar för olika oktaver använda det här som villkor. Man kan ange en enkel tonhöjd, som <userinput
><option
>pitch</option
>=<parameter
>62</parameter
></userinput
> eller ett intervall av tonhöjder, som <userinput
><option
>pitch</option
>=<parameter
>60</parameter
>-<parameter
>72</parameter
></userinput
>. De möjliga tonhöjderna går mellan <parameter
>0</parameter
> och <parameter
>127</parameter
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><option
>program</option
></term>
<listitem>
<para
>Programmet som är aktivt på kanalen som tonen spelas upp i. Oftast låter sequencern dig välja <quote
>instrument</quote
> via programinställningen. Enkla program eller intervall är tillåtna, dvs. <userinput
><option
>program</option
>=<parameter
>3</parameter
></userinput
> eller <userinput
><option
>program</option
>=<parameter
>3</parameter
>-<parameter
>6</parameter
></userinput
>. Möjliga program går mellan <parameter
>0</parameter
> och <parameter
>127</parameter
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><option
>channel</option
></term>
<listitem>
<para
>Kanalen som tonen skickas på. Enkla kanaler eller intervall är tillåtna, dvs. <userinput
><option
>channel</option
>=<parameter
>0</parameter
></userinput
> eller <userinput
><option
>channel</option
>=<parameter
>0</parameter
>-<parameter
>8</parameter
></userinput
>. Möjliga kanaler går mellan <parameter
>0</parameter
> och <parameter
>15</parameter
>. </para>
</listitem>

</varlistentry>
<varlistentry>
<term
><option
>velocity</option
></term>
<listitem>
<para
>Anslagsstyrkan (volymen) som tonen har. Enkla anslagsstyrkor (vem skulle använda det?) eller intervall är tillåtna, dvs. <userinput
><option
>velocity</option
>=<parameter
>127</parameter
></userinput
> eller <userinput
><option
>velocity</option
>=<parameter
>64</parameter
>-<parameter
>127</parameter
></userinput
>. Möjliga anslagsstyrkor går mellan <parameter
>0</parameter
> och <parameter
>127</parameter
>. </para>
</listitem>
</varlistentry>
</variablelist>

<para
>Ett fullständigt exempel för en karta kan vara (det här kommer från den nuvarande <filename
>instrument_arts_all.arts-map</filename
>): </para>

<programlisting
>ON program=0 DO structure=instrument_tri.arts
ON program=1 DO structure=instrument_organ2.arts
ON program=2 DO structure=instrument_slide1.arts
ON program=3 DO structure=instrument_square.arts
ON program=4 DO structure=instrument_neworgan.arts
ON program=5 DO structure=instrument_nokind.arts
ON program=6 DO structure=instrument_full_square.arts
ON program=7 DO structure=instrument_simple_sin.arts
ON program=8 DO structure=instrument_simple_square.arts
ON program=9 DO structure=instrument_simple_tri.arts
ON program=10 DO structure=instrument_slide.arts
ON program=11 pitch=60 DO structure=instrument_deepdrum.arts
ON program=11 pitch=61 DO structure=instrument_chirpdrum.arts
</programlisting>

<para
>Som du ser, väljs strukturen beroende på programmet. För program 11, syns en <quote
>trumkarta</quote
> (med två poster), som spelar en <quote
>deepdrum</quote
> med C-5 (tonhöjd = 60), och en <quote
>chirpdrum</quote
> med C#5 (tonhöjd = 61). </para>
 
<para
>För att kartfiler automatiskt ska synas i &artscontrol; som ett alternativ bland instrumenten, måste de heta <filename
>instrument_<replaceable
>någonting</replaceable
>.arts-map</filename
> och antingen finnas i din hemkatalog i <filename class="directory"
>$<envar
>HOME</envar
>/arts/structures</filename
>, eller i &kde;-katalogen i <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/apps/artsbuilder/examples</filename
>. Strukturer som används av kartan kan antingen anges med en absolut sökväg, eller relativt till katalogen som kartfilen finns i. </para>

<para
>Att utöka arts_all map eller till och med göra en fullständigt generell &MIDI;-karta för &arts; är en bra idé för att göra &arts; lättare att använda direkt som det är. Fundera gärna på att bidra med intressanta instrument som du skapar, så att de kan inkluderas i framtida versioner av &arts;. </para>
</sect1>

<!-- TODO: Maybe helpful
 * using an external keyboard
 * loopback midi device

<sect1 id="quick-start">
<title
>Quick Start</title>
 
</sect1>
<sect1 id="internal-details">
<title
>More Internal Details</title>
 
</sect1>

<sect1 id="other-considerations">
<title
>Other Considerations</title>
 
</sect1>
-->

</chapter>