Free Extension, AppyEcho mic to speaker with pitch control


Greetings, Here is a Echo effect with pitch control extension i have been working on for a while now.

Originally the same idea was used in “MadRobot” Beta AI2 Variant. Where you could test but not publish the APK. The fellow made another extension for player with pitch but never released the Mad robot recorder component which was quite cool to mess with.

Anyhoos after much learning I finally built my own based on the same idea.

Basically its a media recorder which captures audiobits and Resets in a loop creating Mic to speaker Echo feedback loop.

Would also be interested in some help. I want to Add more Audio effects. Currently trying to import more properties Such as EQ, Reverb ETC. So i can share my source code if anyone wants to try?

But here is the Extension and AIA Test project if anyone wants to try it feel free :slight_smile:

Set Pitch slider as shown, These can be adjusted to suit. Echo volume is 0-100 on the slider.

Block arrangement, Echo start needs to be run before trying to use other blocks.
NOTE: The compiled App may crash one time if your device asks for microphone permissions.
Normally on marshmallow and up versions of android.

com.AppyEcho.aix (8.3 KB)

echotest.aia (14.1 KB)

echotest.apk (3.1 MB)

UPDATE: New Version 2*

Increased recording bitrate to 44100khz, improves Echo sound Quality.

Added Master device media volume block: Allows you to Programmatically control the device Media Volume. Designer properties allows Set Default device volume: 50 is default, Value 0-100
Program Blocks allow your to control withing the App UI. Value 0-100

Hide/Show UI Block: this Enables / disables Master volume UI To be shown like when you press the device volume buttons a Widget bar shows volume, You can Hide this or Show it:
Toggle Enabled in designer properties.

Keep screen awake: Designer properties and Blocks Added to keep screen awake whilst App is in use.

Permissions added: Check device state, Read/write permissions.


New V.2 AIX. com.appyecho.aix (12.4 KB)


That great news to see someone else who cares about audio extensions!!
I experimented also recently with MadRobots AI and also with his mrSound extension (offers pitch , loop without gaps, speaker balance…). I noticed that it doesnt work anymore too good. Sometimes it hangs. It is based on the soundpool class, that has afaik problems with bigger wav files. So I canceled work on that.
Maybe we could teamup?
I made 2 audio extensions so far, though I am a beginner (but very persistent) WavRecorder and WaveAudioTools.
It would be great to create one big AudioTools extension that offers all important aspects of AudioEditing, including mp3 functionality.
I have to mention that there is already an Equalizer extension (AndresCotes (Paid)). But maybe we get him on board to offer it free for us;).
I believe such a project would enhance the possibilites of app creating with all builders a lot.


Thank you, yep this would be a great help. Will send the .Java in its current state via message. :slight_smile: Feel free to tinker.

I am mainly fluent in Arduino code, Some java and Visual studio. Dabble in a bit of android studio from time to time, I prefer AI2 Cos ive used it for years since it was run by google, In App inventor classic.

Now i have everything set up for Compiling extensions, i am always tinkering lol.
I am writing the code in Android studio, Just cos it shows everything in color format and you can spot mistakes a bit better :slight_smile: Then copy the code to a .txt and name it .java Dont even know if this is the proper way lol, But works for now at least :slight_smile:


Use something like or Sublime Text 3.


Will give this a try much thanks


When I try to launch your .aia file I get a Runtime Error “startRecording() called on an uninitialized AudioRecord.”
I installed the apk and it’s working but when I do the same code on my personnal project I get this error.
Did you know how to solve it ?


Find it !
Just added the SoundRecorder component and started it when screen initialize.

Thanks anyway.


Hi, I am trying to solve this, Its caused By EchoStart block being in Screen Initialize, Because when first launch it Prompts for Mic Permission Recording, But Extension already called recording activity but permission not ready, So to solve temporarily a dedicated button or activity to Start Echo after Initialize seems to fix it, So really Until App has got Permission to record it blocks the Echo Initialize procedure, Hence the Error to record.

I have a new version i am uploading now Which Added some new Permissions and features. Including Set Device volumes. With ability to Hide UI Of the master volume Widget showing. Keep screen on and a few more things. Increased the Echo Loop recording to 44100khz So crispens up the sound it makes. :slight_smile:


I think its to do with Evoking mic permissions on Start procedure, Because there is No chain of events in the code to Ask permission to record, The sound recorder block has This request in the code so might try and import the Permission Querie into this and see if it resolves the intitial problem, I do know it only happens once on first use on device, Then works there after, So unsure if its Just Androids Security protocol on MIC/Recording or a issue with the Extension. But will give it a Go and update :slight_smile: