Commodore sayı 21, sayfa 39

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 39

e SAY SizK KAAN vor Aİ 20 | 01 | ExPANSION 40) » | ! co | RAM | | TİME CLOCK ( | A 1 CART cRosS- RESERVED ROM Fa |

Ses kanalları, gerektiğinde 68000'in kendisi tarafından doğrudan kontrol edilebiliyor. Böyle bir durumda, ses kanalları üzerinde tam anlamıyla kontrol söz konusu. Fakat, bu sefer 68000'i başka işler yapmaktan alıkoyuyorsunuz. Esas kullanılan yöntem ise daha farklı bir yöntem. Sesi elde etmek için gerekli ses DMA kanallarını açarsınız, bu kanal hafızadan bir tablodan çıkarılması gereken dalga türünün bir veya birkaç periyodunu içeren bilgileri alır ve sesi oluşturur. Böylece 68000 ana işlem ünitesi, ses ile

2MEG sız çalışma kabiliyetine sahip oldukları için örneklemeli sesleri verirken bile AMIGA sistemi tam hızında çalışmaya devam ediyor. Örnekler kanallardan verilirken, ses şiddetini değiştirmek veya geri verme frekansını değiştirmek gibi değişiklik olanakları da mümkün. Sistemin ROM kısmında bulunan “ses kontrol rutinleri” sayesinde bu özellikleri daha rahat ve daha yüksek ve kolay anlaşılır bir seviyede kullanmamız sağlanıyor.

Dört adet ses kanalı 0'dan 3'e kadar numaralanmış durumda, bunların çıkışları analog sinyallerine çevrilip ve alçak geçiren filtreler yardımıyla süzülüyor. Daha sonra kanallar ikişerli gruplar halinde (0 ve 3, 1 ve 2) karıştırılıyor ve iki adet, stereo kullanabilen, ses grubu oluşturuluyor. Kullanılan filtrelerin kesim frekansı 5.5 ila 7.5 kHz civarında bulunduğu için daha yüksek frekanstaki sesleri geçirmiyor. Bu yöntem 'aliasing' adı verilen bozulmaları (distortion) engellemekte kullanılıyor. Bu bozulma tipi, genelde düşük hızda örneklenmiş sesleri geri çalarken meşgul olmak zorunda kalmaz. Amiga'da her ses DMA kanalı, kendine ait ses şiddet registeri ve ses verileri (bu veriler her defasında bir word —2 byte olarak alınıyor ve çift adresli bellek birimlerinde bulunması gerekiyor.) göstergeç registeri içeriyor. Bunlardan başka bir de periyod registeri var. Bunun işlevi ses verilerine ait peş peşe iki byte'ın kullanımı arasında geçmesi gereken zaman. Bu register, her 279 ns sürede bir eksiltiliyor. Sıfıra ulaştığı zaman, bir sonraki veri byte'ını kullandırıyor ve ilk başlangıç değeriyle tekrar yükleniyor ki tüm işlemler periyodik olarak sürebilsin. Veri tablosu göstergeci son veri byte'ına ulaştı mı, tekrar veri bloğunun başlangıç adresiyle yükleniyor. Böylece sesin, (örneklenmiş dalga biçiminin) başka kimsenin karışması olmadan devamlı olarak, ta ki tümüyle susturulana kadar çalınması sağlanıyor. Sıfır ve iki numaralı ses kanalları, beraber çalıştıkları diğer kanalı modüle etme özelliğine de sahipler. (Sıfır biri, iki ise üçü modüle eder.) Şayet bir kanal bir diğerini modüle etmek için kullanılırsa, buna ait veriler artık ses örneklemesi için değil de, üzerinde modülasyon yapılan kanalın ses şiddeti ve periyodunu belirlemek için kullanılıyor. Böylece bu değerlerle oynayarak, ya genlik modülasyonu, ya frekans modülasyonu, ya da her ikisini birden yaratabiliyorsunuz.

19. SES YAZILIMI

Sistem ROM'unda dört tip ses altprogramı bulunuyor. İlki, kanal rezervasyon rutinleri. Ses oluşturmak istediğinizde bu altprogramı çağırıyorsunuz, o da size bir kanalı rezerve ediyor ve o kanalı kullanmanızı sağlıyor. Bu arada o kanalın numarasını belirtmiyorsunuz ve hangi numaralı kanalın size verildiğini bilmiyorsunuz bile. Bu yöntemle, aynı anda dört taneden fazla kanal açtıysanız, bunların en yüksek önceliğe sahip dört tanesi gerçek kanalları kullanma imkanına kavuşacaktır. Diğerlerinin gerçekte hiçbir çıkışı olmayacaktır. Ta ki kanallar boşalıp onlara sıra gelinceye kadar veya öncelik değerleri yükseltilinceye kadar. İkinci tip altprogramlar, DMA kontrol programları ile ses DMA kanallarını, register'leri değiştirerek ve ses veri tablolarını oluşturarak kontrol ediyor. Ek olarak, herhangi bir kanalın başka bir programa belli bir durumu belirleyen sinyal biti göndermesini sağlayabiliyorsunuz. Bu da başka bir işlemi tetikleyebilir. Diyelim ki ses kanalı, ses veri tablosunu evvelden belirlenen bir sayıda tekrarladı; bu olay asıl programa, bu sinyal yardımıyla bildirilebilir. Üçüncü tip altprogramlar, oldukça akıllı işlemler yapabiliyor. Bunlar sesin şiddetini, herhangi bir notanın gereksinimine göre değiştirebiliyorlar. Bu altprogramlar dört değişik parametreye gereksinim duyuyorlar. Bunlar, daha evvel de duymuş olabileceğiniz ADSR (attack, decay, sustain, release) parametrelerinden başkası değil. Bu parametreler, sırasıyla sesin maksimum şiddete hangi sürede ulaşması gerektiği; maksimum değerin ne olması gerektiği; bu değere ulaştıktan sonra, notanın esas şiddetine ne kadar sürede düşeceği; bu esas şiddetin ne olacağı; ve nota bitirildikten sonra sıfır seviyesine hangi hızda düşeceğidir. Bu parametreleri bir diyagramda (zaman, ses şiddeti diyagramı) gösterirsek, dört adet doğru parçasına ihtiyacımız olacaktır. AMIGA, bu diyagramı, doğruların eğiminden ve doğruların bitişindeki ses şiddeti değerinden algılıyor. Ses donanımının yaptığı gibi, bu tip altprogramlar da sesin (burada notanın) bittiğini belirten bir sinyal gönderebiliyor. Ses programları kütüphanesinde bulunan bir programdan da bahsetmeden geçemeyeceğiz. Bu “text-to-speech” diye adlandırılan ve yazıyı, konuşmaya çeviren bir program. Bu program ROM'da bulunmuyor ve gerektiği zaman diskten yükleniyor ve işi bittiğinde atılıyor. Yani tipik geçici tipte kütüphane (library) programı. Tabii, isterseniz bu programın, bilgisayar açık kaldığı sürece kalıcı olmasını sağlayabilirsiniz. Gelelim, programın kendisine. Program, kendisine verilmiş herhangi bir İngilizce metni, değişik frekanslarda, vurgularda ve hızlarda okuyabiliyor. Sonuçta meydana gelen konuşma bu programın şimdiye kadar görülen genel konuşma programları içinde, en anlaşılır olanlarından biri olduğunu gösteriyor. Ses biraz fazlasıyla vurgulanmış olarak algılanmasına karşın, kapalı gözlerle dinlenildiğinde bile konuşulan metin olduğu gibi anlaşılabiliyor. Bu tip genel konuşma programlarının yüzde sekseni, bu testi geçememiş olduğunu göz önüne alırsak, AMIGA'nın İngilizceyi oldukça iyi konuştuğunu söyleyebiliriz.

Klavyeyle gezinmek için ← ve → tuşları.