view TODO.txt @ 0:32250b436bca

Initial re-import.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 28 Sep 2012 01:54:23 +0300
parents
children
line wrap: on
line source

- HOX! envelope sustain ei toimi ihan oikein ilmeisesti!
  kts. crstrvl.xm

- volume envelopen asettama volyymi tarvitsee erillisen muuttujan
  vs. jmpCSet. sama homma panning envelopelle.

- lukitukset:
	- device
	- playeri

- tremolo, vibrato ym ... jääkö viimeinen taajuus/volume "päälle"?

- volume vibrato: miten volslide + volvibrato käyttäytyy?

- arpeggion toiminta? [korjattu nyt?]

- note delay: viivyttää nuottia ja samplea jne.

===============================================================================
FT2-emuloiva miksausrutiini
---------------------------
 - tarvitaan volume ramp-tuki, joka interpoloi halutulla aikavälillä
   volumen arvoa (per kanava). aikaväli voi olla lyhyempi kuin 1 frame,
   ts. rutiinin on tuettava miten pitkiä ramppeja vain

 - virtuaalikanavat: instrumentit soivat 0.005s päällekkäin, eli
 jonkinlainen virtuaalikanavointi on luultavasti käytössä


===============================================================================
Ext. instrument envelopejen toiminta
------------------------------------
suoritetaanko ext.instrumentteja jos pattern delay on voimassa?
 - kyllä. ja myös jos note delay. näillä ei ole mitään vaikutusta
   instrumentin envelopejen jne. toimintaan.


samplejen alussa oleva "volume ramp":

 - on ns. frame #0:n sisällä (mutta ei välttämättä framen pituinen)
 - ei riipu bpm:stä, speedistä tai sampletaajuudesta jne.
 - pituus aina 0.005 sekuntia, ts.
   len = 48000 * 0.005 = 240


frame = aika / tempo, eli esim. 125 bpm tempolla:

	1 frame = 1 sekunti / ((125 * 2) / 5)
	1 frame = 1 / 50

eli miksaustaajuudella "mixfreq", yhden framen pituus on

	frame.len = mixfreq / ((tempo * 2) / 5)

esim. 48kHz, 125bpm

	frame.len = 48000 / ((125 * 2) / 5)
	frame.len = 48000 / 50
	frame.len = 960 (samplea)

eli kyseessä on sama käsite/aikaväli millä playerin tick-funktioita
suoritetaan. on kuitenkin huomioitava seuraavat seikat:

1) FT2:n miksausrutiini interpoloi envelopejen arvot lineaarisesti
   yhden framen sisällä.

2) ensimmäinen envelopen piste (0) alkaa itseasiassa framesta #1!
   frame #0 sisältää inherentin 
   ts. jos on määritelty seuraavanlainen envelope:
   
   [0,32]-[16,63] 

   jossa luvut ovat aika eli framen numero (-1) ja arvo, esim.
   äänenvoimakkuus, niin lopputulos on miksatussa datassa:

   |        |                |    **|63 <- loppuarvo saavutetaan vasta
   |        |                |****  |      17. framen vaihteessa
   |        |            ****|      |
   |        |        ****    |      |
   |        |    ****        |      |
 32|....****|****            |      |32
   |   *:   |                |      |
   |  * :   |                |      |
   | *  :   |                |      |
   |*   :   |                |      |
   0    :   1               15     16
   ......
   volume ramp (0.005s)


3) jostain syystä FT2:n envelopen interpoloinnissa näkyy joskus omalaatuista
   epälineaarisuutta, mutta se saattaa olla täysin luonnollista. luultavasti
   ko. omituisuuden emulointi ei ole kannattavaa.

===============================================================================