मैं समय के साथ बदलते विशिष्ट आवृत्तियों और आयामों के साथ एक निरंतर ध्वनि उत्पन्न करना और खेलना चाहता हूं। मैं आवाजों के बीच देरी नहीं करना चाहता। मैं डेल्फी या सी ++ बिल्डर के साथ ऐसा कैसे कर सकता हूं?मैं विभिन्न आवृत्तियों के निरंतर स्वर कैसे उत्पन्न कर सकता हूं?
9
A
उत्तर
1
WaveAudio लाइब्रेरी का उपयोग कर यह एक सतत cosinus लहर उत्पन्न करने के लिए संभव है के द्वारा।
मैं कुछ कोड पोस्ट करने वाला था लेकिन मैं यह नहीं समझ सकता कि इसे ठीक से कैसे किया जाए, इसलिए मैं नहीं करूँगा।
लेकिन आपको केवल इतना करना है कि TLiveAudioPlayer का उपयोग करें और फिर ऑनडाटा ईवेंट ओवरराइड करें।
और यदि कोई संदेश पंप नहीं है तो असिंक को भी सत्य पर सेट करें।
17
यह बहुत ही सरल उदाहरण आपको शुरू करना चाहिए।
विशेष साफ इंटरफ़ेस मेंprogram Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Windows, MMSystem;
type
TWaveformSample = integer; // signed 32-bit; -2147483648..2147483647
TWaveformSamples = packed array of TWaveformSample; // one channel
var
Samples: TWaveformSamples;
fmt: TWaveFormatEx;
procedure InitAudioSys;
begin
with fmt do
begin
wFormatTag := WAVE_FORMAT_PCM;
nChannels := 1;
nSamplesPerSec := 44100;
wBitsPerSample := 32;
nAvgBytesPerSec := nChannels * nSamplesPerSec * wBitsPerSample div 8;
nBlockAlign := nChannels * wBitsPerSample div 8;
cbSize := 0;
end;
end;
// Hz // msec
procedure CreatePureSineTone(const AFreq: integer; const ADuration: integer;
const AVolume: double { in [0, 1] });
var
i: Integer;
omega,
dt, t: double;
vol: double;
begin
omega := 2*Pi*AFreq;
dt := 1/fmt.nSamplesPerSec;
t := 0;
vol := MaxInt * AVolume;
SetLength(Samples, Round((ADuration/1000) * fmt.nSamplesPerSec));
for i := 0 to high(Samples) do
begin
Samples[i] := round(vol*sin(omega*t));
t := t + dt;
end;
end;
procedure PlaySound;
var
wo: integer;
hdr: TWaveHdr;
begin
if Length(samples) = 0 then
begin
Writeln('Error: No audio has been created yet.');
Exit;
end;
if waveOutOpen(@wo, WAVE_MAPPER, @fmt, 0, 0, CALLBACK_NULL) = MMSYSERR_NOERROR then
try
ZeroMemory(@hdr, sizeof(hdr));
with hdr do
begin
lpData := @samples[0];
dwBufferLength := fmt.nChannels * Length(Samples) * sizeof(TWaveformSample);
dwFlags := 0;
end;
waveOutPrepareHeader(wo, @hdr, sizeof(hdr));
waveOutWrite(wo, @hdr, sizeof(hdr));
sleep(500);
while waveOutUnprepareHeader(wo, @hdr, sizeof(hdr)) = WAVERR_STILLPLAYING do
sleep(100);
finally
waveOutClose(wo);
end;
end;
begin
try
InitAudioSys;
CreatePureSineTone(400, 1000, 0.7);
PlaySound;
except
on E: Exception do
begin
Writeln(E.Classname, ': ', E.Message);
Readln;
end;
end;
end.
सूचना आपको मिलेगा:
InitAudioSys;
CreatePureSineTone(400, 1000, 0.7);
PlaySound;
संबंधित मुद्दे
- 1. मैं पायथन में यादृच्छिक संख्या कैसे उत्पन्न कर सकता हूं?
- 2. मैं सी का उपयोग कर लिनक्स में एक स्वर कैसे चला सकता हूं?
- 3. मैं निरंतर कार्य उदाहरण कैसे शुरू कर सकता हूं?
- 4. मैं बिना फ्रेम के जावाडॉक कैसे उत्पन्न कर सकता हूं?
- 5. क्या सी # में जटिल स्वर उत्पन्न करना संभव है?
- 6. मैं स्ट्रिंग का लंबा हैश कैसे उत्पन्न कर सकता हूं?
- 7. मैं विम में एक GUID कैसे उत्पन्न कर सकता हूं?
- 8. मैं जावा ऑब्जेक्ट से एचटीएमएल कैसे उत्पन्न कर सकता हूं?
- 9. मैं गतिशील जावास्क्रिप्ट कैसे उत्पन्न कर सकता हूं?
- 10. मैं पीडीएफएलएटीएक्स से पीडीएफ इंडेक्स कैसे उत्पन्न कर सकता हूं?
- 11. मैं एक .pfx फ़ाइल कैसे उत्पन्न कर सकता हूं?
- 12. मैं Winform नियंत्रण से बिटमैप कैसे उत्पन्न कर सकता हूं?
- 13. रेजर इंजन - मैं विभिन्न स्थितियों के आधार पर विभिन्न बॉडी टैग कैसे प्रस्तुत कर सकता हूं?
- 14. जावा में मैं स्वर कैसे हटा सकता हूं 'ए', 'ई', 'मैं', 'ओ' और 'यू
- 15. आयातित पायथन मॉड्यूल में निरंतर ओवरराइड कैसे कर सकता हूं?
- 16. स्वचालित रूप से diacritized स्वर तालिका कैसे उत्पन्न करें?
- 17. मैं डेल्फी के साथ एक एकल स्वर या कस्टम तरंग कैसे खेल सकता हूं?
- 18. रूबी में बाहरी निर्भरताओं के बिना मैं एक छवि कैसे उत्पन्न कर सकता हूं?
- 19. मैं एक सीमा के भीतर एक यादृच्छिक संख्या कैसे उत्पन्न कर सकता हूं लेकिन कुछ को बाहर कर सकता हूं?
- 20. मैं अपने कोड के निरंतर दृश्य में निर्माण की तारीख को स्वचालित कैसे कर सकता हूं?
- 21. मैं रेल के विभिन्न संस्करण कैसे स्थापित कर सकता हूं और मौजूदा लोगों को कैसे रख सकता हूं?
- 22. मैं आउटपुटस्ट्रीम को कैसे कार्यान्वित कर सकता हूं जिसे मैं रिवाइंड कर सकता हूं?
- 23. मैं एनएचबीर्नेट कैसे निष्पादित किए बिना SQL उत्पन्न कर सकता हूं?
- 24. मैं पर्ल में विभिन्न पैकेजों के बीच वैश्विक मूल्य कैसे साझा कर सकता हूं?
- 25. मैं विभिन्न पर्ल अनुप्रयोगों के लिए विशेष वातावरण कैसे स्थापित कर सकता हूं?
- 26. मैं विभिन्न आयामों की दो छवियों के स्पेक्ट्रा को कैसे गुणा कर सकता हूं?
- 27. मैं निरंतर और एक चर को कैसे जोड़ सकता हूं और इसे PHP के साथ कक्षा निरंतर स्टोर कर सकता हूं?
- 28. मैं SWIG का उपयोग कर सी ++ एपीआई पर सी रैपर कैसे उत्पन्न कर सकता हूं?
- 29. मैं जावा का उपयोग कर जावडॉक्स कैसे उत्पन्न कर सकता हूं?
- 30. मैं 'godoc` का उपयोग कर HTML दस्तावेज़ कैसे उत्पन्न कर सकता हूं?
देखें [waveOutXXX फ़ंक्शन परिवार] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd757715 (v = vs.85) .aspx) –
चूंकि आपने मेरा जवाब स्वीकार नहीं किया है, मुझे लगता है कि यह आपकी मदद नहीं करता है। शायद आप समझा सकते हैं कि यह आपकी मदद क्यों नहीं करता? –