ww

ww

Minim:层级

Minim主要基于两个类建立:Controller 和 AudioSource,并由四个interface(界面)定义:Playable, Effectable, Polyphonic, 和 Recordable。在Java中,一个界面被定义为一个仅含函数定义的类。即,它仅含有一堆功能而并不实际执行其中任一。 在JavaSound里,当一个音频在你的系统和软件间传送时,他都会经过一条Line(线),这是JavaSound API里定义的一个界面。一条线可以控制例如声相、音量和平衡等,这些控制可以实时改变声音。你可以经由基础类Controller、AudioSnippet以及源自Controller的AudioSource来获取这些控制。 AudioSource定义了三个AudioBuffer:left, right, 和 mix。这三个采样缓冲器(一个采样缓冲器就是一个浮动数组)包含左通道、右通道和左右混合通道。AudioPlayer, AudioOutput, AudioInput, 和 AudioSample都来自AudioSource,这意味着它们都像数据成员般继承这些缓冲器,同时意味着它们都能提供进入采样的通路。 AudioSource同样执行四个界面中的两个:Recordable(可录制) 和 Effectable(可加效果)。因此,上述四个来自AudioSource的类同样可以Recordable 和 Effectable。 最后,因为方法遗传的层叠性,这四个来自AudioSource的类同样继承Controller。这么想,比如说:AudioPlayer是一个AudioSource同时也是一个Controller。因此,你能用AudioSource或Controller做的所有事,同样可以用AudioPlayer来完成。

Minim:Minim

[ javadoc | 范例 ] Minim是你正在阅读的音频库的名字。Minim是在能提供一堆方法(method)给你获取系统音频资源的库里的一个类。要使用它,你必须在setup()之前申明一个Minm的变量,而后例示一个Minim对象。为了使Minm能够辨识一些东西并能够进入你sketch的data文件夹,你必须这么做。 示范代码 import ddf.minim.*; Minim minim; void setup() { size(100, 100); minim = new Minim(this); } void draw() { } 获取Minim的音频资源 你可以用Minim做四件事:播放一个音频文件,播放合成音频,监听音频输入,向硬盘内录制音频。所有这些都是由库内不同的类操作的,这些类的范例通过呼叫Minim适当的方法而获得。 载入一个音频文件 有三个不同的类可用来播放一个音频文件,每种都用来配合特定的回放类型。接下来的课程会详尽的讲解每个类,现在你只需要知道他们是:AudioSnippet, AudioSample, 和 AudioPlayer。你通过呼叫如下Minim方法创建它们: loadSnippet(String filename) loadSample(String filename) loadSample(String filename, int bufferSize)…

Minim:快速入门指南

欲开始使用Minim,首先你得建立一个Minim对象,这样你便能载入音频文件或者建立声音输入与输出。而后,在你退出程序前,你必须关闭你从Minim获得的所有I/O类然后关闭你的Minim范本。音频输入/输出类包括AudioPlayer, AudioSample, AudioSnippet, AudioInput, 和 AudioOutput。达到这个目的的一个很好的方式就是在你关闭所有音频类的位置定义一个停止(stop)方法(method)。以下是以上几点的一个范例(部分): Minim minim; AudioPlayer player; AudioInput input; void setup() { size(100, 100); minim = new Minim(this); player = minim.loadFile(“song.mp3”); input = minim.getLineIn(); } void draw() { // 做你想做的 } void stop() { // 你从Minim.loadFile()获得的音频播放器 player.close();…

Minim:关于

Minim是一个为在Proessing环境下工作的人们提供的易用的音频库(library),它基于JavaSound API、一点点Tritonus和Javazoom的MP3SPI开发。掩藏在其API之后的哲学是尽可能简单的将音频互动加入至你的sketch内,同时也为高级用户提供足够多的弹性。你无需做回调(callback)甚至无需直接操作采样数组(sample arrays),所有脏活累活都为你做好了。下载提供两种口味:1)仅仅是运行Minim必须的jar文件,2)包括javadocs、例子以及源码的完全版。Minim经LGPL许可发布。 安装:解压zip档到你sketchbook文件夹(在偏好设置里指定)的libraries文件夹内(如果不存在,则手动创建),承载它的文件夹应命名为minim(Processing现已自带Minim库)。 以下为Minim的一些特性: 音频播放器(AudioPlayer):WAV, AIFF, AU, SND, 和 MP3文件的单声道或立体声回放。 音频meta数据(AudioMetaData):一个装载文件meta数据的对象,例如ID3标签。 音频录音机(AudioRecorder):经缓冲或直接将单声道或立体声音频录入硬盘。 音频输入(AudioInput):单声道或立体声输入监听器。 音频输出(AudioOutput):单声道或立体声合成。 音频信号(AudioSignal):一个提供你写自己的声音合成类的简单界面。 配备所有标准波形,粉噪音及白噪音生成器。此外,你还可以通过简单执行你自己的周期波形来扩展振荡器类。 音频效果(AudioEffect):一个提供你写自己的音频效果的简单界面。 配备低通(low pass)、高通(high pass)、带通(band pass)、陷波(notch)滤波器。此外,你还可以通过对你自己的IIR滤波器的简单执行来扩充IIRFilter类。 可以方便的将信号和效果加于音频输入和输出上。 提供一个可做频谱分析的FFT类。 提供一个可做拍子侦测的BeatDetect类。 计划中的特性: 更多的音频效果,如混响、延迟、移相、回响调制以及一点点破音。 使用频主体过滤技术提供更好的滤波效果(frequency domain filtering techniques)。 要开始使用Minim,你可以进入下一课的学习,或去日它的javadocs。如果有任何问题或者发现任何bug,可以通过作者主页以及p5论坛联系他。

Processing:数组(下)

12. ok,现在来做100辆车吧: Car[] cars = new Car[100]; // 由100个cars对象组成的数组! void setup() { size(200,200); smooth(); for (int i = 0; i < cars.length; i ++ ) { // 用for循环初始化100辆车. cars[i] = new Car(color(i*2),0,i*2,i); } } void draw() { background(255); for (int…