Code-It-Yourself! Sound Synthesizer #4 - Waveout API, Sequencing & Ducktales

preview_player
Показать описание
A bit of a mixed bag this one! In this video, I discuss how to use the WaveOut API to deliver sound to the soundcard, and demonstrate how and why we need to buffer sound. I then show the synthesizer using a sequencer to emulate a snazzy drum machine.

Рекомендации по теме
Комментарии
Автор

A really well thought through tutorial series by somebody who actually knows what he's doing! Excellent work I gotta say!
Now, I would also be interested in topics like filters or FFT. I think it was in the second part where you said you would cover filters but never actually did it.
Would you consider making a tutorial on that as well?

jamathan
Автор

That (incl. part 1-3) was delightful and fun. I'm impresssed with your instruments; finding how to make something sound realistic seems a bit like an art to me.

tommythorn
Автор

You have no idea how much i appreciate these videos man <3

alecmather
Автор

I wanted to thank you very much for all these superb videos. I'll freely admit currently I understand about 35-38% of what is going on - I'm good with PHP and am some of the way through learning Python as a kindergarten before I tackle C++ - but I'm finding it all very enjoyable. I have a bit off time off work (in a good way - a musician, and I'm actually not on tour again for a little while) and one of my learning goals is trying to translate your First Person Shooter engine into python / pygame. Anyhow - rambling. But I really enjoyed the synthesiser series, possibly because I'm very familiar with their inner workings, so my understanding quotient probably rose to 48-51%. If you ever get around to coding filters I'll lap it up!

unbelievable_truth_band
Автор

Thank you for once again another great in a series of great video tutorials Javid. I've explored many tutorials on YouTube. I'd like to commend you on your gift of explaining the salient facts and enough theory behind and in parallel so that if we want to know more we can know more. I for one feel like I can learn so much from your knowledge. Way to go Javid.Rack one more up to a successful series.

stephanerichard
Автор

Absolutely Wonderful explanation of latency.

andrewburke
Автор

I like how you generated your percussion sounds, by the way.

GregoryTheGrster
Автор

I really hope that someday you'll find the time to extend on this series! : )

em
Автор

Thank you for this series, it was great! Could you also go into filters?

GreatCaptainA
Автор

Call me crazy but it is now the second long evening where I have been happily playing some songs on this synthesizer with your beat behind it. You reinvented Casio I guess. And now with your new video on midi I definitely need to buy a midi keyboard and start combining my interest in programming with my interest in music.

richardbloemenkamp
Автор

As all of you content, high quality stuff. I really appreciate your channel.

toma.a
Автор

I see that you have many more cool/fascinating programming projects in your videos, so how can I not subscribe?

GregoryTheGrster
Автор

Ty for this series and all your effort, ended up checking your blog and channel and now i subscribed... :)

sophiacristina
Автор

One feature that helps make a synthesized musical instrument sound more realistic is to add some randomness to the signal. I noticed this in my voice synthesizer especially. The sound of a signal that is series of waves that are identical is so...cyborgic. The sound has a buzz that does not occur in real audio. I suspect that I'd want to add the randomness in the frequency domain, so that I could tinker with the amplitudes of the individual harmonic frequencies directly and precisely.

GregoryTheGrster
Автор

(RE: all the explanation up to 8:12) - it's interesting when you put it like this, because it could be manageable to actually have a big buffer size but also fire interrupts when the player is pressing or releasing a key to force recalculating the buffer? In fact if you take this to the extreme, you could have a pretty low timer frequency? Although when automatically playing keys, either through a MIDI (or MIDI-like) file, or your sampler system (which I didn't see yet), if you have many voices it might be costly, I guess you wouldn't want to recalculate that big of a buffer after all... Rule #1 of optimization is profiling :-) in the end as usual your solution is most simple for legibility and easy understanding. Cool stuff as usual! (also, I know this is two years old, sorry :-P)


EDIT: You'd also want to optimize-out interrupts when several keys are pressed at the same time, that works for automatic playing but still leaves the question open for chords. Alternatively, it could be transformed into a feature, by making sure key state transitions only happen at regular intervals, maybe a divisor of the tempo... Makes it sound like you're always perfectly on beat :-)


EDIT2: Sorry, I typed a block of text again. >__<

cheaterman
Автор

I subscribed this much coolness and a cool project

chiragsharmaYoutube
Автор

Good job @javidx9 you're nailing it!

aimanal-eryani
Автор

Just downloaded your example source code, thanks the for series in this topic.

smilefreakify
Автор

fantastic set of videos what would be the best way to display the sound ?

tommasobrega
Автор

11:36 So it's platform-locked? ;/

bonbonpony