COMMODORE 64'ün BELLEK HARİTASI-9

Bu ay C-64'ün ses alanındaki yeteneklerini göreceğiz. Bu konuda diğer bilgisayarlarda pek görülmeyen marifetleri olduğunu belirtmek gerekir. Ses üretebilmek için PEEK ve POKE komutlarını kullanmanız gerekeceğinden önceden onların fonksiyonlarını gözden geçirmeyi ihmal etmemelisiniz. İlk adrese bir değişken adı verildikten sonra, tüm diğer ses adreslerine uygun bir sayı eklenerek ulaşılabilir.

10 LET S-54272
00100
68208 FOR « © TO
©0300 POKE 841.8
00480 NEXT
<125>
<185)
<236>

Bütün ses yerlerini sıfıra POKE ederek sesleri temizlemek de iyi bir fikirdir. Bu programlarınızda istemediğiniz durumların önüne geçecektir.

A) SIFIRLAMA (Üstteki tablo) SES 1 KÜTÜKLER (REGISTERS)

D400 54272 (S4 54272) Ses 1: frekans kontrolü, düşük bayt

D401 54273 (S4 1) Ses 1: frekans kontrolü, yüksek bayt

Müzik notaları çıkarabilmek için POKE edilecek değerlerin listesi nota tablosunda gösterilmektedir. POKE edilecek değerlerden bir örnek vermek gerekirse:

100 POKE 54272,75
200 POKE 54273,34

Yukarıdaki işlem 5. oktavda bir C notası çıkartır. Duyduğunuz her ses bir nota olacak diye bir kural yoktur. Nota tablosunda bulunmayan bir frekansı çıkarabilmek için aşağıdaki programı kullanabilirsiniz. Düşük ve Yüksek baytlarda POKE edilecek sayıları verecektir:

(Sağ sayfada üstteki tablo)

D402 54274 (S4 2) Ses 1: pulse (kare) dalga biçimi genişliği, düşük bayt D403 54275 (S 4-3) Ses 1: pulse (kare) dalga biçimi genişliği 7-4 kullanılmayan 3-0 yüksek-nibble

Sesin bir frekansına verilen diğer bir nitelik de sesin maksimum noktasının ne kadar belirgin olacağıdır. Vibrato (Sese şarkı tınısı veren ses tit-

©0010 PRINT <038>
©0020 INPUT "HANGI FREKANSI SECİYORSUNUZ “
<065>
00030 FisABSLFİ) <113)>
©0048 REM YUKSEK BAYTI HESAPLA <176)
©0050
©8060 REM DUSUK BAYTI HESAPLA
00070 <215)>
©8080 PRINT "DUSUK BAYTI POKE ET
3 <160>
©0080 PRINT "YUKSEK BAYTI POKE ET ----"3F
B <179>

reşimi) gibi tonlar da böyle çıkarılmaktadır. Bu pulse (kare) dalga biçimi ile yapılmaktadır. Değişik dalga biçimlerini sonraki kütükte inceleyeceğiz. 54274 sayılı yerde, 0-255 arasında bir sayı POKE edin 54275 sayılı yerde, 0-15 arasında bir sayı POKE edin D404 54276 (S4 4) Ses kontrol kütüğü 7 parazit (gürültü) dalga biçimini seçin 1 = AÇIK dalga biçimini seçin 5 testere dişi dalga biçimini seçin 1 = AÇIK 4 üçgen dalga biçimini seçin 1 = AÇIK 3 test biti: 1— osilatör 1'i etkisizleştir.

2 osilatör 1 ile 3 arasında modülasyon (ton geçişi) sağla çıktı 1 AÇIK 1 osilatör 1 ile 3 arasında senkronizasyon sağla frekans 1 = AÇIK

0 kapı biti: başlangıç atak/düşüş/süreklilik 0-dağılmayı başlat

İşte en önemli yer tam da burası! Burada okyanus dalgalarının çatlamasından keman sesine kadar ne cins bir nota çıkaracağınıza karar verebiliyorsunuz. Her şey seçtiğiniz dalga biçiminin cinsine bağlı. Bu yerdeki (location) tüm bitlere bir göz atın. 0, 4, 5, 6 ve 7 herkes tarafından sık sık kullanılacaktır. 1, 2 ve 3 numaralı bitler daha gelişmiş ses tekniklerinde kullanılmaktadır. Bit 0: Bu bit birinci sesin AÇ/KAPA anahtarı görevindedir ama dalga biçimi bitlerinden birisi ile kullanılması gereklidir. Bu bit 1 ile ayarlandığında atak, düşüş ve süreklilik devri başlayacaktır. 0 ile POKE edilirse notanın dağılma süresi başlayacaktır. (Notanın bu süreçleri hakkında bilgi edinmek isteyenler 42. sayımızdaki Basic Ses Dünyası yazısına bakabilirler.)

POKE 54276,17

Üçgen dalga biçiminin atak/düşüş/süreklilik devrini başlatacaktır.

POKE 54276,16 dağılma devrini başlatacaktır. Dalga biçimleri her seferinde yalnızca birinin kullanılabileceği şekilde dizayn edilmiştir. Birden fazlasını yan yana getirerek deneyler yapabilirsiniz.

Bit 1: Bu bit açıldığında 1 ve 3 nolu seslerin etkileşimini iki dalga biçimini karıştırarak sağlayacaktır. Duyulabilmesi için 3. sesin frekansının 1.'den düşük olması gerekir.

Bit 2: Modülasyon efekti gong ve çan sesleri çıkartır. 3. ses ile birlikte de kullanılır. Bunun yapılabilmesi için 1. seste üçgen dalga biçimi kullanılmalı ve 3. sesin frekansı sıfırdan yüksek olmalıdır.

Bit 3: Bu bit açılırsa ses 1'i sıfıra POKE edilene kadar resetleyecektir. Bit 4: Üçgen dalga biçimi flütü andırır. Ses bu biti ve kapı bitini açarak çıkartılır.

AÇIK: POKE 54276,17 KAPALI: POKE 54276,16

AAA

Bit 5: Testere dişi dalga biçiminin sesini dinleyin. AÇIK: POKE 54276,33 KAPALI: POKE 54276,36

Bit 6: Pulse dalga biçimi genişliğini değiştirmek üzere 54275 sayılı yeri kullanarak değiştirilebilir. Piyano sesinden klarnet sesine kadar pek çok ses yaratabilirsiniz.

AÇIK: POKE 54276,65 KAPALI: POKE 54276,64

Bit 7: Gürültü biti. Bununla roket patlamasından sörf sesine kadar çeşitli sesler yaratabilirsiniz.

AÇIK: POKE 54276,129 KAPALI: POKE 54276,128

D405 54277 (S 4 5) Envelope jeneratörü 1: atak/düş devri

©0100 REM - A ATAK HIZI <038>
60110 REM - HER SAYI OLABILIR <887>
00120 REM - © ILE 15 ARASINDA
©0130 <175)>
©0140 REM - D DUSUS HIZI
©0150 REM - HER SAYI OLABILIR
601680 REM - © ILE 15 ARASINDA
00170 <163)>
©8160 REM - ATAK/DUSUSU POKE ET <057)>
001980 POKE 54277.PEEK<CS4ET7) AND <AKİB) <228)>
00280 REM - SONRA DUSUSU EKLE <175)>
©0210 POKE * D <068>
7-4 atak dönemi süresini seç: 0-15
00100 REM SES CIPİ BASLANGIC ADRESİ 3-0 düşüş dönemi süresini seç: 0-15
60110 <cite> i bi
60180 REM - KÜTÜKLERİ TEMİZLE <051) dör
<185> | han şiddeti maksimuma ulaşır. Son-
00140 POKE 81D41.0 “ra notanın ikinci kısmı olan düşüş
00150 NEXT <160> | başlar.
60160 REM - EN YÜKSEK VOLÜME E AYARLA <125> Şimdi bir atak ve düşüş örneği ve-
00170 POKE S10424.15 —riyoruz:
60180 REM - YÜKSEK VE DUSUK BYTE Iİ AYARL
A (Ön sayfadaki tablo)
001860 REM - MIDDLE C SESİNİ ÜRETMEK <147> Bu orta şiddette bir atak ve düşüş-
©8200 REM - BIR <086> | tür.
POKE S10.34
POKE — 54x18 Jeneratörü 1:
00230 REM - ATAK/DUSUS HIZINI AYARLA <048>
REM SA ATAKI Dz DÜSUS ağ ES
68256 Az0 7-4 süreklilik dönemi süresini seç:
D-15 0-15 e
©8276 POKE 3-0 dağılma dönemi süresini seç:
80280 REM - SUREKLİLİK/DAGILMA HIZINI AY 015
ARLA Süreklilik ve dağılma da bir sesin
B8286 REM > S- | diğer bölümleridir. Bir ses düştükten
©0300 5-15 <201> | sonra volüm süreklilik düzeyine dü-
00310 R-8 <168> | şer. Dağılma başlayana kadar da bu
08320 POKE <116> | düzeyde kalır. Süreklilikte en düşük
00330 REM - TESTERE DİSİ DALGA BİCİMİNİ değer O, en yüksek süreklilik değeri
SEC <064> | de 15'tir.
003460 REM - VE CALISTIR <837> Aşağıda tek bir ton üretmek için
080356 POKE 51044 .33 <150> | bir örnek program veriyoruz:
©0368 REM > NOTAYI BIR SÜRE SURDUR <186> (Yandaki tablo)
00370 FOR PAUSE * 1 TO
00380 REM - DAGILMA DEVRİNİ BASLAT <148> 2. ve 3. seslerin kütükleri de aynı
603886 POKE <186> şekilde halledilmektedir. Farklarını
gelecek sayımızda vereceğiz.

MÜZİK NOTASI | — OSİLATÖR FREKANSI MÜZİK NOTASI| OSİLATÖR FREKANSI NOTA | | ONLUK Düşük | | NOTA | OKTAV | DEĞER İYÜKSEK| Düşük o |c— 268 1 12 64 4291 16 195 1 |ce— 284 1 28 65 4547 17 195 2 |D— 301 1 45 66 |D— 4817 18 209 3 |D#—o 318 1 62 671 5103 19 239 4 |E— 337 1 s1 68 | E—4 5407 21 31 s |F—o 358 1 102 69 | F—4 5728 22 96 6 |F#— 379 1 123 70 6069 23 181 7 |a— 401 1 145 nı 6430 25 30 8 |G#— 425 1 169 712 6812 26 156 9 |A— 451 1 195 73 | A—4 7217 28 49 10 | A#—o 1 221 74 |A#—4 7647 29 223 ii 506 1 250 15 8101 31 165 16 536 2 24 80 | Cc—s 8583 33 135 17 | Cş—l 568 2 56 sı |c#—s 9094 35 134 18 |D—i 602 2 90 82 |D—s 9634 37 162 19. |D#—I 637 2 125 83 |D#—s | 10207 39 223 20 |E—i 615 2 163 84 | E—s 10814 42 62 21 |F—i 716 2 204 85 |F—s 11457 44 193 22 |F#—i 758 2 246 86 12139 47 107 23 |G—ı 803 3 35 87 | 12860 s0 60 24 |G#—l 851 3 83 88 |Gş— | 13625 53 S7 25 |A—ı 902 3 134 89 | 14435 56 99 26 |Aş—l 955 3 187 90 | 15294 59 190 a2 1012 3 244 91 | B—s 16203 63 75 32 |c—2 1072 4 48 96 | c—6 17167 67 15 33 1136 4 112 97 |C#—6 | 18188 71 12 34 |D—2 1204 4 180 98 |D—6 19269 75 69 385 1275 4 251 99 | 20415 79 191 36 |E—2 1351 s 100 | E—6 21629 84 125 37 |F—2 1432 Ss 152 101 | F—6 22915 89 131 38 |F#—2 1517 5 237 102 | 24278 94 214 39 |G—2 1607 6 71 103 | G—6 25721 | 100 121 40 1703 6 167 104 |G#—6 | 27251 106 115 41 |a—2 1804 7 12 105 | A—6 28871 112 199 42 |A#—2 1911 7 119 106 | 30588 | 119 124 43 |B—2 2025 7 233 107 | B—6 32407 | 126 151 48 |c— 2145 8 97 12 |c—7 34334 | 134 30 49 2273 8 225 113 |C#—7 | 36376 | 142 24 s0 |D—3 2408 9 104 14 38539 | 150 139 sı | 2ssı 9 247 115 |D#—7 | 40830 | 159 126 52 |E—3 2703 10 143 16 |E—7 43258 | 168 250 53 |F—3 2864 ın 48 17 |F—7 45830 | 179 6 54 3034 ın 218 n8 |Fe—7 | 48556 | 189 172 s5 3215 12 143 19 | G—7 51443 | 200 243 s6 | 3406 13 78 120 |G#—7 | 54502 | 212 230 s7 |Aa— 3608 14 24 121 | A—7 577143 | 225 143 s8 | 3823 14 239 122 | 61176 | 238 248 s9 |B—3 4050 15 210 123 | B—7 64814 | 253 46