Skip to content

gdzx/audiosource

Repository files navigation

Audio Source

Audio Source forwards Android microphone audio input to the PulseAudio daemon through ADB, so you can use your Android device as a USB microphone.

screenshot

Requirements

  • Device with at least Android 4.0 (API level 14), but fully tested only on Android 10 (API level 29) so your mileage may vary.
  • GNU/Linux machine with:
    • Android SDK Platform Tools (requires adb in PATH).
    • PulseAudio (requires pactl in PATH).
    • Python 3 (requires python3 in PATH).

Usage

  1. Install the Audio Source APK by following the build instructions, or from the releases.
  2. Enable Android Debug Bridge (ADB) from the Developer options and connect the device to your computer.
  3. Run ./audiosource run to start Audio Source and forward the audio automatically. (You may have to grant the permission to record audio in Android.)
  4. Run ./audiosource volume LEVEL, to set the PulseAudio source volume to LEVEL, for instance 200% (you will likely need to set the volume higher than 100%).

Build and install

Run ./gradlew tasks to list the available commands.

Debug

$ ./audiosource build
$ ./audiosource install

Release

  1. Generate a Java KeyStore:

    $ keytool -keystore /home/user/android.jks -genkey -alias release \
           -keyalg RSA -keysize 2048 -validity 30000
  2. Create keystore.properties in the project root directory containing:

    storeFile=/home/user/android.jks
    storePassword=STORE_PASS
    keyAlias=release
    keyPassword=KEY_PASS
    
  3. Build and install:

    $ export AUDIOSOURCE_PROFILE=release
    $ ./audiosource build
    $ ./audiosource install

Acknowledgement

sndcpy for the initial implementation of audio playback forwarding.

License

This project is licensed under the MIT license (LICENSE or http://opensource.org/licenses/MIT).