[video output=day009 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code009_template.html title="Variable-Pitch Sine Wave Output" vod_platform=youtube id=8y9nPk1c45c annotator=jacebennett annotator=Miblo annotator=schme annotator=theinternetftw]
[1:14][Review DirectSound init and square wave]
[2:28][Story Time: The First Game Jam]
[8:56][The moral of the story]
[11:26][How to approach debugging the sound code]
[15:40][Square vs Sine Wave]
[17:33][Generating a Sine Wave]
[17:56][Tangent: Intro to Floating Point]
[20:38][C Libraries for sin]
[24:55][Story Time: Before floating point hardware]
[26:43][Tangent: Fixed-point math]
[32:35][Tangent: IEEE Floating-point representation]
[42:15][Implementing the Sine wave test tone]
[48:09][Lets run it]
[49:01][Debugging in earnest]
[57:39][A different error]
[57:58][Refactor for clarity]
[1:03:46][Where did it go?]
[1:04:08][Eureka!]
[1:05:22][Victory]
[1:09:52][Q&A][:speech]
[1:10:07][In D this bug couldn't have happened. D always initializes variables.]
[1:13:36][How do you know that ByteToLock is far enough ahead of the PlayCursor?]
[1:15:40][Try \[compiling with\] -W3 or -W4]
[1:15:54][Where do I look for standard C library docs?]
[1:16:39][I think you can now remove the ByteToLock == PlayCursor case.]
[1:17:58][Will we use the sin() in the actual game?]
[1:18:07][Is autocomplete/intellisense a bad idea? You don't seem to use it.]
[1:19:25][Re-explaining the last bug]
[1:20:50][Is it possible for bits to spill over into neighboring variables? For example, when shifting.]
[1:26:26][Will we use the same output buffer to overlay several sounds?]
[1:26:33][Change tone frequency based on input, and the bug will resurface.]
[1:26:37][Casey: That's a different bug, lets look at it.]
[1:30:43][Fixed]
[1:30:57][Diagramming the frequency change issue]
[1:35:18][Let's map the pitch to the sticks.]
[1:37:00][Theramin Simulator 2014 Tech Demo]
[1:37:13][Let's lower the latency]
[1:42:49][If we could live with a slightly less accurate sin, we could approximate it with polynomials.]
[1:45:08][Will the art and audio be released into the public domain?]
[1:46:20][Is it a good idea to use fixed point math for games that require deterministic simulation for multiplayer? Or can you use floating point across systems?]
[1:48:48][Sometimes you use 'bool' and sometimes 'bool32']
[1:49:30][Are you going to use ETW to log context switches for the game?]
[1:49:42][Is this the audio api we will be using to ship the game?]
[1:50:01][Is it safe to call DirectSound without initializing COM?]
[1:50:47][Can we do an episode on emacs?]
[1:51:33][Fix: XInput - missing dependencies]
[1:53:45][Fix: Arithmetic for stick values]
[2:01:55][Sign off][:speech]
[/video]
