java jtransforms使用_Java

Java主要用于企业级Web和安卓开发。教程方面,我们可以参考Java教程-菜鸟教程、Java极客学院、Java全栈工程师、阿里巴巴Java开发手册等。下面介绍Java 8和Java 11的安装。对于Java 8,windows环境下,下载Java SE Development Kit 8,接着配置环境变量。鼠标点击此电脑-属性-高级系统设置-环境变量-系统变量,在JAVA_HOME中新建,

C:\Program Files\Java\jdk1.8.0_121

新建CLASSPATH,

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

在Path中编辑已有,

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

查看是否安装成功,

java -version

javac -version

若配置linux中环境变量,则修改.bashrc,

export JAVA_HOME=/backup/home/misaraty/java/jdk1.8.0_121

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

Java 11的安装和Java 8有所不同。下载Java SE Development Kit 11,接着,配置windows下的环境变量,鼠标点击此电脑-属性-高级系统设置-环境变量-系统变量,在JAVA_HOME中新建,

C:\Program Files\Java\jdk-11.0.1

在Path中编辑已有,

%JAVA_HOME%\bin

若配置linux中环境变量,则修改.bashrc,

export JAVA_HOME=/backup/home/misaraty/java/jdk1.8.0_121

export PATH=${JAVA_HOME}/bin:$PATH

Java压缩和解压缩命令如下,

jar cvf *.jar #压缩

jar xvf *.jar #解压缩

Eclipse是Java老牌编辑器。下载后的使用可以参考Eclipse教程-菜鸟教程、Eclipse教程-极客学院。我们也可以参考Eclipse设置、调优、使用、给Eclipse提速的7个技巧、eclipse设置和优化对软件进行优化。如更改字体,windows-Preferences-General-Appearance-Colors and Fonts-Java-Java Editor Text Font;更改中文语言,打开http://www.eclipse.org/babel/downloads.php,复制http://download.eclipse.org/technology/babel/update-site/R0.14.1/neon,Help-install new software-work with…-勾选simplified。Eclipse下导入外部jar包的3种方式提供了更灵活的导入方式。JavaFX是新一代UI库,使用时可以参考JavaFX教程、JavaFX 8 教程(中文)、JavaFX中文、OSGi、Eclipse开源资料。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JTransforms是一个用于执行快速傅里叶变换(FFT)的Java库,可以用于处理音频数据。在分析音乐节奏方面,可以使用JTransforms对音频文件进行FFT计算,得到频谱图并进一步分析节奏。 以下是一个简单的示例程序,展示如何使用JTransforms解析音乐节奏。该程序使用JavaFX库读取一个音频文件,并使用JTransforms计算频谱图。 ```java import java.io.File; import java.io.IOException; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.chart.LineChart; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import javax.sound.sampled.*; import edu.emory.mathcs.jtransforms.fft.DoubleFFT_1D; public class MusicRhythmAnalysis extends Application { private static final int BUFFER_SIZE = 1024; private static final int FFT_SIZE = 2048; private static final int SAMPLE_RATE = 44100; private AudioInputStream audioInputStream; private byte[] audioData; public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) throws Exception { // 选择音频文件 File file = new File("audio.wav"); // 读取音频数据 try { audioInputStream = AudioSystem.getAudioInputStream(file); audioData = new byte[(int) file.length()]; audioInputStream.read(audioData); } catch (UnsupportedAudioFileException | IOException e) { e.printStackTrace(); return; } // 计算频谱图 DoubleFFT_1D fft = new DoubleFFT_1D(FFT_SIZE); double[] fftData = new double[FFT_SIZE * 2]; double[] timeData = new double[FFT_SIZE]; double[] freqData = new double[FFT_SIZE / 2]; for (int i = 0; i < audioData.length - BUFFER_SIZE; i += BUFFER_SIZE) { // 将音频数据转换为双精度浮点数数组 for (int j = 0; j < BUFFER_SIZE; j++) { timeData[j] = (double) audioData[i + j]; } // 执行FFT变换 fft.realForwardFull(timeData); System.arraycopy(timeData, 0, fftData, 0, FFT_SIZE); // 计算频率数据 for (int j = 0; j < FFT_SIZE / 2; j++) { double real = fftData[j * 2]; double imag = fftData[j * 2 + 1]; freqData[j] = Math.sqrt(real * real + imag * imag); } // 绘制频谱图 drawFrequencyChart(freqData); } // 显示窗口 primaryStage.setTitle("Music Rhythm Analysis"); primaryStage.show(); } private void drawFrequencyChart(double[] freqData) { // 创建图表 NumberAxis xAxis = new NumberAxis(0, SAMPLE_RATE / 2, SAMPLE_RATE / FFT_SIZE); NumberAxis yAxis = new NumberAxis(0, 1000, 100); LineChart<Number, Number> chart = new LineChart<>(xAxis, yAxis); chart.setCreateSymbols(false); chart.setAnimated(false); chart.setTitle("Frequency Chart"); // 添加数据 XYChart.Series<Number, Number> series = new XYChart.Series<>(); for (int i = 0; i < FFT_SIZE / 2; i++) { series.getData().add(new XYChart.Data<>(i * SAMPLE_RATE / FFT_SIZE, freqData[i])); } chart.getData().add(series); // 显示图表 StackPane root = new StackPane(); root.getChildren().add(chart); Scene scene = new Scene(root, 800, 600); Stage stage = new Stage(); stage.setScene(scene); stage.show(); } } ``` 该程序使用JavaFX库创建了一个窗口,并在窗口中绘制了一个频谱图。通过读取音频文件,将音频数据转换为双精度浮点数数组,并使用JTransforms计算FFT变换得到频率数据,最后将频率数据绘制在频谱图中。此外,程序还可以进一步分析频率数据,提取出音乐节奏等特征。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值