/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _ULTRASOUND_H_
#define _ULTRASOUND_H_
/*
* ultrasound . h - Macros for programming the Gravis Ultrasound
* These macros are extremely device dependent
* and not portable .
*/
/*
* Copyright ( C ) by Hannu Savolainen 1993 - 1997
*
* OSS / Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE ( GPL )
* Version 2 ( June 1991 ) . See the " COPYING " file distributed with this software
* for more info .
*/
/*
* Private events for Gravis Ultrasound ( GUS )
*
* Format :
* byte 0 - SEQ_PRIVATE ( 0 xfe )
* byte 1 - Synthesizer device number ( 0 - N )
* byte 2 - Command ( see below )
* byte 3 - Voice number ( 0 - 31 )
* bytes 4 and 5 - parameter P1 ( unsigned short )
* bytes 6 and 7 - parameter P2 ( unsigned short )
*
* Commands :
* Each command affects one voice defined in byte 3 .
* Unused parameters ( P1 and / or P2 * MUST * be initialized to zero ) .
* _ GUS_NUMVOICES - Sets max . number of concurrent voices ( P1 = 14 - 31 , default 16 )
* _ GUS_VOICESAMPLE - * * * * * * * * * * * * OBSOLETE * * * * * * * * * * * * *
* _ GUS_VOICEON - Starts voice ( P1 = voice mode )
* _ GUS_VOICEOFF - Stops voice ( no parameters )
* _ GUS_VOICEFADE - Stops the voice smoothly .
* _ GUS_VOICEMODE - Alters the voice mode , don ' t start or stop voice ( P1 = voice mode )
* _ GUS_VOICEBALA - Sets voice balance ( P1 , 0 = left , 7 = middle and 15 = right , default 7 )
* _ GUS_VOICEFREQ - Sets voice ( sample ) playback frequency ( P1 = Hz )
* _ GUS_VOICEVOL - Sets voice volume ( P1 = volume , 0 xfff = max , 0 xeff = half , 0 x000 = off )
* _ GUS_VOICEVOL2 - Sets voice volume ( P1 = volume , 0 xfff = max , 0 xeff = half , 0 x000 = off )
* ( Like GUS_VOICEVOL but doesn ' t change the hw
* volume . It just updates volume in the voice table ) .
*
* _ GUS_RAMPRANGE - Sets limits for volume ramping ( P1 = low volume , P2 = high volume )
* _ GUS_RAMPRATE - Sets the speed for volume ramping ( P1 = scale , P2 = rate )
* _ GUS_RAMPMODE - Sets the volume ramping mode ( P1 = ramping mode )
* _ GUS_RAMPON - Starts volume ramping ( no parameters )
* _ GUS_RAMPOFF - Stops volume ramping ( no parameters )
* _ GUS_VOLUME_SCALE - Changes the volume calculation constants
* for all voices .
*/
#define _GUS_NUMVOICES 0 x00
#define _GUS_VOICESAMPLE 0 x01 /* OBSOLETE */
#define _GUS_VOICEON 0 x02
#define _GUS_VOICEOFF 0 x03
#define _GUS_VOICEMODE 0 x04
#define _GUS_VOICEBALA 0 x05
#define _GUS_VOICEFREQ 0 x06
#define _GUS_VOICEVOL 0 x07
#define _GUS_RAMPRANGE 0 x08
#define _GUS_RAMPRATE 0 x09
#define _GUS_RAMPMODE 0 x0a
#define _GUS_RAMPON 0 x0b
#define _GUS_RAMPOFF 0 x0c
#define _GUS_VOICEFADE 0 x0d
#define _GUS_VOLUME_SCALE 0 x0e
#define _GUS_VOICEVOL2 0 x0f
#define _GUS_VOICE_POS 0 x10
/*
* GUS API macros
*/
#define _GUS_CMD(chn, voice, cmd, p1, p2) \
{_SEQ_NEEDBUF(8 ); _seqbuf[_seqbufptr] = SEQ_PRIVATE;\
_seqbuf[_seqbufptr+1 ] = (chn); _seqbuf[_seqbufptr+2 ] = cmd;\
_seqbuf[_seqbufptr+3 ] = voice;\
*(unsigned short *)&_seqbuf[_seqbufptr+4 ] = p1;\
*(unsigned short *)&_seqbuf[_seqbufptr+6 ] = p2;\
_SEQ_ADVBUF(8 );}
#define GUS_NUMVOICES(chn, p1) _GUS_CMD(chn, 0 , _GUS_NUMVOICES, (p1), 0 )
#define GUS_VOICESAMPLE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICESAMPLE, (p1), 0 ) /* OBSOLETE */
#define GUS_VOICEON(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEON, (p1), 0 )
#define GUS_VOICEOFF(chn, voice) _GUS_CMD(chn, voice, _GUS_VOICEOFF, 0 , 0 )
#define GUS_VOICEFADE(chn, voice) _GUS_CMD(chn, voice, _GUS_VOICEFADE, 0 , 0 )
#define GUS_VOICEMODE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEMODE, (p1), 0 )
#define GUS_VOICEBALA(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEBALA, (p1), 0 )
#define GUS_VOICEFREQ(chn, voice, p) _GUS_CMD(chn, voice, _GUS_VOICEFREQ, \
(p) & 0 xffff, ((p) >> 16 ) & 0 xffff)
#define GUS_VOICEVOL(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEVOL, (p1), 0 )
#define GUS_VOICEVOL2(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEVOL2, (p1), 0 )
#define GUS_RAMPRANGE(chn, voice, low, high) _GUS_CMD(chn, voice, _GUS_RAMPRANGE, (low), (high))
#define GUS_RAMPRATE(chn, voice, p1, p2) _GUS_CMD(chn, voice, _GUS_RAMPRATE, (p1), (p2))
#define GUS_RAMPMODE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_RAMPMODE, (p1), 0 )
#define GUS_RAMPON(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_RAMPON, (p1), 0 )
#define GUS_RAMPOFF(chn, voice) _GUS_CMD(chn, voice, _GUS_RAMPOFF, 0 , 0 )
#define GUS_VOLUME_SCALE(chn, voice, p1, p2) _GUS_CMD(chn, voice, _GUS_VOLUME_SCALE, (p1), (p2))
#define GUS_VOICE_POS(chn, voice, p) _GUS_CMD(chn, voice, _GUS_VOICE_POS, \
(p) & 0 xffff, ((p) >> 16 ) & 0 xffff)
#endif
Messung V0.5 in Prozent C=96 H=88 G=91
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland