I am trying to express in real time by passing sound data.
- Mode : JAVA Mode
- Library : minim
//================================================================//
import ddf.minim.*;Minim minim;
AudioInput in;
AudioRecorder recorder;
float samples = new float[2048*40];boolean recorded;
int byte_n = 4410;
float waveSampleRate = 44100f;long TIMER_SOUND = 0;
int sample_n = 0;
//================================================================////================================================================//
void setup()
{
size(512, 200, JAVA2D);minim = new Minim(this);
waveSampleRate = 44100f;
in = minim.getLineIn(Minim.STEREO,byte_n,waveSampleRate,16);}
//================================================================////================================================================//
void draw()
{
background(0);
stroke(255);if(recorded){
if(TIMER_SOUND < millis()){ TIMER_SOUND = millis() + 100;
for(int i = 0; i < byte_n-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);
sample_n++;
samples[sample_n]=in.left.get(i);if( sample_n == samples.length-1){ recorded = false; recorder.endRecord(); sample_n=0; i = byte_n; println("recorder_finish"); } } }
}
}
//================================================================////================================================================//
void keyReleased()
{
if ( key == ‘a’ ) {
recorded = true;
recorder.beginRecord();
sample_n = 0;
println(" start");
}
}
//================================================================//
This is related to what you asked before.
-
‘waveSampleRate = 44100’ means that ‘44100’ data is received per second.
-
There are ‘4410’ buffers in ‘in’.
-
That is, the time stored in the ‘in’ buffer is ‘100ms’.
Buffer_t = 1s / (44100/4410) = 1/10s = 100ms -
After saving the actual data, the wav file format was created, and it played well.
Youtube video :
https://youtu.be/8gi91Qm-eNQ
Here is the question.
Q1) The amount of data will be transmitted, is there any way to reduce it?
Q2) Is the method I envision the best? Or is there a better way?
Q3) Wouldn’t it be faster to send a UDP file and execute it than to send a wav file?