![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 2/22/2010 8:16 AM, Invisible wrote:
> Go here:
>
> http://www.falstad.com/mathphysics.html
>
Something that should be on any geek's bookmarks list!
> Scroll down to "signal processing".
>
> They have two applets. One lets you draw an arbitrary waveform and see
> its Fourier series, draw an arbitrary Fourier series and let you see its
> waveform, and listen to the result in either case.
>
> They also have a little DSP applet which will let you play [literally!]
> with any kind of FIR or IIR filter known to mankind - not just the usual
> type-I Chebyshev filter, but also type-II, for example. See and hear in
> realtime, tweak the parameters, and so forth.
Yep! These applets are quite fun indeed! I've burned many hours playing
with them.
> That single page also has links to a ridiculous number of other
> addictive applets, like wavetank simulators, circuit simulators, and God
> only knows what else. You might not leave for several hours.
I've actually begun poking around in the source code of the circuit
sim.... Generally well-written stuff, very organized and easy to
understand. Not a whole lot of comments though.
I've had a couple of e-mail exchanges with the author. All around nice guy!
--
~Mike
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> What I really wanted was to be able to do it on a chip and then have it
> process sound real-time. That would have helped me see the application
> much more clearly.
If you have a fast enough computer and use a fast enough language you should
be able to do some pretty funky stuff on your home PC with the line/mic
input and the speaker output of your sound card. I would recommend using
C++ and the ASIO driver/protocol - it's really fast (very low latency) and
easy to code for.
As an aside, I looked into this recently because my transmitter for a radio
controlled helicopter outputs a PWM signal that can be connected to the PC's
audio input. I tried to process this data using the standard Windows API
calls for recording audio and then DirectSound, but they were *way* too slow
(when trying to control a helicopter, even a 200 ms delay on the controls
makes it very hard to control, I was seeing more like 500 ms). I found the
ASIO drivers and it worked perfectly with seemingly instant response time,
now I can use the RC simulator with my own controller!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
scott wrote:
>> What I really wanted was to be able to do it on a chip and then have
>> it process sound real-time. That would have helped me see the
>> application much more clearly.
>
> If you have a fast enough computer and use a fast enough language you
> should be able to do some pretty funky stuff on your home PC with the
> line/mic input and the speaker output of your sound card. I would
> recommend using C++ and the ASIO driver/protocol - it's really fast
> (very low latency) and easy to code for.
Yeah, ASIO is especially designed for low latency. The reason I spent
produced sane latency. (Try playing keyboard when there's a 500ms delay
between pressing a key and hearing something!)
Of course, I use Reaktor for my DSP programming, but that's just a *tad*
expensive...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> What I really wanted was to be able to do it on a chip and then have
>> it process sound real-time. That would have helped me see the
>> application much more clearly.
>
> If you have a fast enough computer and use a fast enough language you
> should be able to do some pretty funky stuff on your home PC with the
> line/mic input and the speaker output of your sound card. I would
> recommend using C++ and the ASIO driver/protocol - it's really fast
> (very low latency) and easy to code for.
Perhaps I didn't make this very clear...
A modern PC is already easily fast enough to do realtime DSP even in
quite low-powered languages. Falstad is doing it in mere Java, for
example. You don't need to do anything special if you're just doing a
simple digital filter implementation, for example.
Now, if you want something that you could use for serious studio work,
or you want to do really complex processing, you're going to need
specialist tools. But if you just want to play around with basic DSP
algorithms, you really don't need chips. Just a programming language
with access to sound hardware. It's really not computationally
challenging any more.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> on a new sound card was because it provided ASIO drivers and produced sane
> latency.
I just have on-board sound but downloaded this:
http://www.asio4all.com/
Works a treat.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
scott wrote:
>> Yeah, ASIO is especially designed for low latency. The reason I spent
>> produced sane latency.
>
> I just have on-board sound but downloaded this:
>
> http://www.asio4all.com/
>
> Works a treat.
Mmm, nice. (Not quite sure how adding more processing can make it do
*faster*, but anyway...)
Presumably this doesn't improve the sound quality in quite the same way
for music-making either. ;-)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> http://www.asio4all.com/
>>
>> Works a treat.
>
> Mmm, nice. (Not quite sure how adding more processing can make it do
> *faster*, but anyway...)
My understanding is that it bypasses all the standard Windows APIs, buffers,
sound card drivers and sample rate converter gumpf and just accesses the
ADC/DAC directly (somehow). I must admit I didn't look much into it, just
installed it and it worked very well.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> Mmm, nice. (Not quite sure how adding more processing can make it do
>> *faster*, but anyway...)
>
> My understanding is that it bypasses all the standard Windows APIs,
> buffers, sound card drivers and sample rate converter gumpf and just
> accesses the ADC/DAC directly (somehow).
You need the sound card drivers or you won't know *how* to access the
ADC. But maybe it buffers the data differently or something, IDK.
> I must admit I didn't look
> much into it, just installed it and it worked very well.
Well, that's the main thing, eh? ;-)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> You need the sound card drivers or you won't know *how* to access the ADC.
> But maybe it buffers the data differently or something, IDK.
According to Wikipedia the main benefit is from bypassing the Windows mixer
software, which I assume introduces significant latency. Apparently this
was improved for Vista, but I still noticed huge latency on my Vista machine
before I used ASIO.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
scott wrote:
>> You need the sound card drivers or you won't know *how* to access the
>> ADC. But maybe it buffers the data differently or something, IDK.
>
> According to Wikipedia the main benefit is from bypassing the Windows
> mixer software, which I assume introduces significant latency.
> Apparently this was improved for Vista, but I still noticed huge latency
> on my Vista machine before I used ASIO.
Seems plausible.
I've also seem a lot of "sound drivers" which also install shedloads of
user-mode GUI fanciness for applying effect filters and EQ adjustments
and so on...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |