Skip to content

Release v1.0

Choose a tag to compare

@marcomorosi06 marcomorosi06 released this 24 May 18:44
· 49 commits to master since this release

WiFi Audio Streaming Android - v1.0 🎉

Sorry it took a while. I was fixing a bug, which created two bugs, which fixing those created three more, and at some point I realized I was navigating an n-ary tree of broken things in the wrong order. I did eventually find the root. It was the thing that, for reasons I still can't fully explain, sometimes just stopped playing audio. It's fine now.


⚠️ Before You Update

If you use the desktop app alongside this one, update both at the same time. The packet format changed and old and new versions won't understand each other. Think of it as a software handshake that requires both hands.

Also: the "Experimental Features" toggle is gone. Mic sharing is now just a setting, like it always should have been.


🔔 Connection Sounds

The app now plays a sound when you connect to a server and another when you disconnect. It's a small thing that makes the whole experience feel intentional rather than "did it work? I think it worked." Both can be turned off in Settings → Sounds.


🎙️ Microphone: Mute Button

You can now mute your mic mid-session without disconnecting. I know, I know, it should have been there from day one. In my defense, I was busy creating that n-ary tree of bugs.


📶 Fewer Dropouts

The stutter after ~30 seconds. Turns out Android was quietly putting the Wi-Fi chip to sleep mid-stream to save battery. Very considerate of it. The app now holds a low-latency Wi-Fi lock for the entire session, which convinces the radio to stay awake and do its job.

The click on packet loss. When a packet got lost, the app used to play a sharp pop straight into your ears. It now fades out the last good audio frame instead. On a decent network you'll never notice. On a congested one, the difference between a pop and a smooth fade is the difference between "something is broken" and "hm, slight hiccup."


🔗 Faster Reconnect

The client now sends an explicit goodbye when it disconnects, so the server doesn't have to wait three missed pings before accepting that you're really gone. Reconnecting is noticeably snappier, which is a nice improvement for something that cost about four lines of code.


🔧 Other Changes

Default buffer down from 6400 to 512 bytes. Lower latency on good networks. If you're on a flaky connection and hear dropouts, bump it up in Settings → Audio Quality, the slider is right there.

Multicast/Unicast preference is now saved between sessions. The app used to greet you with Multicast every single time, regardless of what you had set before. Not anymore.

VPN warning. If you're connected to a VPN, device discovery will find nothing and look very pleased with itself about it. Multicast doesn't go through tunnels. The app now explains this and suggests Unicast with a manual IP instead.

New splash screen and edge-to-edge layout. It looks like an app that was made on purpose.


⚖️ License Change: MIT → EUPL 1.2

This started as a personal script, and MIT was the default choice when you don't think too hard about it. Then I kept working on it. Then I rewrote the audio pipeline during exam season, which is a fairly reliable sign you've become emotionally invested. At that point the license deserved a second thought.

[EUPL 1.2](https://joinup.ec.europa.eu/software/page/eupl) is a copyleft license drafted by the European Commission. Use it, modify it, redistribute it, as long as you keep it open. Do whatever you want with it, just keep it open.


Thanks to everyone who filed issues and tested the betas. The mute button, the dropout fix, the VPN warning, all of it started as someone's complaint. That's how the app gets better.

If you want to support the project, Ko-fi is there. ☕

Support on Ko-fi