Jump to content

  • Log In with Google      Sign In   
  • Create Account


Producing sound question


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 lomateron   Members   -  Reputation: 281

Like
0Likes
Like

Posted 09 May 2013 - 07:49 AM

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, 09 May 2013 - 09:18 AM.


Sponsor:

#2 jms bc   Members   -  Reputation: 412

Like
0Likes
Like

Posted 09 May 2013 - 09:44 AM

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 Musketeers of Happiness have left.


#3 frob   Moderators   -  Reputation: 16186

Like
1Likes
Like

Posted 09 May 2013 - 11:10 AM

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.


Check out my personal indie blog at bryanwagstaff.com.

#4 Burnt_Fyr   Members   -  Reputation: 961

Like
0Likes
Like

Posted 09 May 2013 - 11:20 AM

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



#5 lomateron   Members   -  Reputation: 281

Like
0Likes
Like

Posted 09 May 2013 - 11:16 PM

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, 09 May 2013 - 11:20 PM.


#6 BGB   Crossbones+   -  Reputation: 1458

Like
0Likes
Like

Posted 10 May 2013 - 02:49 AM

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



#7 dougbinks   Members   -  Reputation: 468

Like
0Likes
Like

Posted 11 May 2013 - 10:32 AM

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






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS