Re: Glitch-free presentations with Windows 7 and Matlab (Trevor Agus )


Subject: Re: Glitch-free presentations with Windows 7 and Matlab
From:    Trevor Agus  <Trevor.Agus@xxxxxxxx>
Date:    Tue, 18 Oct 2011 23:40:08 +0200
List-Archive:<http://lists.mcgill.ca/scripts/wa.exe?LIST=AUDITORY>

Ah yes, we have a solution for the Windows 7 volume-control problem. The code is here: http://www.earcatching.com/volumecontrol/ It lets you control the two relevant Windows 7 sliders from a single line in Matlab. For example > tvolumecontrol(1,1); %sets both sliders to maximum. Saying that, it turns out that our soundcard just ignores those volume controls anyway. Thanks for the links, Etienne. So a correction: others have managed to compile playrec on Windows 7. I probably knew that once. However, I gave up after a 7-hour debugging marathon, which makes me think that, even if someone helps me compile it successfully, playrec isn't going to the be the easily portable, one-size-fits-all solution that used to exist. Trevor On 18 October 2011 19:46, Etienne Gaudrain <egaudrain.cam@xxxxxxxx> wrote: > Hi, > > Unless someone has found the solution (I can't recall), there's another > issue with Windows 7 which is that the mixer interface is unbelievably > complicated and it is a nightmare to set the sound level. If I'm correct > that nobody has provided a solution to this problem as yet, this is another > good reason to stick to good old XP. > > Note that the issue also sometime arise with ASIO drivers in WinXP as well > because the ASIO volume isn't always linked to the Windows' mixer volume. > > Otherwise, another alternatives is to play sounds through TDT Systems. But > again we are far from the simple "sound" function in Matlab (although I > don't see why anyone would like to use this when the audioplayer object > offers so much more flexibility). > > -Etienne > > > PS: Trevor, I guess you've seen this: > http://www.playrec.co.uk/forum/viewtopic.php?id=209 and other entries in > this forum: http://www.playrec.co.uk/forum/viewforum.php?id=4. > > > > On 18/10/2011 16:52, Trevor Agus wrote: >> >> I've found it surprisingly difficult to present glitch-free sounds with >> Windows 7. >> >> The short answer is that Padraig Kitterick's "asioWavPlay" seems to be the >> simplest reliable method (remembering to buffer the waveforms with 256 >> samples >> of silence to avoid truncation issues). For those with more complex needs, >> perhaps soundmexpro or PsychToolbox would be better. I'd value any second >> opinions and double-checking, so a review of the options follows, with all >> the >> gory details. >> >> I've been using a relatively old version of Matlab (R2007b) with a >> Fireface UC >> soundcard. If the problems are fixed in another version or soundcard, I'd >> love >> to know about it. >> >> ===Matlab's native functions (sound, wavplay, audioplayer) >> Large, unpredictable truncations were the least of our problems. We also >> often >> got mid-sound glitches, ranging from sporadic (just a few subtle glitches >> per >> minute) to frequent (making the sound barely recognisable). The magic >> formula >> for eliminating the glitches seemed to be to keep the soundcard turned off >> until >> the desktop was ready, with all background programs loaded. (Restarting >> either >> the soundcard or  the computer alone guaranteed some glitches.) So this >> formula >> seems to work, but it's a bit too Harry Potter for my liking, and the >> spell >> might change with the next Windows update.  I think I read that Fireface >> were >> no longer supporting Microsoft's vagaries, and they recommended using >> ASIO. I'm >> not sure if other high-end soundcard manufacturers are any different. >> Since >> Matlab's native functions don't support ASIO (unless the new versions >> do?), >> I think we're forced to look at the ASIO options. >> >> ===playrec >> This seems to be potentially the most flexible method of presenting sounds >> but >> I've hit a brick wall compiling it for Windows 7. I think its author >> stopped >> providing support for it a few years ago. Has anyone had more success than >> me? >> >> ===asioWavPlay >> This simply presents a .wav file using ASIO. It's a little annoying that >> you >> have to save your sound to disk before presenting it, but as Joachim >> pointed >> out, it's not too difficult to automate this process. While doing that, I >> add >> 256 samples of silence to the end to work around the truncation problem. >> >> ===pa_wavplay >> This is nearly the perfect solution except (1) the number of samples >> truncated >> from the end is slightly unpredictable and (2) it prints a message on the >> screen after every sound ("Playing on device 0"). For these two reasons, I >> prefer asioWavPlay. >> >> ===soundmexpro >> This might be best choice for the high-end user (I've just had a quick >> look at >> the demo version today). It's easy to install and there are good >> tutorials, but >> it involves initialising sound objects, etc. -- it's not just a >> replacement for >> Matlab's "sound" command. Also it looks like it's €500+. >> >> ===PsychToolbox >> Originally designed for visual experiments, PsychToolbox has now got quite >> extensive low-latency sound functions, including realtime continuous >> playing/recording. It's also free. However, it's slightly challenging to >> install  Like soundmexpro, it's object-oriented -- so don't expect to play >> a >> sound with a simple one-liner. >> >> ===PortAudio >> Most of above programs are based on this C library. If you're an >> experienced >> programmer, perhaps you'd prefer to go direct the source? And while you're >> there, perhaps you could write the perfect Matlab-ASIO interfaces for the >> rest >> of us? (Please!) >> >> Has anyone found a simpler solution? I'd be glad to hear it. >> >> Trevor > > > -- > Etienne Gaudrain, PhD > MRC Cognition and Brain Sciences Unit > 15 Chaucer Road > Cambridge, CB2 7EF > UK > Phone: +44 1223 355 294, ext. 645 > Fax (unit): +44 1223 359 062 >


This message came from the mail archive
/var/www/postings/2011/
maintained by:
DAn Ellis <dpwe@ee.columbia.edu>
Electrical Engineering Dept., Columbia University