1

witam,

przy okazji pisania http://atari.pl/digi_6502.xex zauwazylem, ze mozna poglasniac kanaly zapisujac dwa rejestry glosnosci...

skoro mozna miec 4 bitowa jakosc sampli przy jednym kanale, zapisujac dwa kanaly czy tez dostajemy 4 bitowa jakosc?

chcialbym napisac programik ktory bedzie np stopniowo zapisywal kombinacje glosnosci na 4 kanalch w odstepach czasu i teraz pytanie - jakim miernikiem mozna zmierzyc wynik aby czarno na bialym wyszlo mi jaka jest rozdzielczosc.

albo... moze ktos ma jakis wzor na obliczenie w ilu bitach mozna zagrac na 1/2/3/4 kanalach? musi cos takiego byc bo to dosc czesto bylo na amidze wykorzystywane.

http://atari.pl/hsc/ad.php?i=1.

2

oscyloskop?

xxl: taki wzór to nie jest wielki problem. Wszystko zależy czy skala regulacji głośności jest liniowa czy logarytmiczna (czy jeszcze inna), oraz od skali głośności próbki. Czyli masz zasadniczo dwie skale do wzięcia pod uwagę, reszta to prosta matematyka.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

4 Ostatnio edytowany przez pirx (2009-04-02 11:38:40)

Więcej pewnie napisze Pecus, ale właśnie w jego ModPlayerze jest tablica zrobiona na podstawie pomiarów napięcia dla wszystkich kombinacji wpisywanych do 3 rejestrów głośności. To było robione ręcznie, ale w dzisiejszych czasach można by podłączyć lepszy multimetr do PC i sczytać wartości dla 4 rejestrów (16x więcej).

Mam też jeden dobry pomysł, którego pewnie sam nie zrealizuję, więc się z Wami podzielę.

DTS - Dostatecznie Trudne Samplowanie

Podstawowy problem z wpisywaniem wielu wartości na raz do rejestrów POKEYa polega na tym, że gdy chcemy uzyskać jakąś konkretną wartość napięcia na wyjściu za pomocą wpisania głośności do więcej, niż jednego rejestru to pomiędzy kolejnymi zapisami na POKEYu generuje się jakiś stan nieustalony.
Dla 3 rejestrów da się to jakoś przeżyć za pomocą triku polegającego na wpisaniu 3 wartości jak najszybciej (z A, X i Y):

   STA AUDC1
   ; tu już nie wiadomo, co jest
   STX AUDC2
   ; tu jeszcze bardziej nie wiadomo, co jest
   STY AUDC3
   ; tu już jest doooobrze

W przypadku próby wpisania 4 wartości już będzie gorzej, bo będzie to trzeba robić w jakiejś pętli czy czymś w tym rodzaju.

Ale spróbujmy popatrzeć na to z innej strony - zamiast martwić się tymi wartościami pośrednimi spróbujmy użyć ich do wykonania "oversamplingu".

1. Zmierzyć wartości napięć dla wszystkich kombinacji bitów w AUDC1..4 (65536).
2. Napisać konwerter sampli tak, by znajdował wartości pośrednie napięć, a nie tylko "statyczne", po zakończeniu serii zapisów do AUDC1..4

_Mogło_by to spowodować ciekawą poprawę jakości dźwięku, szczególnie gdyby orygnalne sample były odpowiednio przygotowane (nie poprzez obcięcie najmniej znaczących bitów w samplu, ale za pomocą emulacji resaplingu o mniejszej rozdzielczości).

Jak ktoś jest zainteresowany to pociągnę ten temat dalej...

http://www.5oft.pl/

5 Ostatnio edytowany przez seban (2009-04-02 13:17:23)

Problemem tej metody jest to iż POKEY-e różnią się od siebie i tablica przygotowana dla jednej serii (lub nawet sztuki) wcale nie musi być dobra dla innego POKEY-a (rozrzut parametrów przy produkcji układów).
Do tego problemem jest co innego... opóźnienie zapisu do poszczególnych rej. głośności... przydał by się tzw. ATOMIC WRITE :) czyli uaktualnienie wszystkich rej. głośności jedną instrukcją...

zapis do 4 rej. daje marne efekty bo opóźnienie pomiędzy poszczególnymi zapisami jest już spore :( efektem tego są szumiące sample.

to moje doświadczenia w tej materii z roku około 1995 ;)

update #1) taką metodę sumowania głośności kanałów chyba wykorzystują player-y modów grające na AY na Atari ST. Jako pierwszy taką metodą na małym Atari zastosował chyba właśnie Pecuś w swoim mod-playerze. Później znaleźli się naśladowcy tacy jak GateKeeper czy Firday Soft którzy robili własne wersje mod-playerów wykorzystując właśnie podobne tablice głośności.

update #2) w teorii taka tablica powinna być czysto liniowa jednak nieliniowość przetworników DAC w POKEY-u wymusza jakieś tam mniej lub bardziej rozjechane wartości. W dodatku jak pisałem tablice zrobione dla jednych serii POKEY wcale nie dają takich samych głośności jak inne serie POKEY-ów. Sprawdzałem kiedyś na 3 ezg. ATARI z różnymi POKEY-ami.

XXL napisał/a:

musi cos takiego byc bo to dosc czesto bylo na amidze wykorzystywane.

No tak tylko że w przypadku Amigi można było regulować głośność każdego z kanałów w przedziale 0-64 (0 cisza, 1-64 głośności). Więcej bitów uzyskiwano ściszając kanał nr 1 do poziomu np. 1 i tam się wpisywało młodsze bity sampla do drugiego kanału ustawionego na głośność 64 pisało się starszy bajt sampla. Chyba udawało się im wyciągnąć 12 bitów już kiedyś o tym dyskutowano na AA.

pozdrawiam
Seban

6

ztcp to nawet udawało sie na Pauli wycisnąć 14 bitów; tyle że mitem było propagowanie legendy o "niesłyszalnych róźnicach między 14-oma a 16-oma bitami w dźwięku". Prawda była taka jak w przypadku róźnic między hiresem w trybie HAM-8 a grafiką w 24-bitach...

gep/lamers^dial

7

W wypadku Amigi każdy kanał ma przetwornik C/A 8-bit + 6 bitów na regulację głośności... czyli rzeczywiście 14-bit na kanał, nie wiem jednak jak z charakterystyką tych 14-bit, czy posiadają one podobną "liniowość" jak np. przetworniki 16-bit.

8

ani liniowości ani dynamiki jak prawdziwy DAC 14 czy 16 bit ;) ale faktycznie brzmiało to lepiej niż czysty 8-bitowy DAC, w szczególności przy odtwarzaniu softowo miksowanych wielokanałowych utworów.

9

ok. rozjasnia sie.

pytanie drugie:

ustawiamy zegar dla pokeya na bazowa 1.79, ustalamy glosnosc na max bez znieksztalcen.
startujemy pomiar
ladujemy do audf wartosc 100 (dobrze rozumiem ze pokey odczeka 100 cykli zegara bazowego w tym przypadku 1.79?)
czekamy 200 cykli
pomiar stop.

czy bez oscyloskopa ktos potrafi mi wytlumaczyc jaki bedzie wynik?

http://atari.pl/hsc/ad.php?i=1.

10

Mała uwaga - 1,79MHz będzie tylko w wypadku POKEY-a w systemie NTSC, w systemie PAL będzie 1,77MHz.

11 Ostatnio edytowany przez seban (2009-04-07 14:52:48)

XXL: jeżeli myślisz o software PWM to ludziki z C64 tak robią. Jak będe miał chwilę czasu to znajdę Ci linka i zamieszczę tutaj. Z tego co pamiętam to oni nie używali nawet żadnych timerów, wszystko cyklowali NOP,DEX.

Kiedyś się próbowałem w to bawić, jednak efekt nie był zadowalający... wydawało mi się na ucho iż lepiej gra czysty 4-bitowy POKEY-owy DAC ;)

12

softwarowy pwm na atari juz jest... o linka poprosze, tak, przy tej szybkosci proca glownego lepiej bedzie gral 4bitowy dac, ale (byc moze to przedwczesny wytrysk) synteza mowy na pokeyu bez udzialu dac (no powiedzmy) moze bedzie malo obciazajaca i bardzo krotka.

http://atari.pl/hsc/ad.php?i=1.