Minim Audio Loop
in
Core Library Questions
•
1 year ago
I'm trying to create a long piece of audio which is a collection of recorded audio clips that are, in time, merged into one large collage of sounds. I am using the Minim sound library, but at the moment I'm having a hard time getting this to work. This works exactly the same as My programming skills are fairly basic but I was thinking this would be a very easy task! I :ant it to work just exactly as the 'RecordAndPlayback' in the examples folder of Minim but to have the events triggered by clicks done autonamously.
Here's the code I have so far:
Thanks
Daniel
Here's the code I have so far:
- import ddf.minim.*;
- Minim minim;
- AudioInput in;
- AudioRecorder recorder;
- AudioPlayer player;
- Timer timer;
- class Timer {
- int savedTime; // When Timer started
- int totalTime; // How long Timer should last
- Timer(int tempTotalTime) {
- totalTime = tempTotalTime;
- }
- // Starting the timer
- void start() {
- // When the timer starts it stores the current time in milliseconds.
- savedTime = millis();
- }
- // The function isFinished() returns true if 5,000 ms have passed.
- // The work of the timer is farmed out to this method.
- boolean isFinished() {
- // Check how much time has passed
- int passedTime = millis()- savedTime;
- if (passedTime > totalTime) {
- return true;
- } else {
- return false;
- }
- }
- }
- void setup()
- {
- size(512, 200, P3D);
- textMode(SCREEN);
- minim = new Minim(this);
- timer = new Timer(5000);
- timer.start();
- in = minim.getLineIn(Minim.STEREO, 2048);
- recorder = minim.createRecorder(in, "myrecording.wav", true);
- textFont(createFont("Arial", 12));
- }
- void draw()
- {
- background(0);
- player = minim.loadFile("myrecording.wav");
- player.play();
- player.loop();
- //GUI
- stroke(255);
- for(int i = 0; i < in.left.size()-1; i++)
- {
- line(i, 50 + in.left.get(i)*50, i+1, 50 + in.left.get(i+1)*50);
- line(i, 150 + in.right.get(i)*50, i+1, 150 + in.right.get(i+1)*50);
- }
- //-- end of GUI
- //recorder switching
- if (timer.isFinished())
- {
- text("not..", 5, 15);
- if(recorder.isRecording() == true){
- recorder.endRecord();
- recorder.save();
- timer.start();
- }
- }else
- {
- text("recording...", 5, 15);
- recorder.beginRecord();
- println(recorder.isRecording());
- }
- ///--- end recorder switching
- }
- void stop()
- {
- // always close Minim audio classes when you are done with them
- in.close();
- if ( player != null )
- {
- player.close();
- }
- minim.stop();
- super.stop();
- }
Thanks
Daniel
1