commit 0abb6de81bde24d943d77017f6a54e664c4cd5a7 Author: serialexperiments0815 <112315380+serialexperiments0815@users.noreply.github.com> Date: Thu Dec 11 15:59:24 2025 +0100 Continued diff --git a/SlowedAndReverbed.java b/SlowedAndReverbed.java new file mode 100644 index 0000000..5a8ae43 --- /dev/null +++ b/SlowedAndReverbed.java @@ -0,0 +1,73 @@ +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(); + + } + + + + }