Bu sayfadaki yazılar
Sayfanın metni
Sayfa 61
İLK SEFER İlk kaydımızı yapmadan önce donanmamızın bir fonksiyon testi ve basit bir ayar yapmak gerekti. Bunun için önce “Speech Basic” adlı lisding AİDE ile yazın ve diskette saklayın. Ayar işlemini yapma- 'nız için bir de ufak ayar tornavidasına ihtiyacınız olacak. Bilgisayarınızı kapatıp, digitizer devrenizi JOYSTICK-PORT2'ye takın. Henüz herhangi bir ses kaynağı bağlamayın. Bilgisayarınızı açıp tüm tuşları kontrol edin. Tüm tuşlar gayet güzel çalışıyorsa sorun yok! Böylece devrenin yapımında büyük bir hata yapmadığınızı garanti ettiniz. Şimdi Speech-Basic programını;
ile yükleyin ve RUN komutunu kullanarak çalıştırın. Bilgisayar, hemen *C 64 SPEECH SYSTEM mesajı ile cevap verecektir. Speech-Basic mesajlarını daimi küçük harf modunda verir. Diyelim ki Speech-Basic herhangi bir şekilde bilgisayarın kontrolünü kaybetti (mesela 4 RESTORE'den sonra). Böyle durumlarda, yeni bir komut olan RESET komutunu kullanarak Speech-Basic'in birçok şeyi düzenlemesini sağlarsınız. Bu arada hafızada bulunan program silinmez. Bazı Commodore 64'lerin RESTORE tuşu içiçe birkaç tane NMI yaratıp programın kafasını karıştırabilir. Böyle durumlarda da RESET komutunu kullanmanızı tavsiye ederiz. Çünkü bu komut hiç olmazsa bilgisayarı belli bir duruma getiriyor. Örnekleme seviyelerini renklerle de belirleyebiliriz. Bunun için örnek olarak COLDEFO komutunu vererek dört değişik gri tonunu istediğimiz renk tonları olarak belirleriz. Şimdi HEAR SPEED 1 komutunu verdiğinizde, girilen sesi dinleme durumuna geçersiniz. Bu işlem sırasında ekran kapanır (kasetten yükleme yapılır gibi) ve tanımlanmış dört renkten birini gösterir. Trimpotu en soldaki pozisyonuna getirip, yavaşça en sağdaki pozisyonuna doğru hareket ettirirseniz, demin tanımladığımız dört renk aynı sırayla ekranda görünür. Şayet gerçekten bu durum gerçekleşirse devreniz kusursuz çalışıyor demektir. Tam kalibrasyonu yapmak için trimpotu bu sefer oldukça yavaş olmak üzere tekrar sola çevirin. Kalibrasyonu gözle izleyin ve 3. renkten, 2. renge (bu örnekte griden koyu griye) geçtiği anda bırakın. Bu sizin kalibrasyon (sıfır) noktanızdır. Başka bir nokta da kalibrasyonu çok abartmayın. Mesela çok uğraşıp bu iki renk arasındaki çok hassas bir geçiş bölgesi bulabilirsiniz. Bu geçiş bölgesi o kadar hassastır ki, digitizer'in girişinde hiçbir sinyal olmasa da ekranda her iki renk gidip gelir. Böyle bir durum aşırı hassaslıktan başka bir şey değildir ve her şeyin aşırısı gibi o da zararlıdır. Böyle bir ayarla yapacağınız örnekleme sırasında bol bol gürültü elde edersiniz, bilhassa ortamda hiçbir şey yokken. Girişi dinleme modunu bitirmek için boşluk tuşuna basın. Böylece bilgisayar normale döner. SESİN ÖRNEKLENMESİ Speech-Basic'in 4 KByte uzunluğunda bir program olduğunu söylemiştik. Bu program kendi başına hafızanın $0800'den $1800 adresine kadar kaplar. Bunun hemen arkasından Basic program ve değişkenleri için kullanılan hafıza gelir. Bu hafıza bölgesinin bir sonu vardır ve işletim sisteminde HIMEM diye adlandırılır. Normal olarak bu sınır $A000 (40960) adresinde bulunur. İsterseniz bu sınırı aynı isme sahip (HIMEM) komut ile istediğiniz bölgeye (mantıklı olmak koşuluyla) oturtabilirsiniz. Speech-Basic, ses bilgilerini HIMEM değerinden başlayıp hafızanın (aşağı, yukarı) son adresine kadar saklıyor. Böylece HIMEM değerini değiştirmekle, aynı zamanda hafızanın BASIC ve ses bilgileri arasında paylaşım oranını da belirliyorsunuz. Direkt modda yapılan çalışmalarda ne kadar çok ses hafızası ayrılırsa o kadar rahat bir çalışma yapıldığı gözlenmiştir. Örneğin HIMEM $1A00 aşağı yukarı 57.5 hafızayı ses bilgileri için rezerve ediyor. Ayrıca BASIC'te yazabileceğiniz kontrol programı için henüz 512 Byte'lık yeriniz mevcut. Diyelim ki o anlık hafıza paylaşımını bilmiyorsunuz ve bu bilgi size gerekli. Böyle bir durumda MEM komutunu kullanarak söz konusu bilgiyi ekranda görebilirsiniz.
Gerçek bir çalışma için dört adet örnekleme değerlerine karşılık gelen, gerek ses değerleri, gerekse renk değerlerini belirlemeniz ge- Örnek olarak başlangıçta COLDEFO,11,12,15 ve VOLDE-
FO,5,10,15 komutlarını kullanın. Tecrübe değişik kombinasyonlar bulursanız bunları da kullanabilirsiniz. Diyelim ki WALKMAN ile çalışıyorsunuz. Devre ile ses kaynağı (burada walk- Man) arasındaki bağlıntıyı kurun ve kaseti istediğiniz bir yere sarın. Walkman'in üzerinden sesi ve bas sesleri sıfıra indirin (sonuna kadar kısım). Şimdi
HEAR:RECORD SPEED 1
veya F4 tuşu, verin, Bilgisayar gene dinleme durumuna geçecektir. Fakat bu sefer işlem daha ciddi olarak gerçekleşecektir. Şimdi teybi (walkman'i) başlatın ve ses şiddetini yavaş yavaş açın. Bu arada renk bantlarının ekran üzerindeki dağılımına dikkat edin. Gözlemler soelde edilen tecrübeye göre en iyi sonuç tüm renklere ait bantların ekranda aşağı yukarı aynı sıklıkta bulunduğu ses şiddeti değeri sırasında elde edilmektedir. Bu arada bas seslerin şiddeti ile oynayın. Bu arada dikkat çeken bir olay bas sesleri belli bir değerin üstüne çıktıklarında tüm sesi örttükleri. Tüm bunları gözönünde bulundurarak bu parça ile ilgili ses ve bas şiddet ayarlarını optimal sonucu ekle edene kadar yapın. Optimal ayarı elde ettiğiniz anda bandi tekrar aynı yere sarıp bir daha başlatın. Şimdi boşluk tuşuna bastığınızda örneklenen sesler hafızaya kaydedilmeye başlanacaktır. Aşağı yukarı 14 saniye sonra hafıza dolacak ve bilgisayar tekrar bilgisiyar tekrar ekranını açıp mesaj verecektir. Hafızayı okuma işlemi ni, ara bir yerde durdurmak istediğinizde ise yapacağınız sadece (RESTORE) tuşuna ((RUN-STOP)'suz) basmak. Böylece direkt moda geri dönerve hafızaya okuma işleminin kesildiği adresi belirten mesajı alırsınız. Eğer yapacağınız kaydın tüm hafızayı doldurmasını istemiyorsanız, o zaman RECORD komutundan sonra kayıt sırasında doldurması için bir adres aralığı vermeniz gerekiyor. Bunun kullanımı ise şöyle:
RECORD FROM TO bit.adr.SPEED x
Burada başlangıç adresi ve bitiş adresi HIMEM değerinden büyük olmalı ve tabii ki bitiş, başlangıçtan ileride olmalı. En son parametre x ise 0'dan büyük olması dışında sınırlamaya tâbi değil. Örneklenmiş sesin geri verilmesi PLAY (ya da F3 tuşu) komutu ile yapılıyor. Buna ait parametrelerin kullanımı ise RECORD komutundakilerin aynı. Detaylara daha ileride değineceğiz. DİSKET İŞLEMLERİ Demin de belirttiğimiz gibi, Speech-Basic her iki ROM'un altındaki RAM'i oldukça yoğun bir biçimde kullanıyor. Ortaya ufak bir sorun çıkıyor tabii ki. İşletim sistemindeki standart LOAD ve SAVE rutinleri bu bölgeler içinde kullanılamıyor. Bu yüzden söz konusu rutinler bir kere daha yazılmış durumda. Yeni komutlarımızın adları BLOAD ve BSAVE ve sadece RAM'e hitap ediyorlar. Her iki emir sadece disket işlemleri için kullanılıyor. Zaten başka bir türlüsü de saçma olurdu! Düşünün bir kere, 60 KByte'ı tek parça olarak kasete saklamışsınız. Ses bilgileri için ayrılmış hafıza bölgesini tümüyle diskete saklamak için sadece “isim” demeniz yeterli. Bu komutu tüm parametreleri ile görmek istersek:
BSAVE"'isim”, sürücü no.su FROM başl.adr. TO bit.adr.
En sondan başlayarak, başa doğru tüm parametreler istenilse verilmeyebilir. Böyle bir durumda o parametre için bilinen belli bir değer kullanılır. BLOAD komutunun parametreleri ile birlikte kullanımı BSAVE komutu ile aynı. Burada kullanılan adres, disketten alınan bilginin hangi adreslerin arasına gideceğini belirtir. Bitiş adresi bir sınırı temsil eder ve yükleme sırasında hiçbir türlü aşılmaz. Mesela, yüklenen dosya, belirtilen aralıktan daha büyükse, düsyanın geri kalan kısmı dikkate alınmaz ve yükleme işlemi orada kesilir. Böylece, yükleme işlemi üzerinde de kesin bir kontrol elde edilir.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 60
SORUNLARINIZ... BİLMEDİKLERİNİZ... Ses Digitizer
B. seferki devremiz, çevreden gelen ses bilgilerini dijtale (bilgisayarın anlayacağı biçime) çevirmeyi amaçlayor. Donanım gereksiimi, benzeri devrelere göre oldukça az olan bu ayki uygulamamızın bir diğer özelliği de oldukça ekonomik olarak gerçekleştirilebilmesi. Vereceğimiz devre ve kullanım programı (Basic-extension şeklinde) yardımıyla, çevreden gelen birçok ses sinyalini, mesela radyodan, rahat bir biçimde bilgisayarın hafızasına okutmanız sağlanıyor. Hafızanın alabileceği ses bilgisi miktarı, kullanılan örnekleme hızına bağlı olarak değişiyor. Kullandığınız örnekleme hızı, aynı zamanda çevrilen bilginin ses kalitesini de belirliyor. Yüksek bir ses seçerseniz, örneklemenin kalitesi yükseliyor, fakat hafızayı daha süratli harcıyor. Kullanılabilecek tüm RAM bölgesini bu iş için da, en yüksek hızda 14, en düşük hızda 45 saniye örnekleme yapmanız mümkün. Ses örneği bilgisayarın hafızasına alındığında, bu örnek belirli işlemlerden geçirilip işlenip bilgisayarın ses kanallarından verilebiliyor. RAP, ECHO veya HALL efektlerine benzer efektler elde etmek de mümkün. Bunun için geri verme frekansı ile oynamak veya geri verme hızını değiştirmek veya örneğin geri verilmesi bitmeden tekrar başlatmak gibi teknikler kullanılıyor. Bütün bunları, gerek ufak bir. yardımcı BASIC programla, gerekdirekt modda elden vereceğiniz ko- Mutlarla yapmanız mümkün. Herhalde çoğunuz, tanıtım kısmını burada bitirip, olayın teknikkısmına geçmemizi istiyorsunuz. Peki öyleyse başlıyoruz!.. Speech-Basic, bir adet iki bitlik ses digitizer devresi ve 4 KByte uzunluğunda Basic-extension (Basic'e özel bir konuda bazı özel komutlar eklemek suretiyle daha zengin bir Basic yaratmak) dan oluşuyor. Her ikisinin birlikte uyumlu çalışması sonucunda gerek sesleri gerek müzik parçalarını rahat bir biçimde örneklemeniz ve işlemeniz sağlanıyor. Speech-Basic için kullanabileceğiniz 57.5 KByte'- lik maksimum hafıza miktarı yüksek hızdaki örneklemede bile 14 saniye yetiyor. Bu süreyi, ses kalitesinden fedakârlık ederek 45 saniyeye kadar uzatmanız mümkün. En kötü durumda bile ses kalitesi, SAM ses synthesizer programından daha yüksek!
ÇALIŞMA PRENSİBİ Algıladığımız ses, havada oluşan 20 ila 15000 Heriz frekanslı dalgalardır. Bilgisayarın bu dalgaları algılayabilmesi için özellikle anları bilgisayarın algılayabileceği bir şekle sokmak lazımdır. Havadaki ses dalagalarını algılayan ilk birinin bir mikrofondur. Bu ünite, algıladığı hava basıç değişimlerini (sesin başka bir tanımı) çok zayıf elektrik sinyallerine dönüştürür. Digitizer denilen ünitenin görevi ise kesiksiz ve seviyesiz olarak gelen elektrik sinyallerini seviyeli olarak dijitale çevirmektir. Dijital ile analog arasındaki farkı göstermek için Şekil 3'ü yayınladık. Digitize'in çözünürlüğü ne kadar yüksekse sinyal o kadar çok seviyeyle temsil edilir. Yani, daha açık olarak belirtirsek ses kalitesi o kadar yüksektir. Tabii bu durumda kullanılacak hafıza miktarı dâ artacaktır. Bizim devremiz iki birlik çözünürlüğüyle dört seviyeyi temsil edebiliyor. Bu sayının, bilgisayarın hafıza kapasitesinin kullanımı ile, kulağın istediği ses kalitesi arasındaki dengeyi kurduğu inancındayız.
Digitizer devremizi, bir walkman'ın, radyo-teyp sisteminin veya Müzik setinin kulaklık çakışına bağlayabilirsiniz. Devreye ulaşan ses sinyali üç adet işlemsel kuvvetlendirici ile dört değişik seviyeye ayrılir ve bu seviyelerle karşılaştırılır. Seviye karşılaştırmalarının temiz bir dijital seviyeyi temsil etmeleri için her işlemsel kuvvetleri kışına birer ters çeviren tetikleyici kapı konulmuştur. Geriye kalan son çipin içindeki mantıksal kapıların görevi, karşılaştırmalar sonunda elde edilen üç adet sinyali iki bitlik dijinal bilgi olarak toparlıyor. Bu şekilde dört değeri temsil edebiliyoruz. Aşağıda sırasıyla, her değeri gösteren iki bitlik çıkışları ve karşılaştırmada elde edilen ara değerleri bulacaksınız.
1. değerde bitler:00; karşılaştırma: 111 2. değerde bitler:01; karşılaştırma: 110 3. değerde bitler:10; karşılaştırma: 100 4. değerde bitler:11; karşılaştırma: 000
Devremiz oluşturulan bu iki biti 2 numaralı port'unun UP (yukarı) ve DOWN (aşağı) kanallarına gönderiyor. Buradan da bu iki bit saniyede 18000 kereye kadar okunabiliyor. Giden bilgilerin dördü biraraya getirilip bir Byte olarak paketlenip hafızada saklanıyor. Sesin daha sonra geri verilme işlemi SID çipinin $D418 54272 54248 4 24) adresli ses şiddeti ayarlama register'i üzerinden yapiliyor. Söz konusu register'in bir özelliği, herhangi bir ses kanalı açık olmasa da, buranın değeriyle oynayarak bu register'i dijitalden analoga çeviren bir ünite olarak kullanabileceğimiz. Ses geri verilirkensadece bilgisayarın ses kanalları kullanıldığından devrenin takılı olmasına gerek yoktur. Yani siz bir sesi kendi sisteminizle örnekleyip başkasına bir program olarak gönderebilirsiniz. O da, digitizer devresi olmamasına rağmen sesi dinleyebilir. Programın sağladığı bir avantaj, elde edilen değişik örnekleme seviyesine karşılık gelecek ses şiddeti değerini (0'dan 15'e kadar) sizin belirlemeniz. En basit kombinasyon tipleri olarak 6 değişik lineer kombinasyonu gösterebiliriz. (Hepsinin O olması da dahil, bu durumda geri verilen ses duyulmaz.) Bu lineer kombinasyonlar:
olarak gösterilebilir. İsterseniz daha değişik ve lineer olmayan kombinasyonlar da deneyebilirsiniz. Elde edeceğiniz neticeleri beğenmenize bağlı sadece. İsterseniz bu kombinasyonları dinamik (ses geri verilmekte iken) olarak da değiştirebilirsiniz. Böylece demin yukarı. da sözünü ettiğimiz HAH ve ECHO efektiflerini elde etmeniz daha da kolaylaşır.