Tag: audio

如何过滤FFT数据(用于音频可视化)?

我正在看这个Web Audio API演示 , 这本好书的一部分 如果你看一下演示,fft峰值会顺利下降。 我正在尝试使用minim库在Java模式下处理相同的操作。 我已经看过如何使用doFFTAnalysis()方法中的web音频api完成此操作,并尝试使用minim复制它。 我还尝试移植abs()如何使用复杂类型: / 26.2.7/3 abs(__z): Returns the magnitude of __z. 00565 template 00566 inline _Tp 00567 __complex_abs(const complex& __z) 00568 { 00569 _Tp __x = __z.real(); 00570 _Tp __y = __z.imag(); 00571 const _Tp __s = std::max(abs(__x), abs(__y)); 00572 if (__s == _Tp()) // well … 00573 return […]

用Java读取MIDI文件

我正在尝试将.MID文件读入Java程序,并希望将每个音符/和弦分开,以便在某种UI上显示它们。 我在Java中使用Sequencer API并没有太多运气,并且尝试直接使用MidiFileReader也不适用于我。 我会附上我在这里使用的代码,如果有人想看到的话: package miditest; import java.io.File; import java.io.IOException; import javax.sound.midi.InvalidMidiDataException; import javax.sound.midi.MidiSystem; import javax.sound.midi.MidiUnavailableException; import javax.sound.midi.Sequence; import javax.sound.midi.Sequencer; public class Main { public static void main(String[] args) throws InvalidMidiDataException, IOException, MidiUnavailableException{ Sequence sequence = MidiSystem.getSequence(new File(“test.mid”)); // Create a sequencer for the sequence Sequencer sequencer = MidiSystem.getSequencer(); sequencer.open(); sequencer.setSequence(sequence); // Start playing sequencer.start(); […]

Java播放AAC编码音频(JAAD解码器)

我一直在努力用Java播放aac编码的音频文件。 我们在第一学期结束时有一个小组项目,并希望在那里有背景音乐和很​​少的声音效果。 最后我们使用了WAV文件,因为我们无法播放AAC。

在JButton上播放音频文件?

我已经在谷歌上看了一段时间,搜索如何播放音频文件,我发现的大多数来源都是使用java.applet.* ,但我正在寻找一种方法,我可以把它放在我的actionPerformed()方法。 public void actionPerformed(ActionEvent event) { if(event.getActionCommand().equals(“Play”)){ //Short Audio File Playing Here } }

getAudioInputStream()期间标记/重置exception

我发布了一个问题的解决方案(如下所述),但未能确认它是否解决了问题。 有Java 7的人可以尝试使用以下Applet并报告回来吗? 非常感谢。 AudioMixerDemo 报告给我的问题是,需要加载来自jarred资源的声音片段的顶行按钮不起作用。 该错误指向正在读取音频文件的行,并表示正在抛出“标记/重置”I / Oexception。 此代码适用于Java 6不适用于Java 7.违规声明如下: AudioInputStream ais = AudioSystem.getAudioInputStream( AudioMixer.class.getResourceAsStream(fileName)); 内部区域返回一个InputStream ,我认为这就是出现“可标记性”问题的地方。 Oracle的错误数据库报告该问题是向后兼容性问题,但优先级较低。 我已经记录如下: URL url = AudioMixer.class.getResource(fileName); AudioInputStream ais = AudioSystem.getAudioInputStream(url); AudioSystem API中没有提到此方法会抛出“标记/重置”I / Oexception。 所以,我很有希望。 但我无法证实这一点!

从原始文件中获取一些x字节的AudioInputStream(剪切音频文件)

如何将AudioInputStream读取到特定数量的字节/微秒位置? 例如 : AudioInputStream ais = AudioSystem.getAudioInputStream( new File(“file.wav”) ); // let the file.wav be of y bytes 现在我想获得一个AudioInputStream ,其数据高达x个字节的x < y字节。 我怎样才能做到这一点 ? 我一直在努力思考但没有办法做到这一点?

如何在java中获得混音器通道布局

我以为我可以在这个伟大的网站上找到任何东西,但现在我似乎面临着没有答案的问题:)请帮忙! 事实上,我需要播放6个不同的wav文件,每个文件有1个通道,由系统调音台支持的6个通道(左,右,左环绕等)。 使用6个不同的SourceDataLines看起来是合乎逻辑的但是从我看到的情况来看,Mixer不能为它们进行每个样本的同步,所以我想出了在单独的线程中交错它们并且只使用一个SourceDataLine来播放它。 它适用于左右两个通道,但对于更多通道,我需要知道精确的通道布局(差异系统和声卡可能不同)。 我认为系统调音台之一(我有两个:“线性输入”和“java音响系统混音器”)可能有这个元数据,但我找不到它。 有谁知道如何获得这些信息? 谢谢。

获得声音按钮的最佳方法按Java计算器?

我是一名学习Java的学生,正在为我的简历工作一个独立的项目。 我决定做一个Java计算器,因为我知道构成它的大多数组件。 我不知道怎么做的一件事是按下按钮添加声音。 对于Audiostream输入内容,我有一个模糊的想法。 但我的计算器上的每个按钮都需要独特的声音。 现在我的计算器还没有完全完成(听众还没有工作。)我只是想知道什么是将我的.wav文件合并到按钮按下的最佳方法。 提前致谢。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator { //instance variables JFrame frame; JPanel mainPanel, northPanel, southPanel; JTextField numberLabel; JButton backspace, multiply, divide, add, subtract, equal; //four function buttons JButton one, two, three, four, five, six, seven, eight, nine, zero; //number buttons JButton posOrNeg, decimal, leftParenthese, rightParenthese; […]

提高java中声音文件的播放速度

我正在寻找有关如何使用Java及其声音API提高声音文件播放速度的信息。 我目前正在使用剪辑和AudioInputStream来播放文件,但如果这意味着我可以提高播放速度,我将很乐意改变它。

如何在java中播放pcm原始数据

我有一个短arrays的PCM样本。 玩这个的最好方法是什么? 格式为8000Hz,单声道,16位,大端。 (PCM样本在代码中生成,而不是通过某些文件读取) 谢谢