Per-sample Volume Interpolation ⚠ Click here to regain focus ⚠
?
?

Keyboard Navigation

Global Keys

W, A, P / S, D, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
z Toggle filter mode V Revert filter to original state

Menu toggling

q Quotes r References f Filter c Credits

Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Credits Menu

Enter Open URL (in new tab)
00:00:46Plan for today
00:00:46Plan for today
00:00:46Plan for today
00:02:07Dynamic asset streaming and audio mixing didn't take that much code
00:02:07Dynamic asset streaming and audio mixing didn't take that much code
00:02:07Dynamic asset streaming and audio mixing didn't take that much code
00:03:37Public service announcement: Sometimes, writing your own code is faster than reusing other people's code
00:03:37Public service announcement: Sometimes, writing your own code is faster than reusing other people's code
00:03:37Public service announcement: Sometimes, writing your own code is faster than reusing other people's code
00:05:56Some differences between audio and video animation and their effects on sound mixing architecture
00:05:56Some differences between audio and video animation and their effects on sound mixing architecture
00:05:56Some differences between audio and video animation and their effects on sound mixing architecture
00:09:55We want to change volume over time, while avoiding discontinuities
00:09:55We want to change volume over time, while avoiding discontinuities
00:09:55We want to change volume over time, while avoiding discontinuities
00:12:53Definition of the interface to ChangeVolume
00:12:53Definition of the interface to ChangeVolume
00:12:53Definition of the interface to ChangeVolume
00:14:03Two ways of specifying speed of volume change: time it takes to reach target volume vs rate of change
00:14:03Two ways of specifying speed of volume change: time it takes to reach target volume vs rate of change
00:14:03Two ways of specifying speed of volume change: time it takes to reach target volume vs rate of change
00:21:20Using dimensional analysis to figure out dVolume
00:21:20Using dimensional analysis to figure out dVolume
00:21:20Using dimensional analysis to figure out dVolume
00:30:50Changing resolution back to 960x540 to remain in debug mode at a reasonable framerate
00:30:50Changing resolution back to 960x540 to remain in debug mode at a reasonable framerate
00:30:50Changing resolution back to 960x540 to remain in debug mode at a reasonable framerate
00:34:30Avoiding overshooting the target volume
00:34:30Avoiding overshooting the target volume
00:34:30Avoiding overshooting the target volume
00:44:28Problem of current approach: repeated imprecise floating-point addition may lead to errors
00:44:28Problem of current approach: repeated imprecise floating-point addition may lead to errors
00:44:28Problem of current approach: repeated imprecise floating-point addition may lead to errors
00:45:25Alternative approach: linear interpolation between beginning and end volumes
00:45:25Alternative approach: linear interpolation between beginning and end volumes
00:45:25Alternative approach: linear interpolation between beginning and end volumes
00:46:42Alternative approach: backsolving to hit the target volume at the end of the loop
00:46:42Alternative approach: backsolving to hit the target volume at the end of the loop
00:46:42Alternative approach: backsolving to hit the target volume at the end of the loop
00:48:11Testing ChangeVolume interactively
00:48:11Testing ChangeVolume interactively
00:48:11Testing ChangeVolume interactively
00:53:08Q&A
00:53:08Q&A
00:53:08Q&A
00:53:49constantinopol Can you show again how you skipped a failed assertion, by going to disassembly?
🗪
00:53:49constantinopol Can you show again how you skipped a failed assertion, by going to disassembly?
🗪
00:53:49constantinopol Can you show again how you skipped a failed assertion, by going to disassembly?
🗪
01:00:10swampy_butt Would there be any case where you would like to increase volume non-linearly?
🗪
01:00:10swampy_butt Would there be any case where you would like to increase volume non-linearly?
🗪
01:00:10swampy_butt Would there be any case where you would like to increase volume non-linearly?
🗪
01:02:01flyingsand So far you can just change the volume of individual sounds. Should we be able to change the volume of the master output as well?
🗪
01:02:01flyingsand So far you can just change the volume of individual sounds. Should we be able to change the volume of the master output as well?
🗪
01:02:01flyingsand So far you can just change the volume of individual sounds. Should we be able to change the volume of the master output as well?
🗪
01:03:26chronaldragon Will Handmade Hero support spatialization? e.g. sound mostly in left channel if on left side of the screen, sound mostly in right channel if on right side, etc.
🗪
01:03:26chronaldragon Will Handmade Hero support spatialization? e.g. sound mostly in left channel if on left side of the screen, sound mostly in right channel if on right side, etc.
🗪
01:03:26chronaldragon Will Handmade Hero support spatialization? e.g. sound mostly in left channel if on left side of the screen, sound mostly in right channel if on right side, etc.
🗪
01:04:03rpg_ignis How hard would it be to do a fade-out/fade-in for the music when the window loses focus/gets focus back?
🗪
01:04:03rpg_ignis How hard would it be to do a fade-out/fade-in for the music when the window loses focus/gets focus back?
🗪
01:04:03rpg_ignis How hard would it be to do a fade-out/fade-in for the music when the window loses focus/gets focus back?
🗪
01:05:09gasto5 So what did you end up doing to dVolume if it wasn't linear interpolation?
🗪
01:05:09gasto5 So what did you end up doing to dVolume if it wasn't linear interpolation?
🗪
01:05:09gasto5 So what did you end up doing to dVolume if it wasn't linear interpolation?
🗪
01:05:28waterlimon If you implemented Assert using ?: instead of if, you could use it as part of expressions or other such places where you can't have an if statement
🗪
01:05:28waterlimon If you implemented Assert using ?: instead of if, you could use it as part of expressions or other such places where you can't have an if statement
🗪
01:05:28waterlimon If you implemented Assert using ?: instead of if, you could use it as part of expressions or other such places where you can't have an if statement
🗪
01:06:15gasto5 Did you already implement audio clipping?
🗪
01:06:15gasto5 Did you already implement audio clipping?
🗪
01:06:15gasto5 Did you already implement audio clipping?
🗪
01:07:34gasto5 (clarification) Managing audio dynamic range. Yes
🗪
01:07:34gasto5 (clarification) Managing audio dynamic range. Yes
🗪
01:07:34gasto5 (clarification) Managing audio dynamic range. Yes
🗪
01:08:04waterlimon With respect to Assert, I don't know why you would want to put one in an expression, but apparently that's how it's usually implemented... It can't hurt, right?
🗪
01:08:04waterlimon With respect to Assert, I don't know why you would want to put one in an expression, but apparently that's how it's usually implemented... It can't hurt, right?
🗪
01:08:04waterlimon With respect to Assert, I don't know why you would want to put one in an expression, but apparently that's how it's usually implemented... It can't hurt, right?
🗪
01:09:45flyingsand You can't just hard-clip audio, though. If you don't use a compressor/limiter you would have to at least use soft-clipping with tanh or something
🗪
01:09:45flyingsand You can't just hard-clip audio, though. If you don't use a compressor/limiter you would have to at least use soft-clipping with tanh or something
🗪
01:09:45flyingsand You can't just hard-clip audio, though. If you don't use a compressor/limiter you would have to at least use soft-clipping with tanh or something
🗪
01:10:12gasto5 Will you implement audio file compression?
🗪
01:10:12gasto5 Will you implement audio file compression?
🗪
01:10:12gasto5 Will you implement audio file compression?
🗪
01:11:35abnercoimbre What would an audio compressor do?
🗪
01:11:35abnercoimbre What would an audio compressor do?
🗪
01:11:35abnercoimbre What would an audio compressor do?
🗪
01:13:45gasto5 How much optimization would the mixer require?
🗪
01:13:45gasto5 How much optimization would the mixer require?
🗪
01:13:45gasto5 How much optimization would the mixer require?
🗪
01:14:21javajax What is the difference between a limiter and a compressor?
🗪
01:14:21javajax What is the difference between a limiter and a compressor?
🗪
01:14:21javajax What is the difference between a limiter and a compressor?
🗪