| | |
Sound in C++
Please support our C++ advertiser: Programming Forums - DaniWeb Sister Site
![]() |
•
•
Join Date: Dec 2004
Posts: 3
Reputation:
Solved Threads: 0
Hey I'm pretty new to C++. I'm taking a class on it now but I don't know how to make sounds in C++... I've done QBasic so I have a little programming background. I'm right now thinking of what to do for a program, and it largely depends on if I can make sounds or not and what sounds. I'm hoping to make some sort of dial up sound. If you can point me in the right direction or help me in any way, it'd be greatly appreciated. Thanks! :mrgreen:
-Dem-
-Dem-
I assume you are using Windows. With your knowledge in basic you should look into BCX. It programs in a modern basic and then translates to compile with a number of C or C++ compilers. I look at C is just a subset of C++, well let's say 99% of it is.
BCX comes with a fair number of sound examples. Look over the generated C code to get an understanding of the API calls it makes.
You can download the whole system for free from:
http://www.rjpcomputing.com/programm.../devsuite.html
I have used BCX to learn the finer points of C and C++ myself for quite a while, and recommend it as a learning tool!
For simple sounds on the internal speaker use a Windows API call to Beep(), the code below should work with most any C++ compiler. I tested it with the Dev C++ IDE that uses the very generic GNU compiler G++.
[php]// simple sounds via Beep(frequency_hrz, duration_ms)
#include <iostream>
#include <windows.h> // WinApi header
using namespace std;
int main()
{
Beep(523,500); // 523 hertz (C5) for 500 milliseconds
Beep(587,500);
Beep(659,500);
Beep(698,500);
Beep(784,500);
cin.get(); // wait
return 0;
}
[/php]
BCX comes with a fair number of sound examples. Look over the generated C code to get an understanding of the API calls it makes.
You can download the whole system for free from:
http://www.rjpcomputing.com/programm.../devsuite.html
I have used BCX to learn the finer points of C and C++ myself for quite a while, and recommend it as a learning tool!
For simple sounds on the internal speaker use a Windows API call to Beep(), the code below should work with most any C++ compiler. I tested it with the Dev C++ IDE that uses the very generic GNU compiler G++.
[php]// simple sounds via Beep(frequency_hrz, duration_ms)
#include <iostream>
#include <windows.h> // WinApi header
using namespace std;
int main()
{
Beep(523,500); // 523 hertz (C5) for 500 milliseconds
Beep(587,500);
Beep(659,500);
Beep(698,500);
Beep(784,500);
cin.get(); // wait
return 0;
}
[/php]
May 'the Google' be with you!
•
•
•
•
Originally Posted by Demetrius
I'm using DevC++ from Bloodshed and my OS is XP. I looked at the libraries and have no idea which is sound :cry:
Dem
http://www.daniweb.com/code/snippet97.html
For those who need some hand holding with the Dev C++ IDE:
In the IDE go to FILE, then NEW, then Project, select (in this case) Console Application, give it a name like Sound1 then click OK. A filesave dialog box comes up, create a new folder, might as well call it Sound1, open it and save project file Sound1.dev there. The DevCpp IDE comes up with a bare bones template, select and delete that and cut and paste the snippet code into the empty editor page. Now compile and run. Don't forget to turn your speakers on.
May 'the Google' be with you!
•
•
•
•
Originally Posted by Demetrius
Heey ok thanks, the beeping worked and the other code for the 'voices' worked but now I'm trying to figure out how that code works. Any hints would help. The script is located in the URL given in an above post.
Thanks everyone!
-Dem-
May 'the Google' be with you!
There is another way to make a sound, quite simple, you load a wave file and play it:
[php]// play a wave file sound using the winmm library
// For DevCpp add the library libwinmm.a to linker via
// Project/Project Options/Parameters/Add Library
// remember this is a console program!
#include <iostream>
#include <windows.h> // for PlaySound()
#define SND_FILENAME 0x20000
#define SND_LOOP 8
#define SND_ASYNC 1
using namespace std;
int main()
{
// play sound as loop (remove SND_LOOP for one time play)
// file boing.wav has be in the working directory
PlaySound("boing.wav",NULL,SND_FILENAME|SND_LOOP|SND_ASYNC);
cin.get(); // wait
return 0;
}
[/php]
[php]// play a wave file sound using the winmm library
// For DevCpp add the library libwinmm.a to linker via
// Project/Project Options/Parameters/Add Library
// remember this is a console program!
#include <iostream>
#include <windows.h> // for PlaySound()
#define SND_FILENAME 0x20000
#define SND_LOOP 8
#define SND_ASYNC 1
using namespace std;
int main()
{
// play sound as loop (remove SND_LOOP for one time play)
// file boing.wav has be in the working directory
PlaySound("boing.wav",NULL,SND_FILENAME|SND_LOOP|SND_ASYNC);
cin.get(); // wait
return 0;
}
[/php]
May 'the Google' be with you!
![]() |
Similar Threads
- sound of a water drip (Windows NT / 2000 / XP)
- can you hook a computer up to a receiver for surround sound? (Troubleshooting Dead Machines)
- presario 700 sound (Windows NT / 2000 / XP)
- Audio/Sound Unknown? (Windows NT / 2000 / XP)
- Help sound file deleted. (Windows 95 / 98 / Me)
- Sound Card won't work on laptop (*nix Hardware Configuration)
Other Threads in the C++ Forum
- Previous Thread: Play a MIDI voice (Dev C++ console program)
- Next Thread: Reading binary data from a file
Views: 88526 | Replies: 12
| Thread Tools | Search this Thread |
Tag cloud for C++
6 add api array arrays beginner binary c++ c/c++ calculator char class classes code compile compiler console conversion convert count data delete desktop directshow dll dynamic encryption error file forms fstream function functions game givemetehcodez google graph homeworkhelper iamthwee ifstream input int integer java lazy lib linkedlist linker linux loop looping loops map math matrix memory microsoft newbie news number output parameter pointer problem program programming project proxy python random read recursion recursive reference return sort stream string strings struct studio system template templates test text tree unix url variable vector video visual visualstudio win32 windows winsock word wordfrequency wxwidgets






