Bu sayfadaki yazılar
Sayfanın metni
Sayfa 30
Şekil 2- Üçgen Dalga Biçimi.
Şimdi de ses dalgasının kulağınıza çarpıp yavaş yavaş ve eşit olarak kulak zarınızı bir saniye için sola ittiğini düşünün. Sonra hemen onu serbest bırakır. Bu dalga biçiminin grafik tasarımı “testere” olarak adlandırılır:
KA AŞ AA
Şekil 3- Testere Dişi Dalga Biçimi.
Son olarak ses dalgasının kulağınıza tamamıyla rastgele çarptığını düşünün. Bu dalga biçimi de şöyle görünebilir:
Şekil 4- Parazit Dalga Biçimi.
Döküm-1'deki C-64 programı bu biçimlerin her birinin nasıl olduğunu gösterir. Bu programı bir C-128'le de çalıştırabilirsiniz ama ondan önce bir BANK 15 komutu vermeyi unutmayın. (Şimdi bütün PEEK ve POKE komutlarının ne olduğunu anlayamamaktan ötürü moraliniz bozulmasın. Onları daha sonra açıklayacağım.)
:
i
883 ETE
VOLÜM
Bir sesin volümü sadece onun yüksekliği, şiddetidir. Testere dişi dalga boyunda bir sesimiz olduğunu düşünelim. Şöyle görünecektir:
Şekil 5- Testere dişi dalga biçimiyle üretilmiş ses.
Aynı nota daha şiddetli olarak şöyle görünürdü:
Şekil 6- Aynı sesin yüksek volümlüsü.
Dalgalar arasındaki uzaklığın her seferinde aynı olduğuna dikkat edin. İki notanın da aynı frekansta olduğunu göreceksiniz. Ama ikinci sesin volümü, şiddeti daha yüksektir.
ENVELOPE
Bir notanın envelopu aynı notanın tonlarının dört değişik parçasını içerir. ATAK ya da notanın azami volüme çıkması için gereken süre; DÜŞÜŞ notanın ortalama düzeyine ne kadar zamanda düştüğü; SÜREKLİLİK o düzeyde ne kadar kaldığı; DAĞILMA da sesin sona ermesi için geçmesi gereken süredir. Bu envelopun nasıl görünebileceğinin grafik bir tasarımını aşağıda veriyorum:
Ül
ATIM rası
Şekil 7- Ses Envelope'unun görünümü,
Bir sesin frekansını gösteren daha önceki şekillerden farklı olarak bu şekil relatif volümü gösterir, notanın başladığı andan son anına kadar. Eğer ses iki dörtlük bir çekiç sesi ise atak ve düşüş kısımları süreklilik ve dağılma olmaksızın uzardı. Çünkü çekiç ve iki dörtlük ses uyumlu değildir. Kemanın tellerine yay sürüldüğünde atak daha naziktir, düşüş yoktur ve yayın hareketi durana kadar süreklilik devam eder. Döküm-3 atak, düşüş, süreklilik ve dağılma oranlarıyla oynamakta kullanılan bir C-64 programıdır. Şekil 8'deki değerleri deneyin ve farklı sonuçları dikkate alın. Atak için bir negatif satır görünceye kadar program RUN etmeye devam edecektir. C-128'de atak, düşüş, süreklilik ve dağılmaları ayarlamak ve dalga biçimi seçmek için bir Envelope komutu vardır. Ne yazık ki bu komutla oluşturulan enveloplar C-128'lerin ses komutu ile çalışmaz. Onları sadece PLAY komutu ile kullanabilirsiniz. Kendi zarflarınızı tasarımlatmanın yanısıra C-128'de PLAY komutuyla kullanmak için on tane önceden tanımlanmış envelope vardır. Sesleri değişik müzik aletleri gibi duyulur. ENVELOPE komutunu verilen hazır envelopları yeniden tanımlamak için kullanabilirsiniz. Format şöyledir: (ENVELOPE sayı, atak, düşüş, süreklilik, dalga biçimi, sinüs genişliği) Sayı değiştirmek istediğiniz envelope sayısıdır (0-9). Atak, düşüş, süreklilik ve 0 ile 15 arasındaki değerlere sahiptir. Dalga biçimi 0 ile 3 arasında değişir.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 31
SID istediğiniz sesi elde edebilmeniz için bir sesin belirli frekanslarını çıkartmak üzere filtre kullanabilir. Üç çeşit filtre vardır: Alçak Filtre, Yüksek Filtre ve Band Filtresi. Bunları kullanabilmek için frekans kesinti noktalarını bulmalısınız. Bir filtre bu noktanın altındaki her frekansı geçirir, düşük armonileri duyarsınız. Yüksek filtre kesinti noktası üzerindeki frekansları geçirir, yüksek armonileri duyarsınız. Band filtresi ile istediğiniz frekanslar aralarına gelecek biçimde alçak ve yüksek kesinti noktalarını ayarlayabilirsiniz. Filtreler hakkında daha fazla bilgi edinmek için C-64 Programcının El Kitabı'ndaki filtre bölümüne ve C-128 Kullanma Kılavuzu'ndaki filtre komutu açıklamasına bakın.
SES YARATMAK
SID chipinden gelen sesleri yirmidört byte kontrol eder. Bunlar bu yazıdaki tüm örneklerinde SD değişkeninin set edildiği 54272 bellek adresinde başlarlar. Bu baytların tanımladığı parametreler tablo 1'de gösterilmiştir. SID Kontrol eden baytlar hakkında daha ayrıntılı bilgi için C-64 Programcının El Kitabı'ndaki bellek haritası bölümüne bakın.
Ses 1 kontrol kütüğü ve Volüm ve Filtre kontrol kütükleri en çok kafa karıştırıcı olanlar, çünkü SID'i baytlar yerine tek tek bitler kontrol eder. Bu konuda bir nutuğun sırası değil ama bir parça sözünü etmek de gerekli. Geleneksel onluk sayı sistemimiz on rakam kullanır, 0-9 ve bir sayıdaki her rakamın gerçek değeri sayı içindeki yerine göre değişir. Onlar, yüzler, binler gibi. İkinin üsleri üzerine rakam vardır: 0 ve 1. Bilgisayarlarda bu sistemi kullanıyoruz çünkü 0 “kapalı” 1 “açığı” temsil edebilir, bu da elektronik devrelere çok iyi uyar. Her byte sekiz bitten oluşur. Her bit “yer değerinin” sayıda kullanılmış olup olmadığına bağlı olarak 1 ya da 0(kapalı)'dır. Şekil 9'da 10010011 ikilik sayısındaki her bitin onluk değeri gösterilmektedir. Açık olanları toplarsak 128+16+4+2+1=147. O halde ikilik sistemdeki 147'ye eşittir. Şimdi bitler üzerine bilgi sahibi olmanın neden önemli olduğunu görelim. Tablo 2'de Ses 1 için olan kontrol kütüğünün kontrol ettiği bitlerin bir listesini bulabilirsiniz. Tablo 3'de de Volüm ve Filtre kontrol kütükleri vardır. Basic'te bir biti açıp kapamanın direkt bir yolu yoktur. Bu AND, OR, PEEK ya da POKE komutlarıyla yapılmalıdır. Örneğin kontrol kütüğündeki 5. bitin testere dişli dalga biçimini çıkartmasını istiyorsunuz. İkilik sistemdeki 5. bitin onluk sistemdeki değerinin 32 olduğunu biliyorsunuz. Ama kütüğe sadece bir 32 POKE edemezsiniz 32 ikilik sistemdeki 00100000'dır. Tüm bu sıfırlar açık olmasını istediğiniz bir şeyi kapatabilir. Bu nedenle 5. biti açmak kontrol kütüğündeki değeri PEEK etmeli, o sayı ve 255-32'nin sonucu ile bir AND işlemi yapmalı ve yeni değeri kontrol kütüğüne yeniden POKE etmelisiniz. (Bu size anlaşılır ve anlamlı gelmiyorsa sayıların ikilik eşdeğerlerini kâğıda yazıp yeniden deneyin.)
Şekil 8- Döküm 2'deki değerler.
Atak — 10: Ataka 0: Düşüşe Atak 10: Düşüş— Atak- 15: Düşüşe
Süreklilik - 0: Dağılma 0 Süreklilik - 0: Dağılma 0 süreklilik 10: Dağılma — 10 - 3: Dağılma -3
Tablo 1- SID Kontrol Byte'ları.
Sesi Ses 2 Ses 3 SD Alçak Frekans Alçak Frekans — SD+1 Alçak Frekans SD+8 Yüksek Fr. Yüksek Fr. SD+9 Yüksek Fr. SD+16 Kare dal. alçak — SD+2 Kare dal. alçak — SD+10 Kare dal. alçak SD+17 Kare dal. yüksek — 10 Kare dal. yük. — SD+11 Kare dal. yük. SD+18 Kontrol Kütüğü — SD+4 Kontrol Kütüğü SD+12 Kontrol Kütüğü SD+19 Atak/Düşüş SD+5 Atak/Düşüş — 13 Atak/Düşüş SD+20 Süreklilik/dağıl. — SD+6 Sür./Dağ. SD+14 Sür./Dağ.
SD+21 Filtre kapatma frekansı (düşük nibble) SD+22 Filtre kapatma frekansı (yüksek byte) SD+24 Volüm kontrolü, Filtre kontrolü Not: SD'nin bellek adresi 54272'dir.