Free, Libre and Open Source podcatcher - for Android


SoundWaves is a free, libre and open source app for fetching and listening to podcasts.

Download from Google Play SoundWaves on

Help out

If you feel like helping out we are more than happy to accept any kind of help. There are a lot of programming - and non programming - tasks which need to be done.

BETA Testing

You can opt in as a beta tester here:

Feedback, bug reports and feature requests

I, as many other developers, aim to produce the best possible application for my users :) However, this requires that I know what you want. If something (anything) is not working or a feature is missing, please create a bug report - it's a huge help.

Getting feedback from my users is the best way of knowing what I should prioritize next.


If you want to help translate SoundWaves into your language please head over to:

Unfortunately a (free) account is required.

UI Mockups

If you have ideas for the look and feel, but not able to help programming, just send me a mock-up or two of how you would like the 'workflow' of the application to be, and I'll may be testing it out.


SoundWaves takes privacy very seriously, and I try to do whatever I can to always behave in the user's best interest.

If you are getting SoundWaves from source or F-droid it will never share any data with anyone without your explicit consent. However, if you are getting SoundWaves from a proprietary app store, like the Play store, it will collect some anonymous information - like crash reports - in order for me to improve the quality.

Special thanks to.

Bugsnag for providing free crash analytics for open source applications.


SoundWaves aims at not requesting any permissions it doesn't need. I am not quite there yet - but almost.

Basic internet access. SoundWaves also needs to know the state of the current network connection in order know if the device is using a cellular connection.


A wakelock is required in order to keep the device alive while downloading new episodes in the background.


Write access to the external storage is required in order to store episodes.


Knowledge of the phone state is required in order to pause an episode if there is an incoming phone call. Unfortunately this permission also grants the app permission to various other capabilities like reading the phone number. However, this is never done and should be verified by anyone who is worried about it. The Android API for getting the phone number is called "getLine1Number" and does not appear anywhere in the source code. Except for this readme file.


In order to start fetching new episodes in the background without starting the app first, we need to get notified when the device has booted up.


In order to synchronize the database to the cloud we use Android's built-in sync framework.


[Play store only] On the Play store we can request access to Google Drive in order to provide free cross device synchronization.


Required in order to control the media player.


Legacy permission which will be removed in the near future.


In order to scan a QR code and authenticate to the web player