Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Aug 2011 21:39:21 +0200
From:      Polytropon <freebsd@edvax.de>
To:        Gary Kline <kline@thought.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: library with click built-in?
Message-ID:  <20110812213921.6cfdfa89.freebsd@edvax.de>
In-Reply-To: <20110812192745.GA15543@thought.org>
References:  <20110812192745.GA15543@thought.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 12 Aug 2011 12:27:48 -0700, Gary Kline wrote:
> I only use my FreeBSD computer as a server; it isn't even hooked
> up to my speakers, so there is no way of testing anything i write
> that involves sound.  So....  does anybody know if any other toolkit
> outputs audio?  

There are two means:

The first one is the echoing of the ^G (BEL) character, 0x07
which is handled by the text mode console or terminal emulators
like xterm. In X, the sound that will be produced can be
controlled with a xset setting.

xset [-b] [b {on|off}] [b [volume [pitch [duration]]]]

See "man xset" for details.


The other one is the system speaker. If you have "device speaker"
in your kernel, you can access /dev/speaker (if the permissions
are set properly, see /etc/devfs.conf for an example. Using
the "note language" known from several BASIC dialects for
microcomputers, you can easily create sounds for that. A list
of the "note language" is in "man 4 speaker".

Here's a small example:

#!/bin/sh
read -p "CW ===> " TEXT
echo ${TEXT} | morse | awk '{
	if(length($0) == 0)
		printf("P4\n");
	else {
		gsub(" dit", "P32L32E", $0);
		gsub(" di",  "P32L32E", $0);
		gsub(" dah", "P32L8E",  $0);
		printf("%sP16\n", $0);
	}
}' | dd bs=256 of=/dev/speaker > /dev/null 2>&1

NB: The timing is slightly out of proper relation. :-)




-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110812213921.6cfdfa89.freebsd>