Saturday, July 21, 2018

Junko Ozawa's Secrets

(re?-)Bienvenue à Upsilandre dans la blogosphère! Quel plaisir de pouvoir découvrir en détail ses analyses des techniques ancestrales de programmation assis confortablement avec ma liseuse. Son analyse de la "basse sunsoft" et l'utilisation du canal 'triangle' pour faire les drums (plutôt que le canal d-PCM comme dans SMB3) était un vrai délice. Du coup, j'ai envie de ressortir cette série de snapshot de l'interview de Junko Ozawa, responsable son et musique sur les jeux arcade Namco.

Some times ago, I found a video featuring an interview of sound designer Junko Ozawa, working at Namco. I was surprised that so early in video game history, there were digital loops send to sound chips. I had in mind that we went square waves -> SID-like waves -> FM chips -> samples playback. Then I found a post by French blogger Upsliandre mentioning old NES sound programming, and he pointed out the term for Junko's technique: wave tables.

Très tôt déjà, alors que les générateurs simplistes de la NES semblaient riches en possibilités et que la FM faisaient ses premiers balbutiements, les machines NAMCO travaillaient déjà avec des échantillons. Enfin presque.

Le hardware était capable de rejouer du contenu par modulation d'amplitude (PCM) sur 16 niveaux (4 bits) mais extrêmement courts ... disons 16 à 32 points par son. Plutôt que d'y envoyer par DMA un son enregistré en live de basse ou de trompette, Madame Ozawa va s'en servir pour comme d'un SID avec des ondes programmables. Des sons totalement synthétiques mais avec une signature unique.

Pendant que Myamoto retranscrivait sur des petits carreaux les traits de Donkey Kong pour faire du pixel art, Madame se livrait au même travail à partir d'un son visualisé à l'oscilloscope pour faire reproduire à son soundchip une "trompette pixelisée" ou un "violon pixelisé".

Unlike what happens with a SoundBlaster, the sound chip of Namco arcade boards isn't streaming digitized samples. Instead, it uses small waveforms made of about 32 4-bit values and plays them as a single loop, again and again. It's much lighter on the 8-bit CPU and memory chips with "slow" clocks: we only have to fill the soundchip's internal register with the sound wave and just update the pitch for the notes we want to play as we would do on a NES soundchip, but we have a wide palette of sounds at our hands.

Somehow, the variety of sounds we can get out of such chips is similar to that of the C64 SID, but the process to have them is different, just like vectrex graphics and NES graphics are different. While Myamoto is converting his Donkey Kong drawings into pixel art by tracing them, Mrs. Ozawa was performing similar pixel-sounds, checking what the instruments look like on the oscilloscope. Possibly easier to do than mixing sines and triangle-likes to get the sound you want ... but less likely to do live phase-modulations as the SID could do.

But power, tone, roundness of the sound is fully customizable. Tower of Duaga got released in 1984 and we are lightyears away from an Atari console. The NES is hardly reaching Pluto in comparison.


La puissance, la tonalité, la rondeur, tout est personnalisable. Ecoutez donc Tower of Duaga de 1984. On est à des années-lumière de la sonorité d'une console atari! et la NES est encore sur Pluton.

Sa bibliotèque de sons, c'est le trésor de Mme Ozawa. Elle les conserve dans un cahier, vu l'absence d'éditeur numérique pour ce genre de choses. Et il faudra bien longtemps avant qu'un synthé ne puisse interpréter en direct les sons imaginés pour le Namco WSG.

[Les wave tables], c'est la base notamment du son PC-Engine dès 87, mais on retrouve ca aussi dans le Famicom Disk en 86 (y a qu'un seul canal mais de bonne résolution, 64x64), dans la Gameboy ou on a une wavetable 32x16 qui remplace le triangle wave de la NES (j'aurais aimé la même chose pour la NES), aussi dans le soundchip SCC de Konami qu'on retrouve dans les cartouches MSX de Konami tel que Contra.
Effectivement, je n'avais pas fait le rapprochement, mais c'est bien la même technique qui permet à la version "Famicom Disk System" de Legend of Zelda d'avoir quelques sons inédits par rapport à sa version NES (dixit Nathan dans "I AM ERROR"). Et on voit bien les patterns un peu exotiques tout en étant très clairement des ondes simples dans la séquence de fin de Link's Awakening.  


Bref, de mon côté (et surtout vu que je suis assez fan des sonorités de Coryoon et Soldier Blade sur PC-Engine), ça me donne furyeusement envie de coder un petit Wave Editor for DS ...

Upsilandre also pointed out that those Wave Tables are the roots of PC-Engine soundchip (1987) -- that's giving this unique vibe to Coryoon and Soldier Blade soundtracks). And that the same trick had been added to the Famicom Disk System in '86, allowing some tricks in the Legend Of Zelda original soundtrack that couldn't be found in the NES version -- as mentioned by Nathan in his 'I AM ERROR' book). Another thing I didn't know was that the GB used that too. Sure, there were GB games that streamed a PCM sample through the 32-sample, 4-bit programmable PCM channel, but in Link's Awakening, it is mostly used as a Namco channel.

Maybe when I'll be a grumpy grand-dad, I'll find time to code a Wave Editor for DS ? Maybe we could morph one wave into another while playing on the DS hardware ? Time will tell.

edit: à suivre dans le post d'Upsilandre: le pixelat audio sur FDS

7 comments:

upsilandre said...

Génial ces documents! J'aime beaucoup le concept des wavetables, j'ai évité dans parler dans mon article car c'est un peu batard (Les wavetables c'est effectivement entre le son PSG et le sampling) mais c'est pas l'envie qui manque car j'aime bien le concept et je m'y intéresse de plus en plus au fur et a mesure que je me rend compte qu'on en trouve dans pas mal de soundchip.
C'est la base notamment du son PC-Engine dès 87 (donc rien que ca ca justifie de s'y intéresser ^^) mais on retrouve ca aussi dans le Famicom Disk en 86 (y a qu'un seul canal mais de bonne résolution, 64x64), dans la Gameboy ou on a une wavetable 32x16 qui remplace le triangle wave de la NES (j'aurais aimé la même chose pour la NES), aussi dans le soundchip SCC de Konami qu'on retrouve dans les cartouches MSX de Konami tel que Contra je crois et... Dans le mapper 163 de Namco qu'ont trouve dans certaines cartouches Famicom dès 87 et qui intègre un soundchip (pas possible sur NES, seulement sur Famicom) qui ne contient que des canaux wavetable (8 canaux) utilisés par ces jeux la a priori: Final Lap, Mappy Kids, Megami Tensei II, Namco Classic 2, Rolling Thunder, Sangokushi, Sangokushi 2, Erika to Satoru no Yumebouken, King of Kings
Je me suis jamais vraiment penché dessus mais la tu m'apprend que Namco utilisait déjà des wavetables en arcade et qu'ils avaient même quelqu'un dans leur sound team spécialisé la dedans et c'est génial car ca fait sens et explique ce soundchip exotique qu'on trouvait dans les cartouche Namco sur Famicom. C'est une information très intéressante :)

PypeBros said...

très intéressant ^_^

Je n'avais pas fait le rapprochement avec le GameBoy, pourtant, c'est flagrant que le même mécanisme est employé pour les musiques de Link's Awakening.

upsilandre said...

C'est même mieux que ca car la véritable musique originel de Zelda c'est pas celle qu'on connait mais c'est celle la: https://www.youtube.com/watch?v=KQ7NVh1_QOM
Et c'est bien une musique a base de wavetable ^^
Je t'ai isolé le canal wavetable https://soundcloud.com/upsilandre-upsilandre/zelda-no-densetsu-wavetable
Y a 3 patterns différentes assez complexes sur cette intro. La wavetable du Famicom Disk etait vraiment chouette, bonne résolution et avec plein d'options pour les effets (Elle est même accompagné d'une seconde table qui fait office de table de modulation de fréquence. On entend d'ailleurs qu'elle est utilisé sur cette musique Zelda)
Si tu cherches des jeux Famicom Disk qui l'utilisent plutot bien (y en a pas tant que ca) y a Falsion, Ai Senshi Nicol, Gyruss ou Arumana no Kiseki. Ils utilisent tous une dizaine de pattern différentes.

PypeBros said...

oui, c'est juste! Ils en parlaient dans " I AM ERROR" si je me souviens bien.

Cyborg Jeff said...

Ahah... un article bien intéressant que j'avais loupé ! Je vais m'y plonger : )

PypeBros said...

voir aussi https://www.pixellifestoriesgallery.com/theorie-critique-art-videoludique/2019/5/15/comprendre-la-naissance-du-son-et-des-jeux-vido-de-la-pr-histoire-aux-bornes-darcade

PypeBros said...

See also that chat with Arne about possibilities of a soundchip based on 'audio tiles'.