PC ses kartından ses sinyal jenaratörü yapmak

Başlatan z, 17 Kasım 2015, 09:37:40

z

Bu günlerde ses sinyal jenaratörüne ihtiyacım var.

Devre kuracaktım ki PC ses kartını kullanabilirsem devreydi beslemeydi uğraşmama gerek kalmayacak ve ses sinyalini kulaklık çıkışından alabilirim.

Bunun için hazır program yada Delphi için örnek kod bilen varmı?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

zipzip

Daqarta veya  virtins multi-instrument işine yarayabilir. Ayrıca Audiocity de sinyal üretme imkanı var.

polleme

Bu yapılır ama ses kartı çıkışına devreden gelecek ters bir gerilimle zarar verme ihtimaline karşı tedbirli olmak gerek. Bunun için bir buffer kullanabilirsiniz ama yine küçük de olsa bir devre yapımı ve yine bir besleme gündeme gelecektir. Bir örnek:

https://sites.google.com/site/hobbydebraj/home/pc-based-signal-generator

OG

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

z

Alıntı yapılan: polleme - 17 Kasım 2015, 11:09:39
Bu yapılır ama ses kartı çıkışına devreden gelecek ters bir gerilimle zarar verme ihtimaline karşı tedbirli olmak gerek. Bunun için bir buffer kullanabilirsiniz ama yine küçük de olsa bir devre yapımı ve yine bir besleme gündeme gelecektir. Bir örnek:

https://sites.google.com/site/hobbydebraj/home/pc-based-signal-generator

Kulaklık çıkışı ile kulaklığı süren çip arasında kapasitif kuplaj yokmu?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z


uses 
  MMSystem

type 
  TVolumeLevel 
0..127

procedure MakeSound(Frequency{Hz}, Duration{mSec}: IntegerVolumeTVolumeLevel); 
  {
writes tone to memory and plays it
var 
  
WaveFormatExTWaveFormatEx
  
MSTMemoryStream
  
iTempIntDataCountRiffCountinteger
  
SoundValuebyte
  
wdouble// omega ( 2 * pi * frequency) 
const 
  
MonoWord = $0001
  
SampleRateInteger 11025// 8000, 11025, 22050, or 44100 
  
RiffIdstring 'RIFF'
  
WaveIdstring 'WAVE'
  
FmtIdstring 'fmt '
  
DataIdstring 'data'
begin 
  
if Frequency > (0.6 SampleRatethen 
  begin 
    ShowMessage
(Format('Sample rate of %d is too Low to play a tone of %dHz'
      [
SampleRateFrequency])); 
    Exit; 
  
end
  
with WaveFormatEx do 
  
begin 
    wFormatTag 
:= WAVE_FORMAT_PCM
    
nChannels := Mono
    
nSamplesPerSec := SampleRate
    
wBitsPerSample := $0008
    
nBlockAlign := (nChannels wBitsPerSamplediv 8
    
nAvgBytesPerSec := nSamplesPerSec nBlockAlign
    
cbSize := 0
  
end
  
MS := TMemoryStream.Create
  
with MS do 
  
begin 
    
{Calculate length of sound data and of file data
    
DataCount := (Duration SampleRatediv 1000// sound data 
    
RiffCount := Length(WaveId) + Length(FmtId) + SizeOf(DWORD) + 
      
SizeOf(TWaveFormatEx) + Length(DataId) + SizeOf(DWORD) + DataCount// file data 
    
{write out the wave header
    
Write(RiffId[1], 4); // 'RIFF' 
    
Write(RiffCountSizeOf(DWORD)); // file data size 
    
Write(WaveId[1], Length(WaveId)); // 'WAVE' 
    
Write(FmtId[1], Length(FmtId)); // 'fmt ' 
    
TempInt := SizeOf(TWaveFormatEx); 
    
Write(TempIntSizeOf(DWORD)); // TWaveFormat data size 
    
Write(WaveFormatExSizeOf(TWaveFormatEx)); // WaveFormatEx record 
    
Write(DataId[1], Length(DataId)); // 'data' 
    
Write(DataCountSizeOf(DWORD)); // sound data size 
    
{calculate and write out the tone signal// now the data values 
    
:= Pi Frequency// omega 
    
for := 0 to DataCount do 
    
begin 
      SoundValue 
:= 127 trunc(Volume sin(SampleRate)); // wt = w * i / SampleRate 
      
Write(SoundValueSizeOf(Byte)); 
    
end
    {
now play the sound
    
sndPlaySound(MS.MemorySND_MEMORY or SND_SYNC); 
    
MS.Free
  
end
end

procedure TForm1.Button1Click(SenderTObject); 
begin 
  MakeSound
(1200100060); 
end

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Mucit23

Abi android telefon kullanıyorsan bu konuda birkaç güzel uygulama var. Şiddetle tavsiye ederim.

Frekans aralığı elbette donanımın müsade ettiği sınırlar içerisindedir.
Bunları bir incele
https://play.google.com/store/search?q=frequency%20generator&c=apps&docType=1&sp=CAFiFQoTZnJlcXVlbmN5IGdlbmVyYXRvcnoFGADAAQKKAQIIAQ%3D%3D%3AS%3AANO1ljKSRhA&hl=tr
Zamanında FFT ile çalışıyorken bana bayağı bir kolaylık sağlamıştı.

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.