Mercurial > hg > dmlib
view TODO.txt @ 410:e4b2f689aff6
Stdint -> SDL types conversion.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 03 Nov 2012 02:41:15 +0200 |
parents | 32250b436bca |
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. ===============================================================================