Integrating WAV Importing
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu 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

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:01Welcome with a plug of Handmade Seattle1, noting that the HandmadeCon site2 now mentions this conference
📖
0:01Welcome with a plug of Handmade Seattle1, noting that the HandmadeCon site2 now mentions this conference
📖
0:01Welcome with a plug of Handmade Seattle1, noting that the HandmadeCon site2 now mentions this conference
📖
6:09Recap and set the stage for the day merging in our WAV processing code
🗩
6:09Recap and set the stage for the day merging in our WAV processing code
🗩
6:09Recap and set the stage for the day merging in our WAV processing code
🗩
7:33Navigate handmade_wav.cpp, eliciting a green flash in 4coder – denoting a render buffer overflow – at 7:43
🗹
7:33Navigate handmade_wav.cpp, eliciting a green flash in 4coder – denoting a render buffer overflow – at 7:43
🗹
7:33Navigate handmade_wav.cpp, eliciting a green flash in 4coder – denoting a render buffer overflow – at 7:43
🗹
7:46Request a note of the green flash from Miblo
🗹
7:46Request a note of the green flash from Miblo
🗹
7:46Request a note of the green flash from Miblo
🗹
8:44Miblo Q: Gotcha! I'll email you the link to it
🗪
8:44Miblo Q: Gotcha! I'll email you the link to it
🗪
8:44Miblo Q: Gotcha! I'll email you the link to it
🗪
8:50Set up to implement ParseWAV()
📖
8:50Set up to implement ParseWAV()
📖
8:50Set up to implement ParseWAV()
📖
11:29Replace the assertions in ParseWAV() with error handling
11:29Replace the assertions in ParseWAV() with error handling
11:29Replace the assertions in ParseWAV() with error handling
20:08Consider enabling ParseWAV() to support an arbitrary number of audio channels
📖
20:08Consider enabling ParseWAV() to support an arbitrary number of audio channels
📖
20:08Consider enabling ParseWAV() to support an arbitrary number of audio channels
📖
26:55Consider enabling ParseWAV() to deinterleave audio sources, for mixing down to 8 channels
📖
26:55Consider enabling ParseWAV() to deinterleave audio sources, for mixing down to 8 channels
📖
26:55Consider enabling ParseWAV() to deinterleave audio sources, for mixing down to 8 channels
📖
29:00Enable ParseWAV() to deinterleave audio sources into separate buffers, introducing GetChannelSamples()
29:00Enable ParseWAV() to deinterleave audio sources into separate buffers, introducing GetChannelSamples()
29:00Enable ParseWAV() to deinterleave audio sources into separate buffers, introducing GetChannelSamples()
35:46Remove the stale code from ParseWAV()
35:46Remove the stale code from ParseWAV()
35:46Remove the stale code from ParseWAV()
36:54Iterating over RIFF chunks
📖
36:54Iterating over RIFF chunks
📖
36:54Iterating over RIFF chunks
📖
38:47Create handmade_riff.cpp to contain our existing RIFF iteration code3,4
38:47Create handmade_riff.cpp to contain our existing RIFF iteration code3,4
38:47Create handmade_riff.cpp to contain our existing RIFF iteration code3,4
48:32Set up ParseWAV() to parse any RIFF file, calling IterateRIFF()
48:32Set up ParseWAV() to parse any RIFF file, calling IterateRIFF()
48:32Set up ParseWAV() to parse any RIFF file, calling IterateRIFF()
52:36Introduce IterateRIFF() and GetHeaderChunk()
52:36Introduce IterateRIFF() and GetHeaderChunk()
52:36Introduce IterateRIFF() and GetHeaderChunk()
1:00:32Fix compile errors in the RIFF parsing code
1:00:32Fix compile errors in the RIFF parsing code
1:00:32Fix compile errors in the RIFF parsing code
1:03:22Set up to import our parsed audio data from .hha files
📖
1:03:22Set up to import our parsed audio data from .hha files
📖
1:03:22Set up to import our parsed audio data from .hha files
📖
1:05:50Implement ProcessAudioImport(), streaming in our audio assets in chunks, and introduce UnloadAudio()5
1:05:50Implement ProcessAudioImport(), streaming in our audio assets in chunks, and introduce UnloadAudio()5
1:05:50Implement ProcessAudioImport(), streaming in our audio assets in chunks, and introduce UnloadAudio()5
1:21:16Enable ProcessAudioImport() to tag audio assets with IDs
1:21:16Enable ProcessAudioImport() to tag audio assets with IDs
1:21:16Enable ProcessAudioImport() to tag audio assets with IDs
1:27:03Let ProcessAudioImport() instead not tag audio streaming chunks, but only reserve enough contiguously indexed asset chunks for the sample chain
1:27:03Let ProcessAudioImport() instead not tag audio streaming chunks, but only reserve enough contiguously indexed asset chunks for the sample chain
1:27:03Let ProcessAudioImport() instead not tag audio streaming chunks, but only reserve enough contiguously indexed asset chunks for the sample chain
1:36:51Set up ParseTopLevelBlock() to stamp out the audio channel tags
1:36:51Set up ParseTopLevelBlock() to stamp out the audio channel tags
1:36:51Set up ParseTopLevelBlock() to stamp out the audio channel tags
1:40:43Q&A
🗩
1:40:43Q&A
🗩
1:40:43Q&A
🗩
1:41:09jkfsda Q: Not related, but do you have any thoughts on Pony lang?
🗪
1:41:09jkfsda Q: Not related, but do you have any thoughts on Pony lang?
🗪
1:41:09jkfsda Q: Not related, but do you have any thoughts on Pony lang?
🗪
1:42:00flightlesshippo Q: How are you feeling about the way the asset system's working out so far?
🗪
1:42:00flightlesshippo Q: How are you feeling about the way the asset system's working out so far?
🗪
1:42:00flightlesshippo Q: How are you feeling about the way the asset system's working out so far?
🗪
1:43:09brimonk Q: What does good documentation look like? I think I've heard about you and Jon talk about documentation being really bad and soul sucking when it's auto generated. So, what does "good" human made documentation look like for programmers, and for users?6
🗪
1:43:09brimonk Q: What does good documentation look like? I think I've heard about you and Jon talk about documentation being really bad and soul sucking when it's auto generated. So, what does "good" human made documentation look like for programmers, and for users?6
🗪
1:43:09brimonk Q: What does good documentation look like? I think I've heard about you and Jon talk about documentation being really bad and soul sucking when it's auto generated. So, what does "good" human made documentation look like for programmers, and for users?6
🗪
1:46:35brimonk Q: So like, Unix man pages, because they lean closer to conceptual documentation (as far as I can tell), would be more preferable to you?
🗪
1:46:35brimonk Q: So like, Unix man pages, because they lean closer to conceptual documentation (as far as I can tell), would be more preferable to you?
🗪
1:46:35brimonk Q: So like, Unix man pages, because they lean closer to conceptual documentation (as far as I can tell), would be more preferable to you?
🗪
1:47:08centhusiast Q: Does the C code run faster, in general, if we replace something like width /=2 and height /=2 by the left bit shift <<1?
🗪
1:47:08centhusiast Q: Does the C code run faster, in general, if we replace something like width /=2 and height /=2 by the left bit shift <<1?
🗪
1:47:08centhusiast Q: Does the C code run faster, in general, if we replace something like width /=2 and height /=2 by the left bit shift <<1?
🗪
1:47:35nonsensation Q: About Meow hash, do you have any resources on how you came up with it or where I could learn more about designing such?
🗪
1:47:35nonsensation Q: About Meow hash, do you have any resources on how you came up with it or where I could learn more about designing such?
🗪
1:47:35nonsensation Q: About Meow hash, do you have any resources on how you came up with it or where I could learn more about designing such?
🗪
1:49:02ormone88 Q: Do modern game engines have their own sound synthesizer, or do they just import sounds from other software / libraries?7,8
🗪
1:49:02ormone88 Q: Do modern game engines have their own sound synthesizer, or do they just import sounds from other software / libraries?7,8
🗪
1:49:02ormone88 Q: Do modern game engines have their own sound synthesizer, or do they just import sounds from other software / libraries?7,8
🗪
1:52:24centhusiast Q: Could you demonstrate in one episode how you implemented cmirror version control? It seems very interesting. Thanks a lot
🗪
1:52:24centhusiast Q: Could you demonstrate in one episode how you implemented cmirror version control? It seems very interesting. Thanks a lot
🗪
1:52:24centhusiast Q: Could you demonstrate in one episode how you implemented cmirror version control? It seems very interesting. Thanks a lot
🗪
1:55:02flightlesshippo Q: How many times have people given you the old "why reinvent the wheel?" line? I've never seen a discussion about building code from scratch not have at least someone smugly break that one out
🗪
1:55:02flightlesshippo Q: How many times have people given you the old "why reinvent the wheel?" line? I've never seen a discussion about building code from scratch not have at least someone smugly break that one out
🗪
1:55:02flightlesshippo Q: How many times have people given you the old "why reinvent the wheel?" line? I've never seen a discussion about building code from scratch not have at least someone smugly break that one out
🗪
1:58:36ivereadthesequel Q: Speaking about MSDN, I had an issue where an old version of docs had a remark that was important for a certain call, that some value should be set a certain way in a struct. Not there in the new version. ACKK!! Anyway, doesn't the "remarks" section usually have information on things like "CloseFile" for the "CreateFile" call and so on?
🗪
1:58:36ivereadthesequel Q: Speaking about MSDN, I had an issue where an old version of docs had a remark that was important for a certain call, that some value should be set a certain way in a struct. Not there in the new version. ACKK!! Anyway, doesn't the "remarks" section usually have information on things like "CloseFile" for the "CreateFile" call and so on?
🗪
1:58:36ivereadthesequel Q: Speaking about MSDN, I had an issue where an old version of docs had a remark that was important for a certain call, that some value should be set a certain way in a struct. Not there in the new version. ACKK!! Anyway, doesn't the "remarks" section usually have information on things like "CloseFile" for the "CreateFile" call and so on?
🗪
2:00:27jkfsda Q: Why is Functional Programming not dominating corporate programming? It's much better for business apps
🗪
2:00:27jkfsda Q: Why is Functional Programming not dominating corporate programming? It's much better for business apps
🗪
2:00:27jkfsda Q: Why is Functional Programming not dominating corporate programming? It's much better for business apps
🗪
2:01:20zennmystic Q: You changed debugger yesterday… To what again?9
🗪
2:01:20zennmystic Q: You changed debugger yesterday… To what again?9
🗪
2:01:20zennmystic Q: You changed debugger yesterday… To what again?9
🗪
2:05:00spkmodzzyt Q: Anyway to get 4coder for free?
🗪
2:05:00spkmodzzyt Q: Anyway to get 4coder for free?
🗪
2:05:00spkmodzzyt Q: Anyway to get 4coder for free?
🗪
2:05:28ivereadthesequel Q: Do you know why functional programming languages tend to be so closely tied to formal verification and more theoretical work, by any chance?
🗪
2:05:28ivereadthesequel Q: Do you know why functional programming languages tend to be so closely tied to formal verification and more theoretical work, by any chance?
🗪
2:05:28ivereadthesequel Q: Do you know why functional programming languages tend to be so closely tied to formal verification and more theoretical work, by any chance?
🗪
2:07:11spkmodzzyt Q: Is it license-based?
🗪
2:07:11spkmodzzyt Q: Is it license-based?
🗪
2:07:11spkmodzzyt Q: Is it license-based?
🗪
2:07:35Brian Q: Greetings Casey. How do you find balancing duplicating code versus trying to generalize a function? As an exercise, I took FormatString() – from Handmade Hero – and wrote a FormatWideString() version. In the end I chose to simply take the format, call UTF8FromUTF16(), call FormatString() on a temp buffer, then UTF16FromUTF8(). But now I sacrifice performance for maintenance. Other than if it becomes a bottleneck when profiling, what other things do you look for choosing to duplicate code and making it more a pain to maintain, than the benefits of having specific versions?
🗪
2:07:35Brian Q: Greetings Casey. How do you find balancing duplicating code versus trying to generalize a function? As an exercise, I took FormatString() – from Handmade Hero – and wrote a FormatWideString() version. In the end I chose to simply take the format, call UTF8FromUTF16(), call FormatString() on a temp buffer, then UTF16FromUTF8(). But now I sacrifice performance for maintenance. Other than if it becomes a bottleneck when profiling, what other things do you look for choosing to duplicate code and making it more a pain to maintain, than the benefits of having specific versions?
🗪
2:07:35Brian Q: Greetings Casey. How do you find balancing duplicating code versus trying to generalize a function? As an exercise, I took FormatString() – from Handmade Hero – and wrote a FormatWideString() version. In the end I chose to simply take the format, call UTF8FromUTF16(), call FormatString() on a temp buffer, then UTF16FromUTF8(). But now I sacrifice performance for maintenance. Other than if it becomes a bottleneck when profiling, what other things do you look for choosing to duplicate code and making it more a pain to maintain, than the benefits of having specific versions?
🗪
2:09:24Wrap it up with a plug of Handmade Seattle10
🗩
2:09:24Wrap it up with a plug of Handmade Seattle10
🗩
2:09:24Wrap it up with a plug of Handmade Seattle10
🗩