# Handbok &kmidi;

Bernd Johannes Wuebben

    wuebben@kde.org

Greg Lee

    lee@hawaii.edu

Stefan Asserhäll

    stefan.asserhall@comhem.se

Översättare
1999 2000 Greg Lee
2000-12-16
1.03.00

&kmidi; spelar midi-filer med användning av instrumentpatcher. Den gör samma sak med programvara som ett ljudkort som GUS (Gravis UltraSound) eller Sound Blaster AWE gör i maskinvara.

KMidi Midi Spelare Timidity Midi till Wav

## Inledning

&kmidi; spelar midi-filer med användning av instrumentpatcher. Den gör samma sak med programvara som ett ljudkort som GUS (Gravis UltraSound) eller Sound Blaster AWE gör i maskinvara. Därför är den enda utrustning som du behöver ett enkelt ljudkort eller krets. Även om du har ett GUS eller AWE, kanske du vill prova &kmidi; ändå, eftersom den låter rätt bra.

Och den har fördelen att om du vill att den ska låta bättre, kan du bara kavla upp ärmarna och skriva om den, eftersom du förstås får källkoden gratis.

Den behöver dock en del CPU-tid. Jag märker att öppna nya fönster eller ibland bara rulla skärmen orsakar pauser i musiken. Dessutom vill du nog skaffa några instrumentuppsättningar (se nedan). De är för omfattande (10-12 Mibyte) för att följa med den vanliga &kde;-distributionen, så jag har bara tagit med fem patcher som exempel. &kmidi; kan hantera 257 banker med 128 instrument vardera.

&kmidi; är baserat på Tuukka Toivonens underbara program TiMidity, som gör det mesta arbetet. &kmidi; är ett grafiskt gränssnitt för TiMidity, och TiMidity själv, med andra alternativa användargränssnitt, ingår i källkodsdistributionen av &kmidi;. Tack, Tuukka!

&kmidi; stöder följande plattformar för närvarande (version 1.3):

- &Linux;

- FreeBSD

- DEC OSF/1

- &HP-UX;

- SunOS

- Sun &Solaris;

Flyttning till andra plattformar bör vara enkel. Var snäll kontakta mig om du har flyttat &kmidi; till en annan plattform.

För detaljer om användning som inte täcks av den här handboken, se manualsidan för `timidity`.

Kom ihåg att midi-filer är typiskt omkring 50 Kibyte eller mindre och är därför så lätta att ladda ner att du aldrig får slut på bra filer att spela.

Lycka till med &kmidi;!

Bernd Johannes Wuebben wuebben@kde.org

## Användning

### Att komma igång

Om du inte har använd &kmidi; tidigare, ser du namnet på en av midi-exempelfilerna jag inkluderat i det svarta fönstret. Klicka på uppspelningsknappen för att spela den. Flytta omkring muspekaren från knapp till knapp för att få en kort beskrivning med ett verktygstips om vad varje knapp gör när den klickas.

Klicka på KMidi-logotypen överst till vänster för att visa den nedre panelen. Där syns ett svart fönster, kanalvisaren, som visar ett stapeldiagram med toner som spelas på de 16 midi-kanalerna. Till vänster finns en väljare av instrumentuppsättning och en sångväljare. Klicka på sångväljaren för att visa en lista med de övriga midi-exempelfilerna som jag inkluderade i &kmidi;-distributionen. Klicka på en annan, om du vill, för att spela den.

Klicka på Infoknappen för att se information om midi-filen som du spelar och Karaoke-sångtext (om midi-filen har någon).

Klicka på knappen spellista för att leta omkring i filsystemet efter midi-filer och sammanställa en egen lista på filer som ska spelas. Om du inte klickar på filterknappen, visas bara midi-filer (vare sig de har filändelsen `.mid` eller `.kar`). Dubbelklicka på ett filnamn till vänster på skärmen för att lägga till filen i spellistan (som visas till höger).

Bli inte överraskad eller förtretad om en del midi-filer ger lite eller inget ljud. Det finns ett ynkligt litet antal instrumentpatcher med i distributionen av &kmidi;. Ledsen för det. Titta gärna i avsnittet om hur man skaffar instrumentuppsättningar från nätet i det här dokumentet.

### Spellistor

Klicka på knappen mata ut för att öppna spellisthanteraren. Till vänster syns innehållet i katalogen som du sist befann dig i när du redigerade spellistan. Till höger syns den nuvarande spellistan. Välj en midi-fil till vänster för att lägga till den i spellistan genom att dubbelklicka på den. Eller enkelklicka, och välj sedan Lägg till.

De enda filer som visas till vänster är midi-filer. Komprimerade midi-filer känns tyvärr inte igen, så om du har använd till exempel `gzip` för att komprimera filerna, kan du behöva stänga av knappen Filter längst ner. Då blir alla filer synliga. &kmidi; avgör inte om en fil är en midi-fil eller inte genom att titta på namnet, utan istället läser den en liten del av filen för att se om den verkar vara en midi-fil. Därför är det inte nödvändigt att döpa dina midi-filer med filändelsen `.mid`.

Längst ner på skärmen finns de nuvarande spellistorna. När du först startar, finns det bara en, som heter default, med midi-exemplen från &kmidi;s distribution. Innehållet kan ändras genom att enkelklicka på namnet default (om det inte redan är markerat) och sedan välja Arkiv Spara för att byta ut spellistefilens innehåll mot den nuvarande spellistan. Eller välj Arkiv Lägg till för att lägga till innehållet i den nuvarande spellistan sist i spellistans fil. Välj istället Arkiv Spara som... för att skapa en ny spellista, och fyll i det nya namnet du valt i den lilla rutan som dyker upp. Dubbelklicka på en spellistefils namn för att byta ut din nuvarande spellista mot innehållet på den som du har sparat. Det här kan också göras från huvudpanelen genom att enkelklicka på en spellistas namn i rutan Välj spellista.

Ta bort en spellista genom att klicka på namnet, och välj sedan Arkiv Ta bort .

Den vertikala linjen som skiljer kataloglistan från spellistan kan dras från vänster till höger med musen. Den horisontella linjen som avdelar de här två från spellistenamnen kan dras uppåt och neråt.

### Midi-filnamn

Namnen på midi-filer som syns på huvudpanelen kan skilja sig lite grand från de verkliga filnamnen. Av läsbarhetsskäl, byter &kmidi; ut alla _ i midi-filnamnet mot mellanslag, och hugger av filändelsen `.mid`/`.MID` om den finns.

### Anpassa

Genom att klicka på knappen Anpassa i panelen visas en inställningsdialogruta där du kan välja bakgrundsfärg för panelens två fönster och LED-färgen. För närvarande kan inte färgen som används för slaginstrument i kanalmätaren anpassas, den är alltid gul.

### Instrumentuppsättningar

I nedre panelen, längst upp till vänster, finns valet av instrumentuppsättning. Det finns tre uppsättningar med &kmidi;s distribution: piano+gitarr, piano, och gitarr. Det finns ingen riktig anledning att välja uppsättningarna piano eller gitarr, de finns bara med som exempel. När du skaffar flera instrumentuppsättningar, kan du ställa in så att du kan byta mellan dem i panelen. Det här görs på följande sätt:

Skapa en `cfg`-fil för varje instrumentuppsättning som beskriver patcherna och deras bank- och instrumentnummer (midi-program). Skriv sedan in raden `source filnamn` och `if n` på föregående rad, i filen `timidity.cfg`, där filnamn är namnet som du angav för filen som beskriver patcherna, och n är raden som filnamn ska visas i &kmidi;s panel i rutan Välj instrumentuppsättning. Genom att klicka på det här namnet så väljs instrumentuppsättningen. Numreringen av uppsättningarna börjar på 0.

Banker/trummor och namn på patcher måste anges i `cfg`-filer, eftersom de som inte anges inte kommer att laddas från filer (GUS-patchfiler eller ljudteckensnitt) även om patcherna är tillgängliga. På det här sättet är det lätt att utesluta vissa patcher från ett ljudteckensnitt för att ladda bättre från ett senare teckensnitt. Deklarera dem bara inte innan du bett att teckensnittet ska laddas.

När samma patch för samma bank eller trummor anges mer än en gång, räknas bara den första. Ange därför de bästa teckensnitten först.

Det finns ett verktyg `sf2cfg` för att skapa en `cfg`-fil för ett `sbk`/`sf2`-ljudteckensnitt, som ger ifrån sig alla patcher som finns i teckensnittet. Jag har också inkluderat exempel på `cfg`-filer för `chaos8m.sf2` och `chaos12m.sf2`.

### Polyfoni

Hör du pauser i musiken? Det är möjligt att &kmidi; inte hinner med att göra alla de beräkningar som behövs för att justera tonhöjden för instrumentpatcher, filtrera signalen, kombinera toner, och så vidare. Om detta inträffar, kan du kanske förbättra situationen genom att använda nummerinmatningsrutan till höger i den nedre panelen. Den justerar maximala antalet polyfoniska röster som används samtidigt. När du minskar den maximala polyfonin, lättar du bördan för &kmidi; på bekostnad av en del korus eller ekoeffekter, eller att vissa toner huggs av eller utelämnas helt (i vissa fall skapar &kmidi; extra toner för att åstadkomma köreffekter och eko).

### Ljudeffekter

Ljudeffekter ändrar ljudet på olika sätt, som jag inte alltid har helt klart för mig. Det finns fyra sätt ljudeffekter kan begäras, och två sätt som de kan styras.

En midi-sång kan ange en ljudeffekt för alla instrument som spelar på vilken som helst av de 16 midi-kanalerna. Eller så kan den ange flera effekter för flera kanaler. När du trycker in panelens knapp eff, filtreras signalen för att åstadkomma midi-effekterna: korus, eko, celeste och phaser. Men det blir inga effekter om inte sången i midi-filen begär det. Två av standardeffekterna, harmoni och klarhet, är ännu inte implementerade med filter (Filtren kodades av Nicolas Witczak).

Om du inte trycker in knappen eff, får du fortfarande några korus- och ekoeffekter på kanaler där det begärs, men det åstadkoms på ett annat sätt. Istället för att använda filter, skapas nu extra toner. De är något ostämda för koruseffekten, och något fördröjda för eko. Några justeringar till tonenveloppen och vibratot görs också. Med eff avstängd, fås inga kanaler med celeste eller phasereffekter.

Ett annat sätt som ljudeffekter kan begäras är via en patch. Det vill säga att en instrumentpatch kan innehålla förslag på korus- och/eller ekonivå. AWE patcher anger i allmänhet effekter, medan Gravis-Forte patcher inte gör det (detta är orsaken till att AWE instrumentuppsättningar har en tendens att låta lite fylliga). Ljudeffekter som begärs på det här sättet skapas med metoden med extra toner, och påverkas inte av knappen eff.

Som tredje metod, kan du begära effekter. Observera de fyra kryssrutorna till höger i panelen. Var och en av dem har tre tillstånd: normal (förvalt), extra, och av. De två kryssrutorna i mitten styr korus och eko. Om de ställs in till normal, hanteras ljudeffekter som beskrivits ovan. När de ställs in till extra, skapas extra toner för korus eller eko för alla instrument och alla kanaler, oavsett de effektfilter som begärs genom att klicka på eff. När de ställs in till av, skapas inga extra korus- eller ekotoner.

Till sist, kan effekter begäras av ett systemspecifikt midi-meddelande i en midi-fil, en så kallad sysex. Detta är avsett för att för att styra maskinvaran för en speciell synthesizer. &kmidi; avkodar i viss utsträckning olika sysex för Roland GS och Yamaha XG syntar och gör sitt bästa för att ändra ljudet i enlighet med dem. Korus, eko och variationer av de här görs med metoden med extra toner och kan stängas av med kryssrutorna som just nämnts. Om celestevariation av koruseffekten begärs av en XG sysex, så används dock Witczaks celestefilter, under förutsättning att knappen eff är intryckt.

### Kommandoradsväljare

Förutom att ange namnen på en eller flera midi-filer på kommandoraden, är nog inte innehållet i det här avsnittet särskilt användbart att känna till. Om du behöver de här väljarna, föredrar du nog att använda kommandoradversionen av det här programmet: timidity.

`kmidi` `options` filnamn

Använd "-" som filnamn för att läsa en midi-fil från `standardinmatningen`.

Väljare:

`-o` filnamn

  Skicka utmatning till filnamnet, som kan vara en fil, enhet eller HP-UX ljudserver, beroende på utmatningsläget som anges med väljaren `-O`. Det speciella filnamnet ``-'' gör att utmatningen skickas till `standardutmatningen`.

`-O` läge

  Väljer utmatningsläget bland de alternativ som har tagits med vid kompileringen. Läget måste börja med en av identifierarna för utmatningslägen som stöds. Kör TiMidity med väljaren `-h` för att visa en lista.

`-s` frek

  Ställ in samplingsfrekvensen till frek (Hz eller kHz). Alla ljudenheter klarar inte av alla frekvenser, en ungefärlig frekvens kan väljas, beroende på implementeringen.

`-a`

  Aktivera utjämningsfiltret. Samplingar körs genom ett lågpassfilter innan de spelas, som minskar störningar vid låga omsamplingsfrekvenser.

`-f`

  Aktivera läget för snabb avklingning. Växlar snabba envelopper. Vissa midi-filer låter bättre när toner avklingar långsammare, det ger ett intryck av efterklang.

`-p` n

  Ställer in polyfoni (maximalt antal samtidiga röster).

`-A` n

  Förstärk volymen med n procent (kan orsaka klippning)

`-C` n

  Ställer in förhållandet mellan samplings- och styrfrekvenser. Det här avgör hur ofta envelopper beräknas om, små förhållanden ger bättre kvalitet men använder mer CPU-tid.

`-E`

  Aktiverar Witczaks effektfiler för körljud, ekoeffekter, fasning och celeste.

`-#` n

  Välj instrumentuppsättning

`-L` kat

  Lägg till katalog till sökvägen

`-c` fil

  Läs extra anpassningsfil

`-I` n

  Använd program n som standardvärde

`-P` fil

  Använd patchen fil för alla program

`-D` n

  Spela trummor på kanal n

`-Q` n

  Ignorera kanal n

`-F`

  Aktivera snabbpanorering

`-U`

  Tag bort instrument från minnet mellan midi-filer

`-i` läge

  Välj användargränssnitt (se nedan för en lista)

`-B` n

  Ange antal buffertfragment.

`-h`

  Visa hjälpmeddelandet

Tillgängliga utmatningslägen (`-0`)

`-O` d

  &Linux; `dsp`-enhet

`-O` w

  RIFF WAVE-fil

`-O` r

  obehandlad vågformsdata

Val av utmatningsformat (lägg till för `-O`)

`8'

  8-bitars samplingsbredd

`1'

  16-bitars samplingsbredd

`U'

  kodning med uLaw

`l'

  linjär kodning

`M'

  mono

`S'

  stereo

`s'

  utmatning med tecken

`u'

  utmatning utan tecken

`x'

  utmatning med växlade byte

Tillgängliga gränssnitt (lägg till för `-i`)

q

  &kmidi; &Qt;-gränssnitt

d

  enkelt gränssnitt

Gränssnittsalternativ (lägg till för `-i`? väljaren)

`v'

  fler utskrifter (samlas på)

`q'

  mindre utskrifter (samlas på)

`t'

  spåra uppspelning

-i

  välj användargränssnitt (se nedan för en lista)

## Vanliga frågor

Var skaffar jag en fullständigt instrumentuppsättning?

Var god se motsvarande avsnitt i &kmidi;s installationskapitel.

## Konstruktion

### Processer

&kmidi; är användargränssnittet som hanterar skärmvisningen och knapptryckningar, etc. Det kör som en separat process från &timidity;, som läser och spelar midi-filer.

### Syntesmodell

&timidity; har en tongenerator, två enveloppgeneratorer, tre lågfrekventa sinusvågsoscillatorer, ett lågpassfilter, och en ljudeffektenhet. (Lågpassfiltret används bara om &kmidi;s fjärde interpolationsläge väljs och knappen filt är intryckt, för närvarande fungerar det inte bra).

Tongeneratorn samplar om instrumentpatcher för grundfrekvenserna som är lämpliga för enskilda toner som spelas (Interpolationsalgoritmen som används kan väljas med de fyra kryssrutorna i den övre panelen).

Enveloppgeneratorerna modulerar varje ton med i tur och ordning: en attackfas, en hållfas, en avklingning och en släppfas. En av generatorerna påverkar ljudstyrkan, och de andra påverkar tonhöjden och/eller klippningsfrekvensen på lågpassfiltret.

Lågfrekvensoscillatorerna modulerar ljudstyrkan (för tremolo), frekvensen (för vibrato), och lågpassfiltrets klippningsfrekvens (XG rezosvep).

Effektenheten tillhandahåller eko, ostämda toner, efterklang, koruseffekt, celeste och phasereffekt. Eko (som görs genom att skapa extra ekotoner) och efterklang (som görs med ett filter) skapar midi-ekoeffekter. Ostämda toner (som görs genom att skapa extra toner med ändrad tonhöjd) och koruseffekt (som görs med ett filter) skapar midi-korus (Effektfilter är bara aktiverade när &kmidi;s knapp eff är intryckt. Eko och ostämt kan styras med de två kryssrutorna i mitten till höger i den nedre panelen, och från menyerna Korus och Ekoeffekter).

Instrument kan ha antingen ett eller två tonelement, och för vart och ett av dessa, kan en instrumentuppsättning tillhandahålla separata patcher för olika tonstyrkeområden (vanligt för pianon) och för olika tonhöjdsområden. GUS instrumentuppsättningar tillhandahåller dock bara ett tonelement, och ett styrkeområde per instrument (Om du klickar på kryssrutan längst till höger i den nedre panelen, visar &kmidi;s informationsfönster namnen på patcherna, `(2)` om de har två tonelement, och tonstyrkeområdet när de laddas).

### Midi-implementering

Nästan alla midi-meddelanden och styrenheter som jag känner till är implementerade på något sätt (vilket betyder att de gör att något händer, men inte nödvändigtvis det som ska hända). NRPN-styrenheter för att ange attack- och avklingningstid är inte implementerade, eftersom jag ännu inte har hittat några midi-filer som använder dem. Flänsstyrenheten är inte implementerad (även om flänsning som begärs av en XG sysex är det). Bara ett fåtal av de maskinvaruorienterade styrenheterna i Roland- och Yamahaspecifika dumpar är implementerade.

&timidity; kan hantera midi-filer som är avsedda att spelas på upp till fyra syntar, och hålla isär de fyra uppsättningarna med 16 kanaler för varje synt. I midi-filen måste syntarna dock väljas med portkommandon (antingen med Roland-GS eller Yamaha-XG sysex dumpar). Vissa midi-filer som är avsedda för flera syntar har inte portkommandon (Info-fönstret visar portkommandon om de finns).

De vertikala staplarna i &kmidi; som visar kanalaktivitet är begränsad till två uppsättningar med 16 kanaler. Kanaldiagrammet med horisontella staplar för patcher är begränsad till bara en uppsättning med 16 kanaler.

### Volym

Jag har minskat volymnivåerna som &timidity; skapar en hel del, jämfört med den ursprungliga implementeringen. Det här minimera klippning och ger ett ökat dynamiskt omfång (Nu kan det tyvärr finnas vissa störningar vid låga volymer). Om du behöver högre volym, föreslår jag att du ökar den någon annanstans, antingen med &kmix; för att öka linjevolymen, mixervolymen för `/dev/dsp`, eller öka volymen i hörlurar, förstärkta högtalare, eller något annat.

### Beräkningshänsyn

&timidity; kan bli efter med att beräkna data att skicka till ljuddrivrutinen, och då uppstår pauser i musiken. &timidity; försöker förutse möjligheten för en paus genom att övervaka tillståndet för sina utmatningsbuffrar och buffrarna i ljuddrivrutinen, och när det inte finns mycket i dem försöker den komma ifatt genom att minimera beräkningarna som måste göras: den använder en grövre interpolationsrutin i återsamplingen, slutar göra extra eko- och ostämda toner för eko- och koruseffekter, och börjar avsluta toner tidigare, eller hoppar till och med över toner helt och hållet. Därför, beroende på midi-sång, instrumentuppsättning, hur snabbt systemet är, även om du inte hör pauser, kan du märka en kvalitetsförlust när &timidity; belastas mer. Lamporna i &kmidi;s huvudpanel ger en bild av hur desperat &timidity; har blivit i sina försök att hålla musiken igång. Tecken på desperation: bufferlampan går från hälsosamt grön till upptaget orange, interpolationslampan släcks (vilket betyder att linjär interpolation används för återsampling), ekolampan släcks, eller körlampan släcks (vilket betyder att inga extra eko eller ostämda toner spelas).

Att övervaka utmatningsbuffrarna innebär att ljuddrivrutinen måste anropas för att ta reda på hur mycket data som har buffrats. Jag vet hur detta görs med Hannu Savolainens OSS-drivrutin (&Linux; och vissa andra system), kanske för äldre Sun-maskiner (det fungerade förut), men inte med andra drivrutiner.

Man kan minska beräkningsbördan för &timidity; med olika manövrar:

1. Reducera den tillåtna polyfonin (nummerinmatningsrutan i den nedre panelen).

2. Stänga av knappen eff.

3. Välja enklare återsamplingsinterpolation (en av kryssrutorna på den övre panelen, längs till vänster).

4. Stänga av eko, ostämt, eller stereo, med de vänstra tre kryssrutorna på den nedre panelen.

5. Välja inställningen Torr på menyn Ekoeffekter.

Naturligtvis blir det i allmänhet någon motsvarande kvalitetsförlust. Att ha knappen filt intryckt kostar ingenting om du inte också har valt interpolationsinställningen cspline + filter.

### Minneshänsyn

Det är möjligt att &timidity; kan använda en överdrivet stor mängd minne för patcher. Symptom på detta är att fönstersystemet blir mycket slött, eller kraschar. Det här är troligen bara ett problem om stora sf2 ljudteckensnitt med mer än 30 Mibyte används. Pianopatcherna i Personal Choice's PC400 ljudteckensnitt kan till exempel uppta 25 Mibyte vardera. Efter att ha spelat en lista med midi-filer som använder tre sådana pianon, så har 75 Mibyte minne används bara så där. I inställningsdialogrutan låter &kmidi; dig ange det maximala antalet Mibyte som används för att behålla patcher som använts för att spela tidigare midi-filer. När detta maximum överskrids, frigör &timidity; de patcher som inte har används på längst tid, och återger minne till systemet. Det förvalda maximala värdet är 60 Mibyte, som fungerar bra på mitt system (Jag har 48 Mibyte minne och 196 Mibyte cache). Att ställa in det här till ett lägre värde betyder att fler patcher måste laddas om från patchfiler när du spelar en lista med midi-sånger, som gör allt långsammare. Om du har gott om minne, kan du ställa in no limit.

Om du tillåter tillräckligt med utrymme, läses hela ljudteckensnitt på en gång, istället för en patch i taget. Att ställa in det maximala värdet för lågt kan motverka sitt eget syfte, eftersom en hel ljudteckensnittsfil upptar mycket mindre minne totalt sett när hela filen läses, än när patcher läses individuellt (jag vet inte varför).

För system med minst signifikant byte först, som x86, så används minnesmappning istället. Det här är mycket snabbare vid uppstart. Jag har inte kommit på ett sätt att göra detta för system med mest signifikant byte först.

Efter att ha spelat varje midi-fil, rapporterar &kmidi; om hur mycket minne som för närvarande används av patcher i info-fönstret.

Om du inte har mycket huvudminne eller cacheminne, kanske inte ett lågt maximalt värde för patchminnet förhindrar att &kmidi; kraschar systemet. Var därför försiktig med att använda stora ljudteckensnitt.

## Licenser och tack till

&kmidi; använder Tuukka Toivonen's &timidity; 0.2i ljudmotor Copyright (C) 1995 Tuukka Toivonen toivonen@clinet.fi. I själva verket ingår en utökad version av Tuukkas originalprogram med fem andra alternativa användargränssnitt i &kmidi;s distribution (Se nedan för information om hur &timidity; kompileras).

&kmidi; och &timidity; använder utökningen för AWE ljudteckensnitt gjord av Takashi Iwai iwai@dragon.mm.t.u-tokyo.ac.jp och utökningen för AMD-InterWave gjord av Greg Lee lee@hawaii.edu som gör att ljudteckensnitt (`.sbk`/`.sf2`-filer) och IW instrumentuppsättningar (`.fff`/`.dat`-filer) kan användas förutom Gravis/Forte `.pat`-filer.

## Copyright

&kmidi; Copyright 1997 Bernd Johannes Wuebben wuebben@kde.org

&kmidi; använder Tuukka Toivonen's &timidity; 0.2i spelmotor, Copyright © 1995 Tukka Toivonen toivonen@clinet.fi.

&underFDL; &underGPL;

## Installation

### Hur man skaffar &kmidi;

&kmidi; är en del av &kde;-projektet http://www.kde.org. &kmidi; finns på ftp://ftp.kde.org/pub/kde/, &kde;-projektets huvudsakliga &FTP;-plats.

### Krav

För att kompilera &kmidi; med lyckat resultat, behöver du lämpliga versioner av programbiblioteken i `kdelibs`. Alla bibliotek som krävs samt &kmidi; själv finns på ftp://ftp.kde.org/pub/kde.

Alla standardtyper av &UNIX;-system ska fungera för att kompilera det enkla kommandoradgränssnittet för &timidity;. De övriga gränssnitten har särskilda krav (se de olika `README`-filerna i distributionen). &Motif;-gränssnittet fungerar förhållandevis bra med Lesstif, men bättre med &Motif;.

### Kompilering och installation

Om du har installerat &kmidi; tidigare, är det förnuftigt att flytta konfigurationskatalogen (troligen `$`KDEDIR`/share/apps/kmidi/config/`) innan den nya versionen installeras, eftersom filerna som ska finnas där har ändrats, och du säkert vill använda eller åtminstone titta på de nya versionerna. På samma sätt, innan versionen av &timidity; som inte stöder &kde; installeras, säkerhetskopiera `/usr/local/lib/timidity/`. Å andra sidan, för en fullständigt ny installation ska du ta bort alla filer i de här två katalogerna, eftersom de gamla filerna kanske inte ersätts av nya versioner.

Om du har hela kdemultimedia-distributionen, byt katalog till katalogen kdemultimedia och skriv

    %./configure

Som ett alternativ, för att inkludera alla andra användargränssnitt:

    %./configure
    --enable-interface=ncurses,xaw,gtk,tcltk,slang,motif

Därefter, för att bygga alla multimediaprogram, stanna kvar i katalogen, eller för att bara bygga &kmidi;, `cd` till katalogen `kmidi`, och skriv

    % make
    % make install

Versionen av &timidity; som inte stöder &kde;, `timidity`, kompileras och installeras samtidigt som &kmidi;. Manualsidan `timidity.1` installeras dock inte automatiskt i `/usr/man/man1/`.

### Var kan man skaffa en fullständig uppsättning patcher?

Det finns två sorters patcher som &kmidi;/&timidity; kan använda: GUS-patcher och AWE32 ljudteckensnitt (`sf2`-filer). En uppsättning samplingar och parametrar för ett enstaka instrument, en patch, finns i en separat fil för GUS-patcher, men AWE ljudteckensnitt lägger allt i en enda `.sf2`-fil (eller `.sbk`).

Jag rekommenderar `.sf2` ljudteckensnitt, och bland dessa, Chaos-teckensnitten som nämns nedan, i turordning.

Öppna &kmidi;s inställningsdialogruta för att se länkar till några webbsidor med instrumentuppsättningar. Här är några andra ställen att skaffa patcher:

Dan Hollis goemon@anime.net har sammanställt en instrumentuppsättning. Besök gärna hans sida på http://www.anime.net/~goemon/timidity och hjälp honom göra den här till den bästa tillgängliga uppsättningen.

Nyhet: Jag har laddat upp den ovanstående uppsättningen till ftp.kde.org. Den finns för närvarande på ftp://fiwi02.wiwi.uni-tuebingen.de/pub/kde/stable/ Beta2/apps/multimedia/sound/, men jag förväntar mig att vi flyttar omkring den lite grand tills vi hittar en bra plats för den. Så leta bara runt lite grand på ftp.kde.org, om uppsättningen inte lägre finns på platsen som anges ovan, när du väl läser det här.

Patcher finns också paketerade som deb- eller rpm-moduler på Sunsite-arkivet:

- Debian: timidity-patches_0.1.tar.gz

- RPM: timidity-patches-1-1.i386.rpm

- RPM: timidity-patches-1-1.src.rpm-try2

Jag har inte (ännu) provat de ovanstående, och använder personligen Midia-uppsättningen tillsammans med några ytterligare patcher och ett antal ytterligare trummor. Midia-uppsättningen finns på: ftp://archive.cs.umbc.edu/pub/midia/.

För ytterligare patcher och trummor: (skaffa gsdrum- och wow-patcherna) ftp://ftp/cdrom.com/pub/gus/sound/patches/files/.

Vincent Pagel har sammanställt en uppsättning med patcher. Den här länken kan bara nås nattetid (Paris). ftp://sig.enst.fr/pub/midi/instruments/. Konfigurationsfilen som hör ihop med hans instrumentuppsättning finns här.

Titta också på Timiditys hemsida.

Titta på Takashis hemsida. Takashis hemsida rekommenderar AWE32 ljudteckensnittet på 8 Mibyte `chaos8m.sf2` och AWE32 ljudteckensnittet på 12 Mibyte `chaos12m.sf2`, tillgängliga på , som är mycket trevliga (de är paketerade som självuppackande `.exe`-filer).

#### Installera instrumentuppsättningar

Vissa av de ovanstående instrumentuppsättningarna levereras med en `.cfg`-konfigurationsfil som liknar de .cfg-filer som levereras med KMidi och finns i `KDEDIR/share/apps/kmidi/config`. &kmidi; har färdiga konfigurationsfiler för ett antal vanliga instrumentuppsättningar, som Midia-uppsättningen. För `.sf2` ljudteckensnitt, tillhandahålls ett verktyg, `sf2cfg`, som skapar en `.cfg`-fil från ett `.sf2`-teckensnitt. Det kompileras samtidigt som &timidity;.

Det är inte nödvändigt att ge `.cfg`-filer namn med filändelsen `.cfg`. De är vanliga textfiler med en struktur som beskrivs i ett annat avsnitt i den här handboken.

För att avsluta installationen av en fullständig instrumentuppsättning, redigera filen `timidity.cfg` och ange lämpliga konfigurationsfiler för uppsättningarna som laddades ner. Titta i `timidity.cfg` för ett exempel. Det är allt. Nu kan du fortsätta och spela övriga midi-filer som finns med i &kmidi;-distributionen (och förstås alla andra också).

#### Diverse

Ibland märker du att &kmidi; inte kan hitta en patch för ett visst instrument (öppna info-fönstret för att se den här informationen). Om så är fallet, är allt du behöver göra att skaffa den saknade patchen och installera den genom att flytta patchen till katalogen patch/ och redigera instrumentuppsättningen i `.cfg`-filen för att tala om för &kmidi; att nu är den nya patchen tillgänglig.

Ibland låter ett visst instrument inte alls särskilt bra. Om så är fallet, skaffa helt enkelt en annan patch från någon av Ultrasound-arkiven och byt ut den mindre bra patchen mot en bättre. Som du förstår, är det helt din egen sak hur bra varje instrument låter. Du kan till och med göra dina egna patcher med verktyget `pat2wav`, som ingår i &kmidi;-distributionen.