Voilà je voudrais créer un sampler simple, afin de vouloir enregistrer j'utilise la fonction recorder()
Cependant lorsque je m’enregistre, mon programme enregistre mon micro externe et non mon pc (pas le micro de mon pc, mais la sortie audio de mon pc) en lui-même j'espère que vous me comprenez
Voici mon code si d'aimable personne prenait 2 min pour s'y intéresser cela m'aiderait fortement
import ddf.minim.*;
import ddf.minim.ugens.*;
Minim minim;
AudioInput in;
AudioRecorder recorder;
boolean recorded;
AudioOutput out;
FilePlayer player;
AudioPlayer bass;
AudioPlayer snare;
AudioPlayer voice;
AudioPlayer clap;
AudioPlayer hihatclosed;
AudioPlayer kick;
AudioPlayer orchestre;
void setup (){
size(1000,700);
background (0,0,0);
fill(150,70,97);
rect(50, 50, 900, 600, 20);
minim = new Minim(this);
in = minim.getLineIn (Minim.STEREO, 512);
in.mute ();
recorder = minim.createRecorder(in, "myrecording.wav");
out = minim.getLineOut( Minim.STEREO );
bass = minim.loadFile("bass.wav");
kick = minim.loadFile("kick.wav");
snare = minim.loadFile("snare.wav");
hihatclosed = minim.loadFile("hihatclosed.wav");
textFont(createFont("Arial", 12));
}
void draw(){
fill(#EAC0CF);
rect(100, 200, 300, 300, 50);
fill(0,0,0);
text("Sampler !", 230, 230);
fill(0,0,0);
text("BASS = [d]\nSNARE = [g]\nKICK = [f]\nHIHATCLOSED = [x]", 150, 250);
fill(#EAE6E7);
rect(50, 550, 900, 100, 0, 0, 20, 20);
fill(#EAE6E7);
rect(50, 50, 900, 100, 20, 20, 0, 0);
for(int i = 0; i < hihatclosed.bufferSize() - 1; i++)
{
line(i, 100 + hihatclosed.left.get(i)*50, i+1, 100 + hihatclosed.left.get(i+1)*50);
line(i, 600 + hihatclosed.right.get(i)*50, i+1, 600 + hihatclosed.right.get(i+1)*50);
}
for(int i = 0; i < bass.bufferSize() - 1; i++)
{
line(i, 100 + bass.left.get(i)*50, i+1, 100 + bass.left.get(i+1)*50);
line(i, 600 + bass.right.get(i)*50, i+1, 600 + bass.right.get(i+1)*50);
}
for(int i = 0; i < kick.bufferSize() - 1; i++)
{
line(i, 100 + kick.left.get(i)*50, i+1, 100 + kick.left.get(i+1)*50);
line(i, 600 + kick.right.get(i)*50, i+1, 600 + kick.right.get(i+1)*50);
}
for(int i = 0; i < snare.bufferSize() - 1; i++)
{
line(i, 100 + snare.left.get(i)*50, i+1, 100 + snare.left.get(i+1)*50);
line(i, 600 + snare.right.get(i)*50, i+1, 600 + snare.right.get(i+1)*50);
}
if ( recorder.isRecording() )
{
text("Enregistrement en cours, appuyer sur r pour arreter l'enregistrement.", 450, 400);
}
else if ( !recorded )
{
text("Appuyer sur r pour débuter l'enrigistrement.", 450, 350);
}
else
{
text("Appuyez sur la touche s pour sauvegarder l'enregistrement dans le dossier sampler et le lire ultérieurement.", 450, 450);
}
}
void keyReleased()
{
if ( !recorded && key == 'r' )
{
if ( recorder.isRecording() )
{
recorder.endRecord();
recorded = true;
}
else
{
recorder.beginRecord();
}
}
if ( recorded && key == 's' )
{
if ( player != null )
{
player.unpatch( out );
player.close();
}
player = new FilePlayer( recorder.save() );
player.patch( out );
player.play();
}
}
void keyPressed()
{
if (key == 'd'){
bass.play();
bass.rewind();
}
if (key == 'f'){
kick.play();
kick.rewind();
}
if (key == 'g'){
snare.play();
snare.rewind();
}
if (key == 'x'){
hihatclosed.play();
hihatclosed.rewind();
}
}