SlowedAndReverbed/SlowedAndReverbed.java
2025-12-11 15:59:24 +01:00

73 lines
2.6 KiB
Java

import java.awt.BorderLayout;
import java.io.File;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
public class SlowedAndReverbed {
public static void main(String[] args){
JFrame frame = new JFrame("SlowedAndReverbed");
JPanel panel = new JPanel();
JPanel panelMid = new JPanel();
JButton newButton = new JButton("Select file");
JButton saveButton = new JButton("Save file");
JSlider sliderSpeed = new JSlider(0, 200, 100);
JSlider sliderReverb = new JSlider(0, 100, 0);
JLabel pathLabel = new JLabel("No file selected");
JLabel speedLabel = new JLabel("Speed: 100%");
JLabel reverbLabel = new JLabel("Reverb: 0%");
newButton.addActionListener(e -> {
String filePath = getFile(frame);
String pathLabelText = new java.io.File(filePath).getName(); //Object has no references after, garbage collector kills it.
pathLabel.setText(pathLabelText);
newButton.setText("Select new file");
});
sliderSpeed.addChangeListener(e -> {
String valueSpeed = String.valueOf(sliderSpeed.getValue());
speedLabel.setText("Speed: " + valueSpeed + "%");
});
sliderReverb.addChangeListener(e -> {
String valueReverb = String.valueOf(sliderReverb.getValue());
reverbLabel.setText("Reverb: " + valueReverb + "%");
});
frame.setSize(400,600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setLayout(new BorderLayout());
sliderSpeed.setPaintTicks(true);
sliderSpeed.setPaintLabels(true);
panel.add(newButton);
panel.add(saveButton);
panelMid.setLayout(new BoxLayout(panelMid, BoxLayout.Y_AXIS));
panelMid.add(pathLabel);
panelMid.add(sliderSpeed);
panelMid.add(speedLabel);
panelMid.add(sliderReverb);
panelMid.add(reverbLabel);
frame.add(panel, BorderLayout.NORTH);
frame.add(panelMid, BorderLayout.CENTER);
}
public static String getFile(JFrame frame){
JFileChooser fileChooser = new JFileChooser();
FileFilter filter = new FileNameExtensionFilter("mp3", "wav", "aac", "flac", "ogg", "m4a", "wma", "alac", "opus", "amr");
fileChooser.setFileFilter(filter);
fileChooser.showOpenDialog(frame);
File file = fileChooser.getSelectedFile();
return file.getPath();
}
}