
 * * * * * * * * * *  P A T C H W O R K   Vers. 1.13  * * * * * * * * * * *

  PATCHWORK kan danne syntetiske 16bit-patches til Gravis Ultrasound.
  Man kan generere trekant-, savtak-, firkant- og pulsmodulation samt
  afledninger af disse (potensoplfting og asymmetri). Endvidere er det
  muligt at danne lyde, der er summen af grundtonen (sinus) og et antal
  givne overtoner (op til 20) i forskelligt niveau, forskydning og med
  mulighed for potensoplftning samt "hvidstj".

  PATCHWORK tegner den dannede lyds kurveform p skrmen. Man kan herefter
  anvende "Patch Maker" (flger med GUS) til redigering af den dannede lyd
  (vibrato, tremolo, attack, release m.m.). Herved kan opns syntetiske, men
  spndende instrumenter.

  PATCHWORK er FREEWARE, dvs. du er velkommen til at benytte det gratis
  samt at distribuere det til andre i undret form. Det samme glder natur-
  ligvis de dannede "patches".

  Ved indtastning af filnavn p den "patch", der nskes dannet eller vist,
  udelades extension ".pat". Hvis intet navn indtastes, bliver lydkarak-
  teristik blot vist, men der blive ikke dannet en fil. For at returnere
  til PATCHWORK's hovedmenu, tastes "*" i filnavn. (Bemrk at PATCHWORK
  ogs kan lse 8-bit patches, men altid skriver 16-bit patches).

  PATCHWORK kan kaldes med op til 20 parametre, der indstiller flgende:

  Parameter Betydning
  ------------------------------------------------------------------------
      1     Lngde af patch (normalt 935 bytes). Standardvrdien (svarende
            til de 935 bytes) er 1 og skal indtastes, hvis man vil bruge
            parametre efter denne. Hvis man laver komplicerede lyde med
            mange overtoner (sinusmodulation) som ikke er hele overtoner
            (heltal) af grundtonen, vil det vre ndvendigt at gre denne
            parameter strre, for at undg "klik" i lyden. Hvis lngde
            sttes til nul, dannes den kortest mulige "patch" (735 bytes).
     2-4    Hhv. vibrato rate, delay, speed
     5-7    Hhv. tremolo rate, delay, speed
     8-19   Diverse parametre : attack, decay, sustain, release
     20     Balance (stereo). Br sttes til 7 (=standardvrdi).

  1. Trekant-, savtak-, firkant- og pulsmodulation m.m.
  -----------------------------------------------------

  Symmetri bestemmer "forholdet" mellem trekant- og savtakmodulation. Denne
  kan variere fra 0 til 100, hvor 50 er ren trekant og 0 eller 100 er ren
  savtak med hhv. hurtigt faldende eller hurtigt stigende takker. Dvs. 10
  er mere savtak end trekant, mens 40 er mere trekant end savtak.
  (Standardvrdien er 50).

  Hvis potens er forskellig fra 1 (standardvrdien), vil lyddata blive
  oplftet til den givne potens. Hvis potens er strre end 1 vil trekant-
  modulation blive mere spids, mens lydens udseende bliver mere afrundet
  ved potens mindre end 1. Hvis potens sttes lig nul, dannes en firkant-
  modulation ved symmetrien 50. Jo mere symmetriparameteren afviger fra 50,
  jo mere pulsmodulation bliver der i lyden.

  Hvis man indtaster to symmetrivrdier adskilt af mellemrum, vil der dannes
  to perioder med hver sin symmetri. Tilsvarende kan to potensvrdier
  indtastes.

  Hvis man fr "symmetri" taster tegnet "<", "=" eller ">" vil perioden
  blive forskudt hhv. 1/4, 1/2 eller 3/4 periode, hvilket dog kun har
  betydning, sfremt man nsker at mikse den dannede lyd med fx sin egen
  overtone. (Se "Brugerdefinerbar patch").

  Hvis man indtaster "-" foran symmetri, ndres lngde af de enkelte
  lydbestanddele i forhold til hinanden.

  Dersom man fr "potens" taster "<" eller ">", fjernes dele af lydkurven,
  mens "=" gr alle lyddata positive, og "-" fjerner negative vrdier i
  lyddata.


  2. Sinusmodulation med overtoner
  --------------------------------
  PATCHWORK sprger efter "Overtone", "Vgtning", "Forskydning" og "Potens".

  Op til tyve overtoner kan vlges i PATCHWORK. Grundfrekvensen er 1, den
  dobbelte overtone 2 etc. Overtoner kan naturligvis ogs vre decimaltal.

  Vgtning er, hvor stor betydning den givne overtone har for den akkumu-
  lerede lydform. Vgtning kan i princippet antage alle vrdier, men for
  en god ordens skyld, vil det vre fornuftigt, at lade grundtonen have
  vgtningen 1 og overtonerne vgtninger mindre end 1. Bemrk: Vgtningen
  kan ogs vre negativ, hvorved overtonen vil blive subtraheret fra det
  samlede lydindtryk. Den sidste overtone (som naturligvis kan vre mindre
  end de forrige) kan multipliceres i stedet for at blive adderet til de
  forrige, sfremt man indtaster 0 eller * som vgtning.

  Forskydning er, p hvilket tidspunkt sinusfunktionen skal starte, i
  lyden. Man br vlge vrdier mellem 0 og 100, da vrdier uden for dette
  interval vil blive konverteret inden for dette.

  Potens er ogs her mulig. Herved kan sinuskurven gres mere skarp
  (potens strre end 1) eller "bld" (potens mindre end 1).

  Hvis man anvender overtoner, der ikke er heltal, vil det for at f en
  "ren" lyd vre ndvendigt at anvende en stor lngde-parameter (fx. 50,
  hvilket svarer til en "patch"-lngde p ca. 20 kbyte).

  Hvis man taster ">" fr overtone, omdannes de negative vrdier i lyden
  til de tilsvarende positive. Dersom "<" tastes, sttes positive vrdier
  til nul.

  Hvis man taster "=" fr overtone, vil kun den "opadgende" del af sinus-
  kurven blive dannet.

  Det er muligt at indtaste to potenser adskilt med et mellemrum.

  Hvis potenserne indtastes uden fortegn, vil der dannes 1/2 periode med
  hver potens. Hvis frste potens er negativ og anden positiv, dannes
  1/4 periode og hvis frste potens er positiv og anden negativ, dannes
  1 periode med hver potens.

  Hvis to negative potenser indtastes, dobbeltmoduleres lyden med den frste
  potens, og resultatet oplftes til absolutvrdien af den anden indtastede
  potens. Hvis blot n negativ potens indtastes, foretages kun dobbelt-
  modulation uden potensoplftning.

  4. Brugerdefinrbar "patch"
  ---------------------------
  En tidligere dannet "patch" kan hentes og redigeres ned til mindste
  detalje. Det er muligt at sammensmelte to "patches" og definere forholdet
  mellem dem.

  Dette gres ved at indtaste de to filnavne (ved "fil - ind") eventuelt
  efterfulgt af faktor (1-100), som definerer, hvor stor betydning fil#2
  skal have. (Standard er 50, dvs. lige stor indflydelse for filerne).
  Det er muligt at indtaste en negativ vrdi (-100 -> -1), hvilket vil med-
  fre, at lyddata fra fil#2 bliver subtraheret fil#1 i stedet for adderet.

  Hvis man i stedet for faktor taster "+", vil fil#2 lgges efter fil#1.
  Lngden af "patch" vil da blive summen af de to filers perioder.

  Dersom man i stedet for faktor taster ">", vil lyddata for de to lydfiler
  blive multipliceret, s de populrt sagt er hinandens lydstyrker.

  Hvis man taster "<", vil lyddata ogs multipliceres, omend lyddata fra
  fil#2 altid vil blive betragtet som postive vrdier.

  Hvis man i stedet for fil#2 taster "-", vil fil#1 blive anvendt som fil#2.

  4. Brugerdefinrbar "patch" (fortsat)
  -------------------------------------

  Sfremt faktor er et tal (1-100) eller ">" eller "<", vil lngden af
  patch altid sttes til lngden for den korteste af de indtastede patches.
  (Normalt er det en god id at blande patches af samme lngde, hvorved klik
  i lyden kan undgs). Den blandede "patch" vil have samme indstillingspara-
  metre (ADSR, vibrato, tremolo) samt begyndelsessted i perioden som fil#2.

  Hvis faktor sttes til "+", vil lngden af "patch" blive summen af de to
  filers perioder. Ligeledes vil indstillingsparametrene for den dannede
  "patch" tilsvare dem for fil#2, hvilket ogs glder for periodens begyn-
  delsessted.

  Faktor kan ydermere efterflges af en vrdi for overtone. Herved kan fx
  en given "patch" sammensmeltes med sin egen overtone (eller en anden lyds
  overtone). Overtone er sdvanligvis 1.

  Eksempel:   sp1 sp2 30 2

  "sp1.pat" adderes til anden overtone af "sp2.pat" i forholdet 70/30.

4. Brugerdefinrbar "patch" (fortsat)
-------------------------------------
filnavn#1  filnavn#2  *tal (0-100) :
I begyndelsen og slutningen af en patch, udgr filnavn#1 tal% or filnavn#2
(100-tal)% . I midten er det omvendt. For eksempel: sinus trekant *20

filnavn#1  filnavn#2  /tal (0-100) :
I begyndelse af en patch, udgr filnavn#1 tal% og filnavn#2 (100-tal)% .
I slutningen er det omvendt. For eksemple: sinus trekant /20

filnavn#1  filenavn#2  **tal (0-100) :
I begyndelsen og slutningen af en patch, udgr filnavn#1 (tal/(100+tal)) og
i midten er det omvendt. For eksempel : sinus trekant **20

filnavn#1  filnavn#2  //tal (0-100) :
I begyndelsen af en patch, udgr filnavn#1 (tal/100+tal)) og
filnavn#2 (100/(100+tal)).
I slutningen er det omvendt. For eksempel: sinus trekant //20

4. Brugerdefinrbar "patch" (fortsat)
-------------------------------------
filnavn#1  filnavn#2  ***number (0-100) :
I begyndelsen og slutningen af en patch, udgr filnavn#1 (100/(100+tal)) og
filnavn#2 (tal/(100+tal)).
I midten er det omvendt. For eksempel: sinus trekant ***20

filnavn#1  filnavn#2  ///number (0-100) : 
I begyndelse af en patch, udgr filnavn#1 (100/(100+tal)) og filnavn#2 
(tal/(100+tal)).
I midten er det omvendt. For eksempel: sinus trekant ///20

filnavn#1  filnavn#2  -
"Forskellen" mellem de to patches skaber den nye patch.

filnavn#1  filnavn#2  ++
Frste halvdel af den nye patch er filnavn#1, anden halvdel filnavn#2.

Hvis "filnavn ind" blot er . (punktum), dannes en "ren" patch (niveau=0),
med den normale patch-lngde. Hvis filnavn er . (punktum) efterfulgt af et
tal, laves en "ren" patch, hvor lngden er lig det indtastede tal.

  4. Brugerdefinrbar "patch" (fortsat)
  -------------------------------------
  Kommandoer:
  Pil venstre/hjre : Bevg liniemarkren til venstre/hjre.
  CTRL pil ven/hj  : Liniemarkr yderst til venstre/hjre.
  Pil op/ned        : Bevg kurvedel, markren str p, op eller ned.
  CTRL pil op/ned   : Niveaupil verst/nederst i billede.
  Home/End          : Hhv. frste og sidste side i "patch".
  PgUp/PgDn         : Hhv. frem- og tilbagebladring i "patch".
  CTRL PgUp/PgDn    : Hhv. st niveaupil eller liniemarkr i midten.
  Ins/Del           : Bevg effekt-markr op/ned.
  Alt+Home          : Niveau (y) op med 1/10 af hastigheden (finjustering).
  Alt+End           : Niveau (y) ned med 1/10 af hastigheden.
  F1-F10            : Diverse effekter, der fx gr lyddata rundere eller
                      skarpere, afskrer eller tilfjer spidser. Alle
                      effekter er niveauafhngige og giver forskellige
                      resultater alt efter om niveau er positivt eller
                      negativt.
  F11/SHIFT F11     : Negative vrdier gres positive (SHIFT=omvendt).
  F12/SHIFT F12     : Negative vrdier skres bort (SHIFT=positive).
  TAB               : Tilfjer en frekvensafhngig vibrato.
  CTRL+TAB          : St niveau for den markerede del af patchen til dette.

  Kommandoer (fortsat):
  SHIFT F1          : "Patch" forskydes i tid (fra liniemarkrs position).
  SHIFT F2          : "Patch" forskydes i niveau (fra niveaupils position).
  SHIFT F3          : "Patch" vendes "p hovedet" (kun markeret omrde).
  SHIFT F4          : "Patch" vendes baglns (kun markeret omrde).
  SHIFT F5          : Ombyt markeret omrde med omrde fra liniemarkr.
  SHIFT F6          : Slet markeret omrde.
  SHIFT F7          : Kopir markeret omrde til liniemarkrs position.
  SHIFT F8          : Flyt markeret omrde til liniemarkrs position.
  SHIFT F9          : Marker begyndelse.
  SHIFT F10         : Marker slut.
  CTRL F1/F2        : g/formindsk liniemarkrs hastighed.
  CTRL F3/F4        : g/formindsk hastighed af kurvebevgelse (pil op/ned).
  CTRL F5/F6        : g/formindsk hastighed for niveaupilen.
  CTRL F7/F8        : g/formindsk bredde for kurvebevgelse.
  CTRL F9           : Vis parametre (ADSR, vibrato og tremolo) for "patch".
  CTRL F10          : Hvis niveau er positivt : St lydstyrke for "patch".
                      Hvis nul eller negativt : Maximer lydstyrke (stretch).
  CTRL F11          : Hvis niveau er positivt : Tremolo p patch (ned-op-ned).
                      Hvis niveau er negativt : Tremolo p patch (op-ned-op).
  CTRL F12          : Hvis niveau er positivt : Lydstyrke faldende.
                      Hvis niveau er negativt : Lydstyrke stigende.

  Kommandoer (fortsat):
  ESC               : Gem dannet patch og returnr til hovedmenu.
  Enter             : St begyndelse af periode i "patch" til liniemarkr.
  CTRL Enter        : St slutning af periode i "patch" til liniemarkr.
  .                 : St punkt i lyddata til det givne niveau.
  -                 : Tegn linie fra forrige punkt eller linieslut.
  _ (understreg)    : Vlg potens (0=lige linie  <>0=kurve) via niveau (y).
  :                 : St potens til nul (lige linie).
  Mellemrumstangent : Fortryd. (Virker ikke ved kopir, flyt, slet og ombyt).
  ALT F1-F6         : Samme funktion som hhv. F11, F12, SHIFT F11, SHIFT F12,
                      CTRL F11 og CTRL F12 (aht. tastaturer uden F11/F12).
  ALT F7            : Skifter mellem om editeret "patch" skal beholde sine
                      egne lydkarakteristika (ADSR, vibrato og tremolo) eller
                      om disse skal udskiftes med de, i PATCHWORK, givne.
  ALT F8            : Stter markeret omrde til niveau givet ved niveaupil.
  ALT F9            : Skifter mellem de tre mulige kurvefremvisninger.
  ALT F10           : Skifter baggrundsfarve.
  ALT F11           : Skifter forgrundsfarve (markeret).
  ALT F12           : Skifter forgrundsfarve (umarkeret).
  ALT Ins/Del       : Duplikerer Ins/Del, da Ins ikke repeterer p alle pc'er.

  3. Hvid stj
  ------------
  Danner tilfldige lydsekvenser. (En lngde p mindst 20 br vlges).

  5. Spil skala med sidst dannet "patch"
  --------------------------------------
  Via "Playmidi" afspilles en demomelodi med den sidst dannede "patch".

  6. Indstil parametre
  --------------------
  Indstil diverse parametre (vibrato, tremolo, ADSR m.m.). Hvis en "patch"
  skal indeholde mange overtoner, der ikke er egentlige overtoner (heltal),
  vil det vre ndvendigt at ge lngde, da lyden ellers vil lyde skarp,
  som flge af, at den afbrydes p uhensigtsmssige steder. Ved dishar-
  moniske lyde vil en stor lngde medfre, at patch tilnrmet vil lyde
  som "hvid" stj. Standardvrdi for lngde er 1, men en vrdi p mere end
  20 kan vre ndvendig ved meget komplicerede lyde. Vibratoparametrene
  ndrer svingninger i frekvensen og tremoloparametrene svingninger i
  lydstyrken for den dannede tone. ADSR-parametrene styrer anslag, efter-
  klang m.m. "Patch Maker" er langt bedre til at opstte disse parametre,
  s notr disse fra en "patch" og indtast dem fra dette menupunkt eller
  kald PATCHWORK med de op til 20 parametre via en "batch"-fil.

  PATCHWRK.COL
  ------------
  PATCHWORK har en konfigurationsfil, hvorved det er muligt at ndre bl.a.
  opstartsfarver, kurvevising og sprog. Formatet er ren ASCII og som flger:
  Skrmdriver : Kan normalt sttes til 0, hvorved dette bestemmes automatisk.
                (1x=CGA, 2x=MCGA, 3x=EGA, 70=Hercules, 9x=VGA ,hvor x=ciffer).
                PATCHWORK er lavet til VGA, hvilket betyder, at man vil
                miste skrminformation ved mindre oplsninger).
  Tekst baggr.: Baggrundsfarven for tekst.
  Tekst forgr.: Forgrundsfarven for tekst.
  Grafik bagg.: Baggrundsfarven for grafik (kurvetegning).
  Grafik f.um.: Forgrundsfarven for umarkeret omrde.
  Grafik f.ma.: Forgrundsfarven for markeret omrde.
  Kurvevisning: 1=Vis som linie  2=Vis som prikker  3=Vis som areal
  Sprog       : "Dansk" er standard. (Hvis "English" vlges engelsk).

  Ved forgrundsfarverne i forbindelse med kurvetegning, vises perioden fra
  "patch"-begyndelse til periodens begyndelse i den dmpede udgave af den
  valgte farve. (Hvis farven i forvejen er dmpet, vises den fremhvede).
  Farver: 0=sort      1=bl       2=grn         3=cyan     4=rd   5=magenta
          6=brun      7=lys gr   8=mrk gr     9=lys bl  10=lys grn
          11=lys cyan 12=lys rd  13=lys magenta 14=gul     15=hvid

  Tekniske oplysninger
  --------------------
  De "patches", som PATCHWORK danner, bestr af en "header" p 335 bytes,
  efterfulgt af lyddata, hvor perioden, der gentages, nr en tone afspilles,
  har en lngde p (400*lngde) bytes efterfulgt af 200 bytes afsluttende
  lyddata. Fx:

  Lngde = 1   ->  Patchlngde = 935 bytes
  Lngde = 4   ->  Patchlngde = 2135 bytes
  Lngde = 50  ->  Patchlngde = 20535 bytes

  Specialtilfldet lngde=0 giver den kortest mulige "patch" : 735 bytes.
  Lngdeparametren kan ogs vre en decimaltal. Herved vil lyden dog f en
  anden grundtone end 440 Hz, som er normalvrdien for denne.

  Ogs grundtonens frekvens kan ndres. Denne er, som sagt, normalt 440 Hz,
  men kan ndres ved at indtaste den nskede frekvens efter filnavnet ved
  dannelse af en "patch". (Frekvensen kan derfor ikke ndres, hvis man ikke
  indtaster filnavn). En grundtone p 220 Hz vil hve en oktav, mens
  880 Hz snker en oktav.

  Tekniske oplysninger (fortsat)
  ------------------------------
  Frekvensomrdet for dannede patches : ca.  12 - 16.000 Hz

  Tone   Frekvens   Forhold  Frekvens (tempereret)
  --------------------------------------------------
   C       264      1            261.63   (1.0000)
   C#                            277.18   (1.0595)
   D       297      1.125        293.66   (1.1225)
   D#      317      1.2          311.13   (1.1892)
   E       330      1.25         329.63   (1.2600)
   F       352      1.33333      349.23   (1.3348)
   F#                            369.99   (1.4142)
   G       396      1.5          391.99   (1.4983)
   G#      422      1.6          415.31   (1.5874)
   A       440      1.66667      440.00   (1.6818)
   A#                            466.16   (1.7818)
   H       495      1.875        493.88   (1.8877)
   C^      528      2            523.25   (2.0000)
