Sign in to follow this  
lomateron

Producing sound question

Recommended Posts

lomateron    491

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++

Edited by lomateron

Share this post


Link to post
Share on other sites
jms bc    448

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.

Share this post


Link to post
Share on other sites
frob    44902

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.

Share this post


Link to post
Share on other sites
Burnt_Fyr    1665

@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.

Share this post


Link to post
Share on other sites
lomateron    491

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?

Edited by lomateron

Share this post


Link to post
Share on other sites
cr88192    1570

@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"...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this