⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mask.c

📁 linux下录音程序
💻 C
字号:
/* * July 5, 1991 * Copyright 1991 Lance Norskog And Sundry Contributors * This source code is freely redistributable and may be used for * any purpose.  This copyright notice must be maintained.  * Lance Norskog And Sundry Contributors are not responsible for  * the consequences of using this software. *//* * Sound Tools masking noise effect file. */#include <math.h>#include "st.h"#define HALFABIT 1.44			/* square root of 2 */void newrand15();ULONG rand15();/* * Problems: * 	1) doesn't allow specification of noise depth *	2) does triangular noise, could do local shaping *	3) can run over 32 bits. *//* * Process options */void mask_getopts(effp, n, argv) eff_t effp;int n;char **argv;{	if (n)		fail("Mask effect takes no options.");	/* should take # of bits */	newrand15();}/* * Processed signed long samples from ibuf to obuf. * Return number of samples processed. */void mask_flow(effp, ibuf, obuf, isamp, osamp)eff_t effp;LONG *ibuf, *obuf;int *isamp, *osamp;{	int len, done;		LONG l;	LONG tri16;	/* 16 signed bits of triangular noise */	len = ((*isamp > *osamp) ? *osamp : *isamp);	switch (effp->outinfo.style) {		case ULAW:		case ALAW:			for(done = 0; done < len; done++) {				tri16 = (rand15() + rand15()) - 32767;				l = *ibuf++ + tri16*16*HALFABIT;  /* 2^4.5 */				*obuf++ = l;			}			break;		default:		switch (effp->outinfo.size) {			case BYTE:			for(done = 0; done < len; done++) {				tri16 = (rand15() + rand15()) - 32767;				l = *ibuf++ + tri16*256*HALFABIT;  /* 2^8.5 */				*obuf++ = l;			}			break;			case WORD:			for(done = 0; done < len; done++) {				tri16 = (rand15() + rand15()) - 32767;				l = *ibuf++ + tri16*HALFABIT;  /* 2^.5 */				*obuf++ = l;			}			break;			default:			for(done = 0; done < len; done++) {				*obuf++ = *ibuf++;			}			break;		}	}	*isamp = done;	*osamp = done;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -