Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

Do strony głównej I LO w Tarnowie

Materiały dla uczniów liceum

Zoptymalizowane dla
  
1280 x 1024

  Wyjście       Spis treści       Poprzedni       Następny  

©2019 mgr Jerzy Wałaszek
I LO w Tarnowie

https://images.fineartamerica.com/images/artworkimages/mediumlarge/1/atari-logo-marjan-mencin.jpg

Autor artykułu: mgr Jerzy Wałaszek

 

Rozdział 7

Dźwięk

Spis treści Zawartość
Definicje terminów i konwencji
Sprzęt dźwiękowy
x

 

 

Komputer domowy ATARI 400/800™ posiada duże możliwości sprzętowej generacji dźwięku. Istnieją cztery niezależnie sterowane kanały dźwiękowe, które mogą odtwarzać dźwięk równocześnie. Każdy kanał posiada rejestr częstotliwości określający nutę oraz rejestr sterujący głośnością i zawartością szumu. Kilka opcji pozwalają ci wstawiać filtry górnoprzepustowe, wybierać podstawy taktowania, ustawiać alternatywne tryby pracy i modyfikować liczniki LFSR.

 

Definicje terminów i konwencji

Dla celów dyskutowanych w tym rozdziale kilka terminów i konwencji musi zostać wyjaśnionych:
1 Hz (Hertz) to jeden impuls w ciągu jednej sekundy
1 kHz (kilo-Hertz) to 1.000 impulsów na sekundę
1 MHz (mega-Hertz) to 1.000.000 impulsów na sekundę

"Impuls" jest nagłym wzrostem napięcia, po którym nieco później następuje nagły spadek napięcia. Jeśli jakiś impuls zostanie wysłany na głośnik telewizora, usłyszysz pojedynczy trzask, pyknięcie.

"Fala" jest używana tutaj w znaczeniu ciągłego szeregu impulsów. Istnieją różne rodzaje fal, które rozróżniamy po kształcie indywidualnych impulsów. Fale tworzone przez komputer Atari są falami prostokątnymi (jak na rys.7-2). Instrumenty dęte zwykle wytwarzają fale trójkątne, a śpiewak wytwarza fale sinusoidalne (przedstawione na rys.7-15).

Rejestr przesuwający jest jak komórka pamięci (ponieważ przechowuje dane binarne), której zawartość może zostać przesunięta bitowo w prawo o jedną pozycję, tj. bit 5 otrzyma poprzednią zawartość bitu 4, a bit 4 otrzyma to, co było w bicie 3, itd. Stąd ostatni bit z prawej strony jest wypychany na zewnątrz, a pierwszy bit z lewej strony otrzymuje wartość z linii wejściowej (patrz rys.7-1).

Rys.7-1 Przepływ bitów w rejestrze przesuwającym

AUDF1-4 należy czytać jako "dowolny z rejestrów częstotliwości audio o numerze od 1 do 4". Ich adresy to: $D200, $D202, $D204, $D206 (53760, 53762, 53764, 53766).

AUDC1-4 należy czytać jako "dowolny z rejestrów sterujących audio o numerze od 1 do 4". Adresy: $D201, $D203, $D205, $D207 (53761, 53763, 53765, 53767).

W rozdziale tym częstotliwość jest miarą liczby impulsów w danym okresie czasu; na przykład nuta o częstotliwości 100 Hz oznacza, iż w ciągu jednej sekundy pojawi się dokładnie 100 impulsów. Im częściej (stąd określenie częstotliwość) występują te impulsy w nucie, tym wyższa jest nuta. Na przykład śpiewak śpiewa z wysoką częstotliwością (być może 5 kHz), a krowa ryczy z niską częstotliwością (być może 100 Hz). Słowa "częstotliwość", "nuta", "ton", "wysokość dźwięku" są używane zamiennie.

"Szum" i "zniekształcenie" są używane zamiennie, chociaż ich znaczenie nie jest takie samo. "Szum" jest bardziej dokładnym określeniem funkcji wykonywanej przez komputer ATARI.

Przerwanie występujące z częstotliwością 60 Hz, do którego odwołujemy się dalej w tym rozdziale, jest zwane również przerwaniem wygaszania pionowego (ang. vertical blank interrupt).

Wszystkie przykłady są w języku BASIC, chyba że zaznaczono inaczej. Wpisuj je dokładnie tak, jak są podane. Jeśli nie ma numerów wierszy, nie wpisuj żadnych; a jeśli kilka rozkazów jest w tym samym wierszu, wpisze je też w ten sposób.

 

Sprzęt dźwiękowy

Dźwięk jest generowany w komputerze ATARI przez układ POKEY, który obsługuje również szeregową magistralę we/wy oraz klawiaturę.

Układ POKEY musi być poddany inicjalizacji, zanim będzie mógł poprawnie pracować. Inicjalizacja jest wymagana po każdej operacji na magistrali szeregowej (magnetofon kasetowy, stacja dysków, drukarka, odczyt/zapis poprzez RS-232). Aby zainicjować układ POKEY z poziomu BASIC'a, wykonaj pusty rozkaz dźwiękowy, tj. SOUND 0,0,0,0. W języku maszynowym umieść 0 w rejestrze AUDCTL ($D208 = 53768) i 3 w SKCTL ($D20F = 53775, z kopią w RAM pod adresem $232 = 562).

AUDF1-4

Każdy z kanał audio posiada odpowiedni rejestr częstotliwości, który steruje odtwarzaniem nuty przez komputer. Rejestr częstotliwości przechowuje liczbę "N" używaną w obwodzie podziału przez N. Ten podział nie jest w sensie matematycznym, lecz raczej czymś dużo prostszym: dla każdych N impulsów wchodzących, wychodzi 1 impuls. Na przykład, rys.7-2 pokazuje funkcję podziału przez 4:

Rys.7-2 Operacja podziału przez 4

Gdy N rośnie, impulsy wyjściowe pojawiają się rzadziej, co powoduje obniżenie nuty.

AUDC1-4

Każdy kanał posiada również odpowiedni rejestr sterujący. Rejestry te pozwalają ustawić głośność oraz zniekształcenie w każdym z kanałów. Przydział bitów dla AUDC1-4 jest następujący:

AUDC1-4

Numer bitu 1 2 3 4 5 6 7 8
  zniekształcenie bit
tylko
głośno-
ści
głośność

Rys.7-3 Przydział bitów w rejestrach AUDC1-4

Głośność

Sterowanie głośnością dla każdego kanału audio jest bezpośrednie. Dolne 4 bity każdego rejestru sterującego audio zawierają 4-bitową liczbę, która określa głośność dźwięku. Zero w tych bitach oznacza zerową głośność, a 15 oznacza głośność maksymalną. Suma głośności wszystkich kanałów nie powinna przekraczać 32, ponieważ powoduje to przesterowanie wyjścia dźwiękowego. Wytwarzany dźwięk ma wtedy tendencję do utraty swojej głośności i brzmi jak brzęczyk.

Zniekształcenie

Rys.7-3 pokazuje, że każdy kanał posiada w rejestrze sterującym trzy bity sterujące zniekształceniem. Zniekształcenie jest wykorzystywane do tworzenia specjalnych efektów dźwiękowych, gdy czysty ton nie jest pożądany.

Komputerowe wykorzystanie zniekształcania oferuje dużą różnorodność i możliwość modyfikacji dźwięków. Możliwe jest syntezowanie prawie nieskończonej różnorodności dźwięków, od huków, grzechotów i skrzeków do kliknięć, świstów i dźwięków środowiska.

Zniekształcenia w używanej tutaj postaci nie odpowiadają standardowej interpretacji. Na przykład "zniekształcenia intermodulacyjne" i "zniekształcenia harmoniczne" są kryteriami jakościowymi określanymi dla systemów hi-fi stereo. Te typy zniekształceń odnoszą się do degeneracji przebiegu fali, gdzie kształt fali jest nieco zmieniany z powodów błędów w układzie elektronicznym. Zniekształcenia komputerowe nie zmieniają fal (zawsze są one falami prostokątnymi), lecz raczej usuwają z przebiegu fali wybrane impulsy. Ta technika nie jest adekwatnie precyzowana za pomocą słowa "zniekształcenie". Bardziej opisowym i odpowiednim terminem dla tych metod zniekształceń będzie "szum".

Zanim w pełni opanujesz znaczenie zniekształceń, musisz zrozumieć działanie rejestru przesuwającego z liniowym sprzężeniem zwrotnym – LFSR (ang. linear feedback shift register). Rejestry LFSR są zatrudnione w komputerze ATARI w charakterze źródła przypadkowych impulsów wykorzystywanych w generacji szumu. Liczniki LFSR komputera ATARI używają rejestru przesuwającego pracującego przy częstotliwości 1,79 MHz. Zawartość rejestru przesuwającego jest przesuwana i wprowadzana z powrotem na wejście; tworzy to pseudolosowy ciąg bitów na wyjściu tego rejestru przesuwającego.

Na przykład na poniższym schemacie stara wartość bitu 5 zostanie wypchnięta z rejestru przesuwającego i stanie się kolejnym impulsem wyjściowym, a bit 1 stanie się funkcją EX-NOR bitów 3 i 5:

Rys.7-4 Rejestr przesuwający LFSR

Procesor bitów pobiera wartości z pewnych bitów w rejestrze przesuwającym (u góry są to bity 3 i 5) i przetwarza je w sposób nieistotny dla tej dyskusji. Na wyjściu wytwarza on wartość, która staje się bitem nr 1 rejestru przesuwającego LFSR.

Te rejestry LFSR nie produkują przebiegu w pełni przypadkowego, ponieważ powtarzają swój ciąg bitów po upływie pewnego okresu czasu. Jak podejrzewasz, ich częstotliwość powtarzania zależy od liczby bitów w rejestrze LFSR, tj. dłuższe rejestry wymagają wielu taktów, zanim nastąpi powtórka, natomiast krótsze powtarzają częściej.

W komputerze ATARI zniekształcenie jest osiągane przez wykorzystanie przypadkowych impulsów z tych rejestrów LFSR w układzie wybierającym, który właściwie jest cyfrowym komparatorem, lecz określenie "układ wybierający" jest bardziej opisowe. Jedyne impulsy, które przedostają się na wyjście, to impulsy współgrające z impulsami przypadkowymi. W ten sposób przypadkowo z przebiegu są eliminowane różne impulsy. Rysunek 7-5 ilustruje tę metodę wybierania. Linią przerywaną połączono impulsy, które ze sobą współgrają.

Rys.7-5 Funkcja wybierająca wykorzystywana do wstawiania zniekształcenia

Efekt końcowy polega na tym, iż niektóre impulsy z układu dzielnika częstotliwości zostają usunięte. Oczywiście, jeśli usunie się impulsy z przebiegu, to nuta będzie brzmiała inaczej. W ten sposób wprowadza się zniekształcenie do kanału dźwiękowego.

Ponieważ rejestry LFSR powtarzają swoją sekwencję bitową, to ich wyjściowy wzór impulsów jest cykliczny. A ponieważ układ wybierający wykorzystuje ten wzór wyjściowy do usuwania impulsów z oryginalnej nuty, to zniekształcona nuta będzie zawierała ten sam powtarzający się wzór. Pozwala to sprzętowo tworzyć dźwięki takie jak brzęczenie, warkot silników oraz inne posiadające powtarzający się wzór.

Komputer ATARI wyposażony jest w trzy rejestry LFSR o różnych długościach, które można łączyć ze sobą na różne sposoby w celu wytworzenia interesujących efektów dźwiękowych. Mniejsze rejestry LFSR (4 i 5-cio bitowe) powtarzają wystarczająco często, aby stworzyć brzęczące dźwięki, które narastają i opadają szybko, natomiast większy rejestr LFSR (o długości 17 bitów) powtarza z tak dużym okresem, iż nie można rozpoznać w nim żadnego wzoru. Ten 17-to bitowy rejestr LFSR może zostać wykorzystany do tworzenia nieregularnych dźwięków eksplozji, syku pary oraz dowolnego dźwięku, gdzie wymagany jest przypadkowy przebieg impulsów.

Każdy kanał audio  oferuje sześć różnych kombinacji tych czterech rejestrów LFSR:

Uwaga: "zegar" oznacza częstotliwość wejściową
"x" oznacza, że stan bitu nie ma znaczenia

Rys.7-6

Te trzy górne bity rejestrów AUDC1-4 sterują trzema przełącznikami w obwodzie audio, jak pokazano niżej. Schemat ten pozwoli ci zrozumieć, dlaczego tabelka z rysunku 7-6 ma taką właśnie postać:

Rys.7-7 Schemat blokowy sterowania AUDC1-4

Każda kombinacja rejestrów LFSR oferuje unikalny dźwięk. Co więcej, zniekształcone dźwięki brzmią inaczej przy różnych częstotliwościach. Z tego powodu niezbędne jest testowanie różnych kombinacji, aby znaleźć zniekształcenie i częstotliwość, które wytworzą pożądany efekt dźwiękowy. Poniżej przedstawiono kilka wskazówek na początek:

Rys.7-8 Dźwięki wytwarzane przez różne kombinacje zniekształceń i częstotliwości

 

 

 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2019 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.