A Ventrilo Compatible Client for Linux
Android
Samsung Transmission Problems Resolved
Jun 24th
Thanks to a very generous user, I received a Samsung Captivate phone to debug the problem of not being able to transmit. I have since resolved the problem and Samsung phones should be able to transmit just fine. This particular bug may have affected other phones as well.
[What follows is technical, so close your eyes until you're done reading if you don't want to hear it]
Samsung phones had an extremely high minimum audio buffer size. The likely reason for this is to preserve battery. When you lower the buffer size, it requires more CPU interrupts to handle the audio. This means lower buffers results in faster battery drain. Unfortunately, Ventrilo servers with very low sample rates (8kHz and 11.025kHz) require extremely low buffer values. For example, Speex @8kHz quality 10 requires a 1920 byte buffer. If the minimum buffer is larger (which for Samsung it is), too much data gets buffered and the server rejects the audio packet.
The minimum buffer at 8kHz on a Samsung phone is 4160 bytes. Our solution to this is to record at the lowest available sample rate and then downsample the recording to the rate required by the Ventrilo protocol. Sadly, this will probably increase battery drain since downsampling is fairly CPU intensive. It is worth noting that if this problem is ever resolved on Samsung phones, Mangler will automatically detect it and this process won’t be necessary. On non-Samsung phones, this is not an issue.
[You can open your eyes now, the tech talk is over]
Mangler 1.0.2 is now released and it addresses this issue. You should be able to talk just fine on any server. If you do run into a problem, I am currently in possession of a Samsung phone and I am able to test.
As always, if you need support with a problem, please post in the forums using the link below rather than post in the comments of this post. Posts in the forums will notify our IRC channel. Comments on this blog post will not.
Join the forum discussion on this post
Samsung Users: Good News and Bad News
Jun 3rd
An extremely generous user donated a Samsung Captivate (a.k.a. Galaxy S) phone for development! We now have the ability to test functionality on these phones, which is awesome. That’s the good news.
The bad news is that my initial testing didn’t show any problems at all. I’m able to transmit and receive just fine using a brand new Captivate. So, please use the forums (not the blog comments) to describe the problems you’re having and I’ll try to recreate the issues. Please include as much detail as possible about your phone so we can narrow down the problem.
Also include information about your server: Most importantly, what codec and sample rate is it using?
Update: It appears that Samsung phones cannot transmit in Speex 8kHz channels. We’ll get this fixed as soon as possible. It appears that Samsung’s minimum buffer size for audio is 4160 bytes of data, however a Ventrilo packet at 8khz is only 1920 bytes of data. Because the Samsung phone cannot provide a small enough buffer for audio data, it cannot transmit to servers that use really low codec rates. For now, the workaround is to ask your server administrator to change the code to a higher sample rate. Speex @16khz should work fine.
Join the forum discussion on this post
Mangler for Android 1.0beta3 is available
Aug 28th
New features/fixes in beta3 include:
- Support for various character encoding settings. Default is standard Latin1 (ISO-8859-1) Others include West/East European, Japanese, Hebrew, Cyrillic, Greek, Arabic, Chinese, and Thai
- Fixes transmit issues on some devices. This possibly fixes Samsung devices as well, but not sure. Leave feedback and let us know.
- May fix some crashes when returning to the app after it has been backgrounded
Mangler for Android 1.0alpha10 is available
Jul 27th
This will (hopefully) be the final alpha release before we go into the beta stage. 1.0alpha10 contains the following new fixes/functionality:
- Volume is set via a slider bar
- Multiple text-to-speech perferences for login/logout, channel join/leave, and page
- PTT button now displays current xmit status
- Added ability to login as “Server Admin”
- Hopefully fixed some issues on Android 1.5 regarding TTS (if you’re on 1.5, you should disable it all)
- Ability to set your comment and URL
Mangler for Android 1.0alpha8 is available
Jul 24th
Mangler for Android 1.0alpha78 adds the following fixes/features:
- Fixes crashes on Android 1.5 devices
- The channel list is improved and is now the default tab interface
- The users tab now lists only users in your current channel
- Fixes a crash when a user has a single quote in their usern’); DROP TABLE Students;
Update: We’ve uploaded alpha8 to address a duplicate channel list user problem.
Mangler for Android 1.0alpha6 is available
Jul 23rd
New features in 1.0alpha6 include:
- The userlist on the Users tab is condensed to a single line
- The channel list on the Channels tab shows the channel hierarchy (does not obey server sorting method)
- The tabs, status bar, and title bar can be hidden
- Channel passwords are saved
- User volumes are saved
- Optional Text-To-Speech notifications when a user joins or leaves the server/channel
- The hardware camera button now functions as a Push-To-Talk button
- Option to prevent the phone from going to sleep
- Persistent notification icon
Mangler for Android 1.0alpha5 is available
Jul 18th
Mangler for Android 1.0alpha5 is now available on the market. New features include:
- PTT button is available on every tab
- PTT button is now configurable as a toggle button or touch sensitive
- A settings option is available to force 8kHz transmit (fixes issues with Droid X)
- Will attempt to auto-detect available recording rates and resample as necessary
- Fixes issues with some Samsung devices
If you have a Samsung phone, please test the latest version and let us know if it’s functional. If you have a Samsung phone and you are savvy enough to set up an Android dev environment, then we sure could use your help with testing.
Mangler for Android 1.0alpha4 is available
Jul 7th
Mangler for Android 1.0alpha4 is now available on the Android Market. Unfortunately, someone forked our project and uploaded their fork to the Android Market without changing the namespace. Since our namespace (a.k.a. application name) was stolen, this means that we had to change our stuff, which in turn means that an Android device does not realize that it’s the same application. Because of this, you’ll need to remove any existing copy of Mangler on your phone and you will lose any servers that you’ve configured.
That said, 1.0alpha4 has the following fixes:
- Phones that don’t support native channel rates will automatically resample from supported phone sample rates to channel sample rates. This fixes issues for Samsung devices. (In the future, avoid Samsung devices… they seem to suck).
- Navigating away from Mangler (i.e. hitting the Home button) and coming back later should (may) now work. Warning: CyanogenMod AutoKiller will kill the service when you do this
- Some fixes for the chat tab

Mangler for Android 1.0alpha3 is available
Jun 17th
We’ve fixed the problem with the alpha2 build. Mangler for Android alpha3 is available on the download page.
As a reminder, just like alpha2, this version of Mangler for Android will automatically send crash backtraces to our server to assist us with debugging issues.
Join the forum discussion on this post
Mangler for Android 1.0alpha2 is available (update: no it’s not)
Jun 15th
We’ve released an updated alpha version of Mangler for Android with a few enhancements and more importantly some enhancements to help us with debugging. Let’s get this part out of the way first:
PRIVACY NOTICE
From this point forward, the alpha and beta versions of Mangler for Android will automatically (and without notification) send crash backtraces to our server. The backtrace data and your phone’s IP address will be stored on our servers and will be publicly available. If you do not wish to send this information, you will not be able to participate in the alpha/beta process without building the package yourself.
Other changes:
- You can set a volume for a user by long clicking their name in the user list
- You can set your transmit (outbound) volume by long clicking your own name in the user list
- Servers that automatically move you into a channel when you log in are now supported
- Some crashes on transmission attempt may have been fixed
- The transmit button is now push-to-talk instead of a toggle button
A list of known issues can be found in Trac.
UPDATE: The alpha2 version is kinda borked. The download page is reverted back to alpha1 and we’ll post alpha3 on Wednesday or Thursday (let’s all just pretend alpha2 didn’t happen, ok?)
Join the forum discussion on this post