Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вывод синуса,звука на выход звуковой карты


Василич ©   (2003-12-23 11:14:00) 

Как вывести синус, т.е. звук определЁнной частоты на выход звуковой карты?
Помогите, Пожалуйста!!!!!!


RusLand   (2003-12-26 15:31:00) [1]

2 Василич
А ссылочку, можно было бы здесь разместить.


shluz   (2003-12-26 10:13:00) [2]

Удалено модератором
Примечание: Личная переписка


Василич   (2003-12-25 00:54:00) [3]

Ура! нашел исходники! Генератор и осциллограф звука на delphi, Winapi.
Кому надо, пишите на мыло From_my@mail.ru
Всем Спасибо!!!!!!!!!!!!!!!!!!!!!


Evgeny V   (2003-12-23 14:28:00) [4]

Простой черновой пример

#include
#pragma hdrstop

#include "Unit1.h"
#include
#include
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HWAVEOUT sound_out_handle;
WAVEHDR   hdr[3];
WAVEFORMATEX wfx;
short int buff[3][4000];
bool st,ends;
void  CALLBACK modem_callback(DWORD hw, UINT uMsg, DWORD dwinstance, DWORD dwParam1, DWORD dwParam2);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
       : TForm(Owner)
{
st=false;
ends=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i,j,l;
double k;
MMRESULT p;
        wfx.wFormatTag  = WAVE_FORMAT_PCM;
wfx.nChannels  = 1;
wfx.nSamplesPerSec = 8000;
wfx.wBitsPerSample = 16;
wfx.nBlockAlign  = 2;
       wfx.nAvgBytesPerSec = 8000*2;
wfx.cbSize   = 0;

p=waveOutOpen((LPHWAVEOUT)&sound_out_handle,WAVE_MAPPER,(LPWAVEFORMATEX)&wfx.wFormatTag,(DWORD)&modem_callback,0,CALLBAC K_FUNCTION);

//Загрузка синуса 400 Гц
for (i=0;iProcessMessages();
Sleep(1500);// разрешаю закончить проигрыш текущих буферов,
// в рабочей проге лучше не так делать
waveOutReset(sound_out_handle);
waveOutClose(sound_out_handle);
Button1->Enabled=true;
}


Digitman   (2003-12-23 12:28:00) [5]

см. хэлп "Microsoft Multimedia Programmer's Reference", топик - "WaveOut"


Наверх

Титульная страница Поиск, карта сайта Написать письмо