Re: Linux sound output
- To: mathgroup at smc.vnet.net
- Subject: [mg19225] Re: Linux sound output
- From: paulh at monon.wolfram.com (P.J. Hinton)
- Date: Wed, 11 Aug 1999 02:06:44 -0400
- Organization: "Wolfram Research, Inc."
- References: <7ook88$i3d@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <7ook88$i3d at smc.vnet.net>, Phil Mendelsohn <mend0070 at tc.umn.edu> writes: >I run Mathematica v3.01 under Linux (Mandrake 6.0, 2.2.9 kernel). I >recently got the OSS driver to talk to my sound hardware. KDE and other >apps do, but as yet I cannot get Mathematica to output sound correctly. >I have tried starting with the -cleanStart option to rebuild prefs. > >If there is anyone with either the specific information or enough >general knowledge of these matters to help me get Mathematica talking to >OSS correctly, I'd sure appreciate the input. Unfortunately, none of the X Window-based front ends on any of the Unix platforms support the playing of sound. Fortunately, you can change some settings in the kernel so that you can have it play the sound every time you invoke Show[] on a Sound object. There is a global session variable named $SoundDisplay, which is what the kernel uses to play a sound. A couple of years ago, Bernd Pfitzinger wrote a clever little Perl script to translate the MPS expression created by Display into WAV format so that it can be piped to a command-line player tool. [begin Perl script wav.pl] #!/bin/perl while(<STDIN>){ last if(/1 string/) } @sample=split(" ",<STDIN>); #print "sample rate $sample[0] sample depth(bits) $sample[2]\n"; #print "Currently only 8 bit sample depth is working\n"; open out,"|bplay -s $sample[0] >& /dev/null"; <STDIN>; <STDIN>; while(<STDIN>){ exit if(/pop/); chomp; for($i=0;$i<=length($_)-2;$i=$i+2){ $out=pack("c",hex(substr($_,$i,2))); print out $out; } } [end Perl script wav.pl] The value of $SoundDisplay should be set to $SoundDisplay="!wav.pl", or whatever you name the Perl script above. To ensure that the kernel sets this value of $SoundDisplay at startup, edit the setting for $SoundDisplay in either SystemFiles/Graphics/Packages/PSDirect.m (if you run the kernel from the front end) and SystemFiles/Graphics/Packages/X11.m (if you run the kernel with from a shell using Motif graphics). -- P.J. Hinton Mathematica Programming Group paulh at wolfram.com Wolfram Research, Inc. Disclaimer: Opinions expressed herein are those of the author alone.