Producing sound question

Started by
5 comments, last by dougbinks 10 years, 11 months ago

Is there any way I can produce sound coding it bit by bit and outputting the sound directly using a loop?

Like creating a .wav raw file but outputing the sound directly hz by hz as it loops through the code

I am using C++

Advertisement

Just noticed for the first time that there is no audio technical section...

I had a similar project a few years ago. While I have no expertise to share, I did well by searching out sites put up by people learning/using DSP. A lot of them will test effects algorithms and wave gen techniques on the CPU using c++ and you can see how they load and play arbitrary samples generated at run-time. I found a c++ square-wave generator that taught me everything I needed to know.

The Four Horsemen of Happiness have left.

Is there any way I can produce sound coding it bit by bit and outputting the sound directly using a loop?

Like creating a .wav raw file but outputing the sound directly hz by hz as it loops through the code

I am using C++

Why?

Understanding the "why" will help others answer.

CAN you? Yes, you can write a CPU-based audio processor. You can use the CPU to mix the sound if you want, but then you are no longer programming a game. You are programming a digital signal processor, something your machine has many of. You are building something that the hardware was designed for, and can do both faster and better than you.

If your goal is to learn about digital signal processing, there are many excellent books on the subject. Most require some pretty intense math, but the subject is fun to many people.

If your goal is to create something useful for a game, you are probably heading down the wrong path.

@jms bc:I made this same realization a yea or two ago, and even suggested one at one point in time, but never saw it materialize.

@op which systems are you targeting? are you programming to win32 api, directx, or are you using a library such as sfml? depending on the answers to these questions as well as your experience you may have a long road ahead.

I just want to create some sound bit by bit and output the sound directly, so i could interact with the sound in real time using a pc input mixed with the code that produces the sound.

The part of having bit by bit control of the sound is the most important.

Sound cards can do this, I will like to know how too use them, does someone knows were to start?

@op:

typically, a person will use the relevant APIs (such as DirectSound or Win32 mmsystem) to get a sound buffer which they can mix into.

pretty much the rest mostly comes down to filling in arrays of sample data.

AFAIK, for most common audio chipsets (of the AC'97 and HD Audio variety), pretty much all the mixing is done on the CPU anyways (typically in the sound-libraries or drivers).

luckily, for the most part audio-processing isn't usually all that particularly computationally demanding (at least provided it is within "reasonable limits").

but, yeah, "usual warnings still apply"...

You might want to try out this project: https://github.com/micknoise/Maximilian

This topic is closed to new replies.

Advertisement