java播放正弦音_Java中的正弦波声音生成器
小编典典
见Beeper一个自包含的例子。
也许更简单?
如链接答案顶部所示,这51行代码段(在下面重复-分隔为单行和行内注释)大约与
生成音调一样简单(好的,您可以取出5行以上用于谐波)。
人们似乎认为这应该是工具包中内置的一种产生
纯净音调的方法。并非如此,要花一点时间就可以做到。
/** Generates a tone, and assigns it to the Clip. */
public void generateTone()
throws LineUnavailableException {
if ( clip!=null ) {
clip.stop();
clip.close();
} else {
clip = AudioSystem.getClip();
}
boolean addHarmonic = harmonic.isSelected();
int intSR = ((Integer)sampleRate.getSelectedItem()).intValue();
int intFPW = framesPerWavelength.getValue();
float sampleRate = (float)intSR;
// oddly, the sound does not loop well for less than
// around 5 or so, wavelengths
int wavelengths = 20;
byte[] buf = new byte[2*intFPW*wavelengths];
AudioFormat af = new AudioFormat(
sampleRate,
8, // sample size in bits
2, // channels
true, // signed
false // bigendian
);
int maxVol = 127;
for(int i=0; i
double angle = ((float)(i*2)/((float)intFPW))*(Math.PI);
buf[i*2]=getByteValue(angle);
if(addHarmonic) {
buf[(i*2)+1]=getByteValue(2*angle);
} else {
buf[(i*2)+1] = buf[i*2];
}
}
try {
byte[] b = buf;
AudioInputStream ais = new AudioInputStream(
new ByteArrayInputStream(b),
af,
buf.length/2 );
clip.open( ais );
} catch(Exception e) {
e.printStackTrace();
}
}
2020-09-24
java播放正弦音_Java中的正弦波声音生成器相关推荐
- java可以多重继承吗_Java中的多重继承与组合vs继承
java可以多重继承吗 有时我写了几篇有关Java继承,接口和组成的文章. 在这篇文章中,我们将研究多重继承,然后了解组成优于继承的好处. Java中的多重继承 多重继承是创建具有多个超类的单个类的能 ...
- java中有没有栈_Java中堆和栈有什么区别
stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里.栈(stack):是一个先进后出的数据结构,通常用于保存方法(函 ...
- java 基本类型 引用_java中 引用类型 和 基本类型 有何区别?
栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运行时数据区,类的(对象从中分配空间.这些对象通过new.newa ...
- java构造器详解_Java中关于构造器的使用详解
这篇文章主要介绍了Java构造器使用方法及注意事项的相关资料,这里举例说明如何使用构造器及需要注意的地方,需要的朋友可以参考下 Java构造器使用方法及注意事项 超类的构造器在子类的构造器运行之前运行 ...
- java读取文件 路径_Java中的获取文件的物理绝对路径,和读取文件
获取文件的绝对路径,读取该文件 一.文件目录打印图 下面的文件目录图,是项目中文件的位置信息:下面的例子是按照这个图来演示的. . |-- java | |-- ibard | | |-- demo1 ...
- java多线程 线程安全_Java中的线程安全
java多线程 线程安全 Thread Safety in Java is a very important topic. Java provides multi-threaded environme ...
- java 异常处理发生异常_Java中的异常处理
java 异常处理发生异常 Exception Handling in Java is a very interesting topic. Exception is an error event th ...
- java string 对象地址_Java中String对象的存储位置(学习笔记)
packagetest.string.equal;public classMain {/*** 创建了三个对象,"helloworld对象创建在常量池中",每次new String ...
- java 定义整数数组_JAVA中数组的正确定义方法是什么?
数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素. §5.1一维数组 一.一维数组的定义 type arrayName[]; 其中类型(type)可以为Java中任 ...
最新文章
- [转]centos5.2用memcache 来作PHP 的session.save_handler
- linux学习笔记(一):查看系统、硬件信息
- 使用 Boost.Multiprecision 来实现高精度高斯-拉盖尔正交积分
- 2016 -1 -3 导航控制器的学习
- mysql gtid坑_通过mysqlbinlog --skip-gtids恢复后再备份可能造成的坑
- 关于C++中的unordered_map和unordered_set不能直接以pair作为键名的问题
- c语言统计数字字母个数,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
- beast php,windows php-beast 安装
- Task02:SQL基础查询与排序-天池龙珠计划SQL训练营
- 个人总结OLinux上安装oracle11G Data Guard
- sql2005没有服务器名称
- 项目实战-电商(网上书城)
- 2019春c语言程序设计答案,知到C语言程序设计(2019春)答案全套
- 将谷歌网盘的文件搬运到百度网盘
- F - Fairy, the treacherous mailman
- 1.25 Tic-tac-toe
- 电脑操作实用技巧60招
- Cadence快速画原理图封装(适合复杂器件)
- 电视上玩android游戏,如何用u盘下载游戏在android系统电视上玩?
- HTML/CSS/Js/Jquery/PHP网站0基础开发到大神系列【飞鸽学院】
热门文章
- wordpress统计博客访问量
- 详解代码覆盖率及各语言主流工具
- 《Linux那些事儿之我是USB》我是U盘(8)总线、设备和驱动(上)
- JS是什么意思?有什么用?
- 【校招VIP】产品文案策划之文学常识
- 大地女神该亚与第一代天神乌拉诺斯
- 论文笔记008:[CVPR2016]Deep Relative Distance Learning: Tell the Difference Between Similar Vehicles
- (Div.2)D. Edge Deletion
- 还在愁追不到女朋友吗?点开看这里。
- 为Table中的thead加上边框