Sound Programming part of the course (19-21 May 2020)
Brief Description of course content:
- Basic concepts in acoustics and music theory.
- Digital signal processing.
- Digital filtering.
- Fast Fourier transform.
- Sound synthesis.
- Audio engines.
- Procedural sound generation in p5.js.
- Integration of procedural audio in games.
- May 19, 16:15-19:45
Audio engines. Procedural sound generation in p5.js.
Presentations 1 and 2; Exercises 1 and 2 (see below)
- May 20, 16:15-19:45
Digital signal processing. Digital filtering. Fast Fourier transform.
Presentation 3; Exercises 3, 4 and 5 (see below)
- May 21, 16:15-19:45
Integration of procedural audio in games.
Presentation 4; Exercises 6, 7 and 8 (see below)
- May 29, 23:59
Assignment submission deadline
- Processing (programming)
- Audacity (sound editor)
- Freesound (sound library)
- SoundProgramming1-Introduction / Video
- SoundProgramming2-Processing / Video
- SoundProgramming3-Dynamics / Video
- SoundProgramming4-Games / Video
- Ex1-Oscillator: Code / Video
- Ex2-SoundFile: Code / Video
- Ex3-AmplitudeFFT: Code / Video
- Ex4-SineFilter: Code / Video
- Ex5-RandomLoop: Code / Video
- Ex6-DelayMap: Code / Video
- Ex7-ParticlesReverb: Code / Video
- Ex8-SpaceInvaders (revisions): original code / version with oscillator & noise
- Copy the original code.
- Add foreground sounds (sound files) for a) shooting and for b) destroying an enemy.
- Combine each sound with a sound processing method: with rate, filter, delay or reverb.
- Manipulate one of the 2 sounds mapping it to a x or y value in the game (e.g. map the x position of player to filter frequency).
- Manipulate the other sound based on a random parameter (e.g. make the explosion playback rate a random value).
Create the sound design for a game, using programming techniques in p5.js. Use the game Asteroids as a starting point. Code: https://editor.p5js.org/codingtrain/sketches/VtYr6E4_M (*) The code is spread out in different files, press the “>“ next to Index.html to see all files.
- UPLOAD LINK: [submissions closed]
- DEADLINE: 29/May/2020
- Copy the Asteroids code. You can simply go to File > Duplicate to edit it and save, when logged in.
- Add foreground and background sounds (at least 2 of each).
- Combine each sound with a sound processing method – for example: rate, filter, delay or reverb.
- Manipulate at least one of the sounds by mapping it to a parameter in the game.
- Manipulate at least another sound based on a random parameter.
- Manipulate at least one graphical element based on sound analysis methods, such as FFT or Amplitude (if needed, add graphical elements).
- Explore further techniques in p5.Sound library similar to the ones studied in class.
- Comment the code to explain the additions made.
- In the first line of the code, add a comment with your name and the URL of the project (for example: https://editor.p5js.org/nunocorreia/sketches/1x2y3z
- Download the project files (File > Download). Rename folder with your name. Zip (compress) the folder (.zip extension) and upload to: [submissions closed] (deadline: 29/May/2020)
- Quality and appropriateness of foreground and background sounds
- Quality, diversity and appropriateness of sound manipulation techniques
- Use of mappings of sound manipulation to game parameters
- Use of randomization techniques
- Use of mappings of sound to graphical elements
- Exploration of additional techniques
- Quality of the comments to the code
- Overall quality of the sound design
(*) From Coding Train website. More information: