JSoundCard - Minimalist way to sync and create speaker microphone interactions

  • 1 Replies
  • 3649 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
  • *
  • 6860
  • 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 !

 


Requirements for functional equivalence to conscious processing?
by DaltonG (General AI Discussion)
November 19, 2024, 11:56:05 am
Will LLMs ever learn what is ... is?
by HS (Future of AI)
November 10, 2024, 06:28:10 pm
Who's the AI?
by frankinstien (Future of AI)
November 04, 2024, 05:45:05 am
Project Acuitas
by WriterOfMinds (General Project Discussion)
October 27, 2024, 09:17:10 pm
Ai improving AI
by infurl (AI Programming)
October 19, 2024, 03:43:29 am
Atronach's Eye
by WriterOfMinds (Home Made Robots)
October 13, 2024, 09:52:42 pm
Running local AI models
by spydaz (AI Programming)
October 07, 2024, 09:00:53 am
Hi IM BAA---AAACK!!
by MagnusWootton (Home Made Robots)
September 16, 2024, 09:49:10 pm
LLaMA2 Meta's chatbot released
by spydaz (AI News )
August 24, 2024, 02:58:36 pm
ollama and llama3
by spydaz (AI News )
August 24, 2024, 02:55:13 pm
AI controlled F-16, for real!
by frankinstien (AI News )
June 15, 2024, 05:40:28 am
Open AI GPT-4o - audio, vision, text combined reasoning
by MikeB (AI News )
May 14, 2024, 05:46:48 am
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

Users Online

269 Guests, 0 Users

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

Articles