Ses İşleme Birimi (APU) adı verilen özel bir bileşen bu hizmeti sağlar . Ricoh, muhtemelen hem CPU hem de APU'nun lisanssız klonlanmasını önlemek için bunu CPU çipinin içine yerleştirdi.
Fonksiyonellik
Bu ses devresi genellikle Programlanabilir Ses Üreteci (PSG) olarak adlandırılır, bu da belirsiz bir şekilde yalnızca önceden tanımlanmış bir dizi dalga formu üretebileceğini ima eder, bu durumda çoğunlukla doğrudur. APU, ses verilerini beş ses kanalı üzerinden sıralar - her biri belirli bir dalga formu veya sinyal için ayrılmıştır. Her kanal, dalga biçiminin perdesini, sesini, ses seviyesini ve/veya süresini değiştiren farklı özellikler içerir. Bunlar sürekli olarak karıştırılır ve çıkış ses sinyali aracılığıyla gönderilir.
APU'nun işlevselliği bellek adresleri aracılığıyla ortaya çıkar, CPU Program ROM'da bulunan müzikle ilgili verileri okur ve APU'yu buna göre programlar.
Ayrıca, özellikle Famicom modeli, karışık ses sinyalini kartuşa gönderen kartuş pinleri sağlar, böylece ikincisi ekstra kanallar (ek çipler gerektirir) ile karıştırabilir .
Şimdi APU'nun sağladığı beş kanalın üzerinden geçelim :
Nabız

(Video) Pulse 1 kanalının osiloskop görünümü.

(Video) Pulse 2 kanalının osiloskop görünümü.

(Video) Tüm ses kanallarının osiloskop görünümü.
İlk iki kanal pulse dalgaları üretir . Duyulduğunda, çoğunlukla melodi veya ses efektleri için kullanılan çok belirgin bir bip sesi sergilerler. İlgili sıralayıcı, darbe genişliğini değiştirerek üç tip darbe dalgası üretebilir (diğer adıyla görev döngüsü). Devreler ayrıca bir sweep ünitesine (perdeyi bükmeye izin verir) ve zamanla ses seviyesini düşürmek için bir envelope generator bağlıdır (diğer adıyla decay).
Çoğu oyun bir pulse kanalını melodi için, diğerini ise eşlik için kullanır. Bir oyunun bir ses efekti çalması gerektiğinde, eşlik kanalının efekti çalmak için değiştirildiğini ve ardından eşlik etmeye geri döndüğünü sık sık göreceksiniz. Bu, oyun sırasında melodinin kesintiye uğramasını önler.
Darbe dalgalarının bu nesil konsolların simgelerinden biri olduğunu söylemek doğru olur. Bunun benimsenmesinin tamamen maliyet etkin nedenlerle yapıldığını varsayıyorum: (sınırlı) CPU bir seferde yalnızca çok fazla veri işleyebilir ve pulse dalgaları basit melodileri çalmak için çok fazla parametre gerektirmedikleri için idealdir (bu da CPU döngülerini diğer işlemler için serbest bırakır).
Triangle

(Video) Triangle kanalın osiloskop görünümü.

(Video) Tüm ses kanallarının osiloskop görünümü.
APU'nun rakipleriyle karşılaştırıldığında öne çıkan özelliklerinden biri triangle (üçgen) dalgalar üretebilmesidir. Bunlar genellikle melodi için bir bassline olarak kullanılır. Dahası, perdesini dramatik bir şekilde değiştirerek perküsyon için de kullanılabilir.
APU'nun bu tür dalgalar için ayrılmış bir kanalı vardır. Sahne arkasında, özel bir sıralayıcı bir üçgen sinyali oluşturmak için 32 döngü alır , bu sınırlama ortaya çıkan üçgen dalga formunun bir adım merdiveni şeklini almasına neden olur.
Diğer tarafta, ilgili devre ses seviyesi kontrolü sağlamaz. Her halükarda, bazı oyunlar mikserin ses kontrolüyle oynayarak başka yollar buldu.
Ses

(Video) Noise kanalının osiloskop görünümü.

(Video) Tüm ses kanallarının osiloskop görünümü.
'Ses' kavramı, herhangi bir desen veya düzeni takip etmeyen bir dizi dalga formuna atfedilir. Buna karşılık, kulaklarımız bunu beyaz statik olarak yorumlar. Bunu söyledikten sonra, APU farklı ses türlerini çalabilen bir kanal tahsis eder.
Sahne arkasında, ses üreteci bir OR kapısı tarafından rastgele susturulan bir zarf üretecine (Pulse kanalına benzer) dayanır. Susturma koşulu, bir geri besleme döngüsüne bağlı 15 bitlik bir kaydırma yazmacının değerine bağlıdır. Sonuç olarak bu, devrenin sözde öngörülemeyen desenlere, ve dolayısıyla sese sahip bir sinyal vermesine neden olur.
Kontrol açısından, 4 bit zarf üretecinin periyodunu değiştirir ve bir bit kaydırma kaydedicisinin 'Modunu' değiştirir. Geriye 32 ses ön ayarı kalıyor. Bu ön ayarların yarısı (16) temiz statik, diğer yarısı ise robotik statik üretir.
Genel olarak, oyunlar ses kanalını perküsyon veya ortam efektleri için kullanır.
Örnek

(Video) Örnek kanalın osiloskop görünümü.

(Video) Tüm ses kanallarının osiloskop görünümü.
Örnekler, tekrar çalınabilen kaydedilmiş müzik parçalarıdır. Gördüğünüz gibi, örnekler tek bir dalga formuyla sınırlı değildir, ancak çok daha fazla alan tüketirler.
APU'nun örneklere ayrılmış bir kanalı vardır. Burada örnekler 7 bit çözünürlük (0 ile 127 arasındaki değerlerle kodlanır) ve ~15,74 kHz örnekleme hızı ile sınırlıdır . Bu kanalı programlamak için, oyunlar 7 bitlik değerleri yayınlayabilir (bu da çok fazla döngü ve depolama alanı çalar) veya yalnızca bir sonraki örnek ile bir önceki arasındaki değişimi kodlamak için delta modülasyonu kullanabilir.
APU'daki delta modülasyonu uygulaması yalnızca 1 bitlik değerler alır, bu da oyunların, sayaç her devreye girdiğinde örneğin yalnızca 1 arttığını veya azaldığını söyleyebileceği anlamına gelir. Dolayısıyla, aslına uygunluk pahasına, delta modülasyonu oyunları APU'ya sürekli değerler aktarmak zorunda kalmaktan kurtarabilir.
Bu kanalı programlamak daha fazla alan ve CPU döngüsü gerektirdiğinden, oyunlar normalde tekrar tekrar çalınabilen küçük parçaları (davul örnekleri gibi) depolar. Her ne olursa olsun, NES'in ömrü boyunca çok sayıda geliştirici bu kanal için akıllıca kullanımlar buldu.
Sırlar ve sınırlamalar
APU bir plak, kaset veya CD'nin kalitesiyle karşılaştırılamazken, programcılar NES'in modüler mimarisi sayesinde kapasitesini genişletmenin yollarını buldular.
Ekstra Kanallar

(Video) Castlevania III'ün osiloskop görüntüsü (ABD/Avrupa, 1989).

(Video) Akumajō Densetsu'nun (Castlevania III'ün Japonca versiyonu, 1989) osiloskop görünümü.
Famicom'un ses genişletme için özel kartuş pinleri sağladığını hatırlıyor musunuz? Castlevania 3 gibi oyunlar bu avantajdan yararlandı ve Konami VRC6 adında ekstra bir çip paketledi, bu da karışıma iki ekstra darbe dalgası ve bir testere dişi dalgası ekledi.
Oyunun Japon ve Amerikan versiyonları arasındaki farkı gösteren iki örneğe bir göz atın (ikincisi, ses genişletme özellikleri sağlamayan NES varyantında çalışır).
Tremolo

Video - Final Fantasy III'ün (1990) osiloskop görünümü.
Kartuş maliyetlerini artırmak yerine, bazı oyunlar daha fazla kanal eklemek için teknolojiden ziyade yaratıcılığa öncelik verdi.
Bu örnekte Final Fantasy III, ekstra kanal hissi vermek için tremolo efektlerini kullanma fikriyle ortaya çıkmıştır.
Daha rafine bir gözlem
Şimdi APU'nun neler yapabildiğine bir göz attığınıza göre, sesin nasıl davrandığını gözlemlemek için size alternatif bir yöntem göstereyim. Bu sadece APU hakkında zaten bildiklerinizi tamamlamakla kalmayacak, aynı zamanda daha objektif bir inceleme sağlayacaktır, özellikle de artık kulaklarınıza güvenmediğinden.
Her şeyden önce, ses teorisine hızlı bir girişle başlayalım.
Fourier Analizi ilkeleri sayesinde, duyduğumuz her bir sesi farklı frekans ve genliklere sahip sinüs dalgalarının bir toplamına ayrıştırabiliriz . En bas sinüs dalgasına (en düşük frekansta) fundamental ve diğerlerine overtonlar denir. Temel dalgayı ve üst tonlarını eklerseniz, orijinal sesi geri alırsınız. Bununla birlikte, tanınabilir bir perdeye sahip seslerde, çoğu (hepsi olmasa da) üst tonun temel frekansın katları olan frekanslara sahip olduğunu göreceksiniz. Bu nedenle, bu üst tonlara harmonikler adı verilir.
Pusle, triangle ve testere dişleri gibi dalga biçimleri, içerdikleri harmonikleri belirleyen bir formülü takip ettiğinden, harmonikler bu bölümde tekrar eden bir konu haline gelecektir. Aksi takdirde, bu dalga biçimleri 'mükemmel' şekillerinden sapabilir.
Spektrogramlara giriş
Sinüs dalgaları artık herhangi bir sesi oluşturabilecek temel bileşen olduğundan, artık duyduğumuz sesleri sinüs dalgalarına göre analiz edebiliriz. Şimdi, her türlü veri analizi için, büyük miktarda bilgiyi düzenlemek üzere bir grafik çizmekten daha kullanışlı bir şey yoktur. Ses analizi durumunda, Spektrogramlarımız var. Bunlar, bir ses örneğinin tüm bilgilerini tek bir grafikte kodlar. X ekseni zamanı (saniye cinsinden), Y ekseni bu süre zarfında üretilen sinüs dalgalarının frekanslarını (Hz cinsinden) ve Z ekseni (her noktanın renk parlaklığı) her frekansın gücünü/ses yüksekliğini (desibel cinsinden) gösterir.

Video - Bir Ses kanalının altı saniyesini görselleştiren spektrogram örneği.
Bu örnekten de görebileceğiniz gibi, her yatay çizgi (diğer bir deyişle nokta dizileri) bir sinüs dalgasına karşılık gelir (en düşük temel, diğerleri ise harmoniklerdir) ve parlaklıkları genliği gösterir. Bunu göz önünde bulundurarak aşağıdaki bilgileri çıkarabiliriz:
- Zamanla yatay çizgiler büyük ölçüde yer değiştirme eğilimindedir. Pulse kanalının ses aralığı değişiyor.
- Her notanın başlangıcı gürültülüdür ( parlak noktalar) ve ardından hızlı bir sessizlik gelir. Bu APU'nun iş başındaki envelope kontrolünün göstergesidir.
- Dahası, bozulma süresinin sonunda parlak bir dikey çizgi ortaya çıkar. Oldukça kısa olduğu için kolayca duyulmuyor ama her durumda bu bir gürültü (kısa patlama sesi) ve bunun APU'nun bir eksikliğinden kaynaklandığını düşünüyorum.
- Bir notayı 0,25 saniyeden daha uzun süre tutmak vibrato ortaya çıkarır (Y ekseninde sürekli dalgalanmalar). Bunun kasıtlı mı ( sweep fonksiyonunu kullanarak) yoksa APU'nun olumsuz bir etkisi mi olduğundan emin değilim.
Bu gözlemlerin çoğunun sadece basit bir ses duyarak kolayca elde edilemeyeceğine dikkat edin, bu bölümün yazılmasının nedeni budur.
APU'nun Çizilmesi
NES'in APU'sunu incelemek için, önceki örnekleri kullanarak her biri APU'nun bir kanalına karşılık gelen beş spektrogram derledim. Bunların yanı sıra, verilerin neyi gösterdiğini çözme girişimimi de bulacaksınız.
Başlamadan önce, verileri hatasız (ekstra gürültü gibi) toplayabilmek için bazı ödünler verdiğimi itiraf etmeliyim. Kayıtlar, PSG tabanlı ses yongalarının emülasyonu ile ilgili temel bir sorunu çözmek için band sınırlı sentez kullanan 'towave' adlı bir Windows programı kullanılarak elde edildi. Basitçe, darbeler, üçgenler ve testere dişleri sonsuz harmoniklerden oluşur. Ancak bu, 44.1 kHz örneklerle sınırlı olan modern ses kartlarıyla iyi bir uyum sağlamaz. Bu nedenle, ses kartının limiti dahilinde doğru harmonikleri seçmek için 'band-limited synthesis' (bant sınırlı sentez) adı verilen bir teknik kullanılır. Sonuç olarak, bu teknik performans, doğruluk ve örtüşme önleme arasında uygun bir denge sağlar. Bununla birlikte, veriler analog muadiliyle %100 aynı olmayabilir (aksine, kayıt ekipmanından kaynaklanan ses gibi başka sorunlar da ortaya çıkacaktır), ancak kabul edilebilir bir derecede olduğuna ve en önemlisi, makalenin bu bölümü için işi yaptığına inanıyorum.
Bununla birlikte, analize devam edelim.
Nabız

Pulse 1 kanalının spektrogramı.
Teori, bir darbe tonunun yalnızca tek harmonikler içerdiğini söyler. Başka bir deyişle, temel, üçüncü harmonik, beşinci ve benzeri ile birleştirilir. Dahası, her bir harmonik temelden uzaklaştıkça genliği azalır. Genlik formülü genlik = 1 ÷ harmonik sayısı şeklindedir.
Bu nedenle, spektrogramdaki her bir harmoniğin parlaklığının Y ekseninde yükseldikçe nasıl azaldığına dikkat edin. Bununla birlikte, APU'nun darbe dalgaları da her harmonik sayısında artan ve yukarıda bahsedilen vibrato etkisini sergiliyor gibi görünmektedir. Dahası, spektrogramın herhangi bir sesten arındırılmış olması gereken alanları (muhtemelen gürültü ve diğer kusurların sonucu olarak) sessiz tonlar içermektedir.
Triangle

Triangle kanalının spektrogramı.
Tringle dalga da tek harmoniklerden oluşur ancak genlikleri daha hızlı azalır (burada genlik = 1 ÷ harmonik sayısı² ).
Ancak burada gösterilen bu değildir, APU'nun ürettiği basamak merdiven şeklindeki üçgenler ekstra harmoniklere ve artan genliklere yol açar.
Ses
Doğal olarak, gürültü harmonik kurallarına uymaz ve tüm frekans alanını rastgele doldurabilir, dolayısıyla kolayca tanınabilir bir perde yoktur.
Bununla birlikte, zaman çizelgesini takip ederek APU'nun sağladığı ve her biri farklı bir dizi ton sergileyen farklı gürültü ön ayarlarını ayırt edebilirsiniz.
Örnek
Önceki kanalların aksine, örnek kanalı yalnızca geliştiricinin APU'ya beslediği düşük çözünürlüklü kaydı oynatır. Örnekte bir davul seti çalındığı düşünüldüğünde, spektrogramda tanımlanabilir herhangi bir muamele göremiyorum (beyaz gürültüye benzerlikler dışında).
Sawtooth

VRC6'nın Sawtooth kanalının spektrogramı.
Bonus olarak, VRC6 genişlemesinden Sawtooth kanalına da göz atalım. Başlangıç olarak, mükemmel bir Sawtooth dalgası tüm harmoniklerden oluşur ve her biri azalan genlikler sergiler (burada genlik = 1 ÷ harmoni sayısı ).
Bu, dijital ekipmanlar için oldukça önemli bir gerekliliktir ve doğal olarak bir oyun kartuşu için karşılanamaz (böyle bir mükemmelliğe ihtiyacı bile olmayabilir!). Dolayısıyla, APU'nun üçgen dalgalarına benzer şekilde, VRC6 Testere dişi dalgalarını 7 döngüde sıralar (ve böylece benzer basamak merdiveni efektleri üretir).
Sonuç olarak, ilgili spektrogram çok dağınıktır, VRC6'nın yaklaşım teknikleri dalgayı birçok yerde ekstra harmoniklerle doldurur.
Sonuç
Görünüşe göre NES'in sentetik dalga formları teoride belirtildiği gibi şekillendirilmiş değil. Bu APU'nun hatalı olduğu anlamına mı geliyor? Hayır! APU'nun tasarlanma şekli, bu konsola benzersiz ve tanımlanabilir sesler kazandırdı ve bu özellikler, kasıtlı olsun ya da olmasın, spektrogramların olağandışı sonuçlar göstermesine neden oldu.
Bir ek not olarak, mükemmel geometriye gözlerimizle bakmak hoş olabilir, ancak ilginç bir şekilde kulaklarımız mükemmel kenarlara sahip dalga formlarından pek hoşlanmaz! (patlama sesleri duymaya başlayabilirsiniz).
İleriye dönük olarak, spektrogramları kullanarak ses analizi yapmak, ister basit bir analiz için ister diğer sistemlerle karşılaştırmalar yapmak için olsun, diğer makalelerde kullanışlı olacaktır. Lütfen bu grafiklerin the mother lode aracı olmadığını, özellikle de çok fazla kanal/enstrümanla karıştırılmış (ayrıştırılmasını büyük ölçüde zorlaştıran) ses örneklerinde kullanılabileceğini unutmayın. Ancak her türlü objektif çalışma için sağlam bir başlangıç sağlayacaklarını düşünüyorum.

