--- title: "[Notes] Musique de Game Boy, comment ça marche" tags: Talk, notes description: For Sonic Makers Camp, 2019-07-07. During this presentation, I will introduce the specificities of 8-bit / chiptune music made famous by vintage game consoles like the Game boy and Nintendo Entertainment System, and how I programed a browser-based MIDI synthesizer that emulates that sound for live performances. (fork of https://hackmd.io/u1pViXuBRIWH_BNwGBHl1g?edit) --- # [Notes] Musique de Game Boy, comment ça marche Fiche publique: [Musique de Game Boy, comment ça marche](https://hackmd.io/OzgqYYiQRweCB6MLpSyJxA?view) @ [Sonic Makers Camp](http://sonicmakerscamp.org/inscription), 7 Juillet 2019, 15h Découvrons ensemble et au travers de nombreux exemples (enregistrés et live) ce qui rend la musique “chip tune / 8-bit” si reconnaissable, quelles sont les contraintes techniques de la puce audio des consoles vintage "Game Boy" et "NES" (Nintendo Entertainment System), et comment les musiciens et programmeurs les plus ingénieux ont réussi à composer des musiques qui dépassent ces contraintes. Programme: - Bases de la synthèse sonore - Types d'ondes: carrée vs triangle vs bruit - Modulation par duty cycle et enveloppe ADSR - Monophonie + workarounds: arpegiator, famichord - Technique d'écho à 1 ou 2 canaux - Astuce: utilisation du channel triangle pour renforcer les sons de percussions - Présentation du simulateur de Game Boy que j'ai développé en JavaScript avec WebAudio et WebMIDI Format: mini-conférence de 30 minutes. --- ## Musique d'ambiance avant présentation - [Disasterpeace - Rise of the Obsidian Interstellar (Full Album) Chiptune - YouTube](https://www.youtube.com/watch?v=BaF5spsqMc8) - or [The Messenger (Original Soundtrack) Disc 1: The Past [8-bit] - YouTube](https://www.youtube.com/watch?v=YFOa9SErWzY) - or [Mr Gimmick! (NES) Music Soundtrack Playlist - YouTube](https://www.youtube.com/playlist?list=PL62A4B7A407A6BBE7) --- ## Introduction Musique: [Tetris (Game Boy) Playthrough](https://www.youtube.com/watch?v=BQwohHgrk2s) => *Vous vous souvenez ?* {%youtube BQwohHgrk2s %} Adrien Joly: - développe logiciels basés sur le Web - enseigne la programmation logicielle - joue de la batterie dans le groupe "Harissa" Nostalgie pour les jeux de mon enfance, fin des années 1980. Intrigué par l'esthétique des musiques de premières consoles de jeux vidéo grand public: Nintendo NES / GameBoy. Son unique et reconnaissable même pour celles et ceux qui n'étaient pas nés, et n'ont jamais vu une telle console. Rendu compte que ces consoles étaient très limitées techniquement, mais que certains compositeurs avaient fait des prouesses pour en tirer le maximum, et produire des musiques qui sonnent bien malgré ces contraintes. => Admiration pour leur créativité et ingéniosité. Aujourd'hui: - présenter la musique "chiptune"; - comprendre les bases de la synthèse sonore; - identifier les limitations de la NES et GameBoy; - découvrir les astuces des compositeurs; - introduire mon projet musical: [The Chips](https://adrienjoly.com/chips). --- ## "Chiptune" Musique générée par une puce, un microprocesseur électronique, en "synthétisant" des ondes sonores. Exemple: musiques de consoles de jeux (et ordinateurs) entre la fin des années 80 (Nintendo NES) et la fin des années 90 (Super Nintendo). Après cette période, les évolutions technologiques (ex: la démocratisation du stockage sur CD puis DVD) ont permi de stocker et jouer de la musique enregistrée => plus besoin de synthétiser. Caractéristiques: - Notes are played by synthesizing primitive waveforms (e.g. pulse, triangle...) - Drums and percussions are simulated by moduling the output of a noise generator! - Échantillons enregistrés parfois présents, mais très courts, et avec une définition très basse. (ex: congas, dans la musique de Mario Bros) Comparaison: Smells like teen spirit de Nirvana: - version originale: [Nirvana - Smells Like Teen Spirit (Official Music Video) - YouTube](https://www.youtube.com/watch?v=hTWKbfoikeg) - reprise "8-bit" / "chiptune": [Smells Like Teen Spirit (8 Bit Remix Cover Version) [Tribute to Nirvana] - 8 Bit Universe - YouTube](https://www.youtube.com/watch?v=oK8ER2mHq3E) {%youtube oK8ER2mHq3E %} --- ## Canaux et ondes ![channels, from 8-bit guy's video https://www.youtube.com/watch?v=q_3d1x2VPxk](https://i.imgur.com/UdZxfzT.png) Sur Nintendo NES: - 2 pistes de pulsation rectangulaire ("pulse"), souvent utilisées pour les mélodies - 1 piste "triangle", souvent utilisée pour la basse - 1 piste de génération de "bruit", souvent utilisée pour la batterie, les instruments percussifs, et les bruitages de jeux vidéos (ex: explosions) - 1 piste "PCM" qui permet de jouer des échantillons enregistrés (ex: congas dans la musique de Mario Bros) Explication: [NES Audio: Brief Explanation of Sound Channels - YouTube](https://www.youtube.com/watch?v=la3coK5pq5w) {%youtube la3coK5pq5w %} Démonstration: [Intro de Maniac Mansion](https://www.youtube.com/watch?v=hWAtoCEuwnY) (NES) {%youtube hWAtoCEuwnY %} Exemple connu avec onde "triangle": [Musique de Super Mario Bros](https://www.youtube.com/watch?v=OfrEoEQpPrI) (NES) {%youtube OfrEoEQpPrI %} --- ## "Duty cycle" Sur les deux premiers canaux de "pulsation", on peut moduler un peu la forme du rectangle. Explication [NES Audio: Duty Cycle Modulation - YouTube](https://www.youtube.com/watch?v=kl9v8gtYRZ4) {%youtube kl9v8gtYRZ4 %} C'est utilisé dans la musique de [Gremlins 2 - Mr. Wing's Shop](https://www.youtube.com/watch?v=17bnyemFslw). Chaque note commence en duty cycle de 50%, puis continue en 25%. {%youtube 17bnyemFslw %} --- ## Astuce: batterie sur 2 canaux [NES Audio: Triangle Kick Drum - YouTube](https://www.youtube.com/watch?v=Jd6nyynuzio) {%youtube Jd6nyynuzio %} [NES Smurfs: Mountains - oscilloscope view - YouTube](https://www.youtube.com/watch?v=Wy1l5BAkSoc) {%youtube Wy1l5BAkSoc %} <!-- TODO: Try to give a live example by muting the noise and pulse channels. --> --- ## Autres techniques - Arpeggio: [NES Audio: The Arpeggio Effect - YouTube](https://www.youtube.com/watch?v=4HWHneafZ8w) {%youtube 4HWHneafZ8w %} - [Famichord and Other Elements of Chipmusic](https://chipflip.wordpress.com/2011/05/11/famichord-and-other-elements-of-chipmusic/) --- ## How was it programmed? [Tetris (Game Boy) - Music Type B (Impulse Tracker Cover) - YouTube](https://www.youtube.com/watch?v=GDP1kyoP8C4) {%youtube GDP1kyoP8C4 %} --- ## Challenge: play Nintendo music live A bit like this band: [マリオ3 SUPER MARIO BROS. 3 Medley / NES BAND 12th Live in Sapporo - YouTube](https://www.youtube.com/watch?v=HNs7BVn_bOk) {%youtube HNs7BVn_bOk %} --- ## ... with my own sound synthesizer! Demo: play Tetris music on [my own synth](https://adrienjoly.com/webmidi-launchkey-mini/) --- ## How it's made - Keyboard input: WebMIDI - Tone generator: WebAudio / Oscillators - Noise-based sounds: http://sfxr.me - Oscilloscope viz: Canvas (made by Jérôme Schneider) Source: https://github.com/adrienjoly/webmidi-launchkey-mini --- ## Next steps - arpeggiator - tone modulation: ADSR enveloppe - more than 1 channel at once - find other musicians to join the "Chips" project - rehearse and give a concert! ## Keep in touch! - [adrienjoly.com/chips](https://adrienjoly.com/chips/) - [facebook.com/groups/thechips](https://www.facebook.com/groups/thechips/about/) - [twitter.com/adrienjoly](https://twitter.com/adrienjoly) - email: contact@adrienjoly.com