Hey everyone, I'm looking for a simple way to generate a tone in ruby .
. . any suggestions?
···
--
Posted via http://www.ruby-forum.com/.
Hey everyone, I'm looking for a simple way to generate a tone in ruby .
. . any suggestions?
--
Posted via http://www.ruby-forum.com/.
Jeremiah Dodds wrote:
Hey everyone, I'm looking for a simple way to generate a tone in ruby .
. any suggestions?--
Posted via http://www.ruby-forum.com/\.
print "\a"
William James wrote:
Jeremiah Dodds wrote:
Hey everyone, I'm looking for a simple way to generate a tone in ruby .
. any suggestions?--
Posted via http://www.ruby-forum.com/\.print "\a"
Well, yeah sure. What I'd like to be able to do is generate a tone of a
specific frequency. Like an A note, or a D sharp.
--
Posted via http://www.ruby-forum.com/\.
Jeremiah Dodds wrote:
William James wrote:
> Jeremiah Dodds wrote:
>> Hey everyone, I'm looking for a simple way to generate a tone in ruby .
>> . any suggestions?
>>
>> --
>> Posted via http://www.ruby-forum.com/\.
>
> print "\a"Well, yeah sure. What I'd like to be able to do is generate a tone of a
specific frequency. Like an A note, or a D sharp.--
Posted via http://www.ruby-forum.com/\.
require "Win32API"
Beep = Win32API.new("kernel32", "Beep", ["I", "I"], 'v')
def beep freq, duration
Beep.call(freq, duration)
end
beep 600, 400
Jeremiah Dodds wrote:
William James wrote:
Jeremiah Dodds wrote:
Hey everyone, I'm looking for a simple way to generate a tone in ruby .
. any suggestions?--
Posted via http://www.ruby-forum.com/\.print "\a"
Well, yeah sure. What I'd like to be able to do is generate a tone of a specific frequency. Like an A note, or a D sharp.
I presume you want to play it out the speaker? I'm not sure if there's a portable way to do that, but in most unices it would be a matter of sending the audio data for that frequency to a special file, e.g. /dev/dsp. Or perhaps you want to save to a file. In either case, esp. the latter, ruby/audio would be worth a look.
Thanks William and Hans. William, if I was on windows that probably
would've helped.
Hans, I don't necessarily need to save to file - it could be handy
though. I'll check out ruby-audio.
I really need to learn not to post these help requests when I'm
sleep-deprived - I leave out vital information like what exactly I want
to do, and what OS I'm running on.
I want to generate the sound real-time - so I guess I'll need to figure
out how to send it to /dev/dsp or /dev/audio or whatnot.
--
Posted via http://www.ruby-forum.com/.
Something like this might work on *unix :
Jeremiah Dodds <apatheticagnostic@gmail.com> wrote:
Thanks William and Hans. William, if I was on windows that probably
would've helped.Hans, I don't necessarily need to save to file - it could be handy
though. I'll check out ruby-audio.I really need to learn not to post these help requests when I'm
sleep-deprived - I leave out vital information like what exactly I want
to do, and what OS I'm running on.I want to generate the sound real-time - so I guess I'll need to figure
out how to send it to /dev/dsp or /dev/audio or whatnot.
------------------------------------------------------------
Samplerate = 8000
def beep(frequency, amplitude, duration)
f = File.open("/dev/dsp", "w")
wave = ""
0.step(duration, 1.0/Samplerate) do |t|
y = Math.sin(t * frequency) * 50 + 127;
wave << y.to_i.chr
end
f.write(wave)
end
beep(2000, 100, 1)
------------------------------------------------------------
this code assumes the default settings of your soundcard are 8000 hz, 8
bits samples, signed, one channel. If you want more control over these
values, you will have to do fiddling with OSS IOCTL's or alsa libraries.
--
:wq
^X^Cy^K^X^C^C^C^C