Page 2 of 4 FirstFirst 1234 LastLast
Results 11 to 20 of 31

Thread: Renewed OLA, Laseroids, Laser Pong, etc with QM2000 and RIYA support

  1. #11
    Join Date
    Apr 2010
    Location
    Grand Rapids, Mi
    Posts
    2,538

    Default

    Looking forward to giving this a try. Thanks!@
    leading in trailing technology

  2. #12
    Join Date
    Jan 2007
    Location
    Yorkshire, UK
    Posts
    4,585

    Default

    O.K., so I got a little time last night to try out the software...

    BRILLIANT !

    Thanks Zoof, really excellent work and I particularly like the ZoofScope. Are you open to suggestions?, if so, what would be the chances of allowing Zoofscope to be activated by an external sound source via the 'line in' socket of the computer? Doing that would allow both external audio sources and microphone input to be used as a means of activation.

    Also, I realise it's probably a mark of uniqueness, but is it possible to switch off the circle and just have the pure waveform trace?

    Please don't take the above as criticism of your software of any sort, these are purely personal observations

    Cheers

    Jem
    Quote: "There is a theory which states that if ever, for any reason, anyone discovers what exactly the Universe is for and why it is here it will instantly disappear and be replaced by something even more bizarre and inexplicable. There is another that states that this has already happened.”... Douglas Adams 1952 - 2001

  3. #13
    Join Date
    Dec 2006
    Location
    Netherlands
    Posts
    983

    Default

    Quote Originally Posted by Jem View Post
    O.K., so I got a little time last night to try out the software...

    BRILLIANT !

    Thanks Zoof, really excellent work and I particularly like the ZoofScope. Are you open to suggestions?, if so, what would be the chances of allowing Zoofscope to be activated by an external sound source via the 'line in' socket of the computer? Doing that would allow both external audio sources and microphone input to be used as a means of activation.

    Jem
    That is definitely something that would be extremely useful and cool and I've looked a bit at it but don't master the real-time audio analysis yet for it. So maybe in some time, if I can get around to it. But yeah, that will be the next thing! Glad you like it.

  4. #14
    Join Date
    Jan 2007
    Location
    Yorkshire, UK
    Posts
    4,585

    Default

    Thanks Zoof

    I'll keep watching and hoping...

    Cheers

    Jem
    Quote: "There is a theory which states that if ever, for any reason, anyone discovers what exactly the Universe is for and why it is here it will instantly disappear and be replaced by something even more bizarre and inexplicable. There is another that states that this has already happened.”... Douglas Adams 1952 - 2001

  5. #15
    Join Date
    Feb 2007
    Location
    Delaware USA
    Posts
    794

    Default

    Hey Zoof,

    Thanks for all the hard work you put into this

    Mark

  6. #16
    Join Date
    Sep 2010
    Location
    Between A Mirror And A Bright Place
    Posts
    13

    Default

    Hey Zoof!

    Keep up the great work!! Provided you are coding in C/C++, an excellent place to get a starting handle on audio analysis/FFT spectrum analyzer stuff is here:

    http://www.academictutorials.com/gra...-transform.asp

    A good number of the examples given are for graphics, but they show a few towards the middle talking about simple waveforms. With audio you are really just doing a 1D FFT on your sample-block of data instead of a 2D on a bitmap, and the nitty-gritty code for doing the actual FFT calculation is pretty much given. It simply needs to be adapted for use in extracting audio frequency data based on your sample rate/buffer size.

    If you've worked at all with the Windows API it's pretty trivial to open an input source and simply start receiving buffers from it via callback. You can then pass the buffer contents into the FFT function and get the entire spectrum analysis to DoInterestingStuff(tm) with the resulting data. We've done this for several projects here and it's pretty easy to get up and running in no time flat.

    These pages also contain a wealth of information regarding general Fourier theory if you're interested in understanding what the actual math is doing behind the scenes. Fourier has some amazing properties to it that manifest all over the place with laser, from diffraction grating effects to the operation of a PCAOM. (A PCAOM is, at the end of the day, essentially the physical manifestation of an infinite-resolution, instantaneous optical FFT! How cool is that?!)

    I look forward to seeing more with your visualizers in the near future!

    -- Matt

    Quote Originally Posted by Zoof View Post
    That is definitely something that would be extremely useful and cool and I've looked a bit at it but don't master the real-time audio analysis yet for it. So maybe in some time, if I can get around to it. But yeah, that will be the next thing! Glad you like it.

  7. #17
    Join Date
    Dec 2006
    Location
    Netherlands
    Posts
    983

    Default

    Hi Matt,

    For zoofscope I used the FMOD lib since it takes care of mp3 decoding and FFT all in one. For future developments I would definitely like to set up some code for that myself. Your links will be a great help!

    I haven't worked with the win API at all and actually so far, I base all my work on FLTK. Actually I'm a bit clueless on how how to capture a chunk of waveform from line-in / mic to feed to the FFT. Any pointers on that too??

    thanks,
    Matthijs

  8. #18
    Join Date
    Sep 2010
    Location
    Between A Mirror And A Bright Place
    Posts
    13

    Default

    Sure! Find a good source for Windows API reference (Google will usually return MSDN links if you start punching in API commands) and check out the following:

    For querying which input devices your system has:
    waveInGetNumDevs()
    waveInGetDevCaps()

    And for actually opening the device and streaming in the waveform chunks:
    waveInOpen()
    waveInPrepareHeader()
    waveInAddBuffer()
    waveInStart()

    Easiest way to do this is to set up a callback function that you send in to waveInOpen() and then simply process each datachunk as it arrives (to the callback) through the FFT code, and stick the results somewhere. A bit of a gotcha to remember is that the callback will be running in the context of an OS-level thread, so you have to be careful what you touch inside of it. For a non-critical application such as a visualizer, putting the resulting FFT data into a shared buffer elsewhere and simply reading it in your main processing thread is generally sufficient, since you're not too concerned with actual per-audio-buffer data synchronization updates. (or use a circular buffer and some semaphores if you want to go full-out!)

    Another hint -- since most of the 'interesting' stuff in the audio spectrum generally falls into the lower frequency bands anyhow, opening your input port at 11/22khz is usually far more than sufficient. 8-bit sample depth works just fine as well, since again you're just looking for presence info - you're not trying to build actual audio-quality filters to process the signal to hear, and it's a lot less data to process through the FFT.

    I have no doubt you can puzzle this out quite quickly seeing how much other stuff you've done! I look forward to the results!

    -- M

    Quote Originally Posted by Zoof View Post
    Hi Matt,

    For zoofscope I used the FMOD lib since it takes care of mp3 decoding and FFT all in one. For future developments I would definitely like to set up some code for that myself. Your links will be a great help!

    I haven't worked with the win API at all and actually so far, I base all my work on FLTK. Actually I'm a bit clueless on how how to capture a chunk of waveform from line-in / mic to feed to the FFT. Any pointers on that too??

    thanks,
    Matthijs
    Last edited by mpolak; 10-05-2010 at 14:06.

  9. #19
    Join Date
    Jan 2008
    Location
    Nootdorp, Zuid-Holland, Netherlands
    Posts
    162

    Default

    Hi Zoof,

    A bit of a lame question, but I can't seem to get the program's to work with my AudioDAC. I inserted the EzAudDac drivers and renamed the dll to easylase.dll but the program's don't seem to pick up the presence of my audiodac . Your previous versions are working fine though!

    ,Jordy
    Life is short.... Ride it hard!!

  10. #20
    Join Date
    Dec 2006
    Location
    Netherlands
    Posts
    983

    Default

    @Matt - good tips, thanks again. Looks like I'll try to get something going with the line-in.

    @Jordy - that is strange, I can't remember making any changes to the easylase support. It is definitely not intentional. The only thing I can think of now is that I changed to a newer version of MSVC, that may have some adverse effect on dll loading.......
    EDIT: did you include the EzAudDac.ini file in the folder?
    Last edited by Zoof; 10-06-2010 at 02:38.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •