JSoundCard - Minimalist way to sync and create speaker microphone interactions

  • 1 Replies
  • 3343 Views
*

Ben.F.Rayfield

  • Bumblebee
  • **
  • 38
This example code is included in http://sourceforge.net/projects/jsoundcard version 0.4 (open source) which is a Jar file you double click and it demonstrates a feedback loop between speakers and microphone that doesnt get too quiet or loud. It adjusts so whatever it hears echos in an interesting converging way and you can really hear how it stabilizes.

I suggest using it with my GigaLineCompile and Audivolv softwares to define new musical instruments you play with the mouse, but by design JSoundCard is minimalist and you can write interactive audio effects with it alone.

Code
/** Ben F Rayfield offers JSoundCard under Apache 2, GNU LGPL, and/or Classpath Exception. */
package jsoundcard.example;
import jsoundcard.*;

public class ExampleSoundFuncAmplifyMicrophoneOn2Speakers implements SoundFunc{

double volume = .7;

//double averageAbsValMicrophoneAmplitude = .5;

double maxMicrophoneAmplitude = 1;

public int frameSize(){ return 3; }

//int frames=0;

public void readWriteFrame(double frame[]){
double microphoneAmplitude = frame[2];
int estimatedFramesPerSecond = 44100;
//if(frames++ % estimatedFramesPerSecond == 0) JSoundCard.log("microphoneAmplitude="+microphoneAmplitude);
double decaySeconds = .1;
double decay = 1/(estimatedFramesPerSecond*decaySeconds);
//averageAbsValMicrophoneAmplitude = averageAbsValMicrophoneAmplitude*(1-decay)
// + decay*Math.abs(microphoneAmplitude);
maxMicrophoneAmplitude = Math.max(maxMicrophoneAmplitude, microphoneAmplitude);
maxMicrophoneAmplitude = maxMicrophoneAmplitude*(1-decay);
frame[0] = microphoneAmplitude/maxMicrophoneAmplitude * volume;
frame[1] = microphoneAmplitude/maxMicrophoneAmplitude * volume;
}

}
« Last Edit: February 13, 2014, 01:20:29 pm by Freddy »

*

Freddy

  • Administrator
  • **********************
  • Colossus
  • *
  • 6855
  • Mostly Harmless
Hi Ben, welcome to Ai Dreams  :)

Thanks for your posts, I'll take some time to have read.

I just wanted to mention that if you post code, it works better if you surround the code with the code tag.

Just highlight your code and click on the # button when you are making your post. That will surround it with the [code][/code] tags and will show up as above (I edited your post). It also makes it easier to select the code to copy paste it.

Thanks !

 


OpenAI Speech-to-Speech Reasoning Demo
by MikeB (AI News )
March 31, 2024, 01:00:53 pm
Say good-bye to GPUs...
by MikeB (AI News )
March 23, 2024, 09:23:52 am
Google Bard report
by ivan.moony (AI News )
February 14, 2024, 04:42:23 pm
Elon Musk's xAI Grok Chatbot
by MikeB (AI News )
December 11, 2023, 06:26:33 am
Nvidia Hype
by 8pla.net (AI News )
December 06, 2023, 10:04:52 pm
How will the OpenAI CEO being Fired affect ChatGPT?
by 8pla.net (AI News )
December 06, 2023, 09:54:25 pm
Independent AI sovereignties
by WriterOfMinds (AI News )
November 08, 2023, 04:51:21 am
LLaMA2 Meta's chatbot released
by 8pla.net (AI News )
October 18, 2023, 11:41:21 pm

Users Online

256 Guests, 1 User
Users active in past 15 minutes:
ivan.moony
[Trusty Member]

Most Online Today: 316. Most Online Ever: 2369 (November 21, 2020, 04:08:13 pm)

Articles