TS3 Soundboard

A TeamSpeak 3 plugin to play music to your channel.

Version 0.9.5b, May 2012, Draft (Contains lots and lots of errors)


© Copyright 2010-2012 Michael Friese. All rights reserved.

Using BASS 2.4 © 1999-2010 Un4seen Developments Ltd.

TeamSpeak 3 is © 2010 TeamSpeak Systems GmbH.

Introduction

With TS3 Soundboard you can play music and sounds to your teamspeak channel. The main difference to other methods I've seen, is that you don't need any secondary machine or TS3-Instance and you don't need to fiddle with your system settings.

Once installed the plugin allows you to simultaneously play sounds and speak as usual.

Here are some more features:

Installation

Since Version 0.9 the addon comes as a TS3 Plugin-Bundle that can be installed by TeamSpeak directly. Just download the file and double-click it.

After installation just (re-)start TS3 and you're ready.

Configuration

Enabling the Plugin and openening its Settings

Options

This section will describe every available option of the settings dialog. If you want to quick-start, continue reading at Setting it up.

Option Window

Audio Settings

Send audio to channel

This options enables playback to the channel you're in. If you don't enable this, noone in your channel will hear what you're playing. It is good for testing your sounds locally without annoying someone else.

Changing this option will only affect new sounds / music files and not already active ones.

Play audio locally

If you enable this option, the plugin will playback the soundfiles and music to your computer. Without this option enabled (and with the Send audio to channel option enabled) everyone in your channel will hear what you play - except you.

Changing this option will only affect new sounds / music files and not already active ones.

Enable Voice Activity Detection (VAD)

This option is needed if you want to use VAD. It is important that you don't use the VAD-Option of TeamSpeak itself, because using that will interrupt playback of your sounds / music whenever you stop talking. See Enabling VAD section of this manual for further information.

Volume (remote)

Adjusting this slider will affect the volume of the playback to the channel (which you can enable via Send audio to channel). It will adjust all currently running streams of the type music and all sound and music files you will play in the future.

Volume (local)

The same as Volume (remote), except that it affects the volume of your local playback (which you can enable via Play audio locally).

Voice FX

This settings affect the voice effects that are being applied to your voice in realtime.

Warning: This might affect your latency and any echo cancelling might not work at all afterwards.

Enable VoiceFX

Generally enables (or disables) all setup effects. If you don't need any voice effects, make sure this is turned off. This will save ressources and lower the latency again.

Enable monitoring (local loopback)

Enabling this will make you hear your own voice as configured in the VFX Settings. Your voice will not be sent at all when this option is enabled. This option will not be saved when you exit TeamSpeak.

Pitch

With this slider you can affect the pitch of your voice. Sliding to the left means your voice will sound lower, sliding to the right will make your voice sound higher.

Sync with Media-Player

Syncing to a media player will make the plugin read what's playing in the selected media player and start playback of that same file to the channel.

This option is at this time only available for the Windows versions of the plugin and only for Winamp or programs that use the same API as Winamp.

In the select box, check the player you want to sync the plugin to or -- don't sync to disable this functionality.

Announce new files

When you enabled syncing and your media player starts playback of a new file, this option will let the plugin tell everyone in your channel the title of that new track.

Allow remote control & Password

Enabling this option will allow everyone on your server that knows the set password (and you HAVE to set one for this to work) to remote control the media player via TS text chat. This is described later on.

Button-Frame

SHOW

Clicking this button will open a frame (which you can customize, see Using the button frame) containing buttons that trigger playback of files, stop playback etc.

Edit configuration

This will open the configuration file for the button frame in your default editor (for .ini-files). The syntax of the configuration file is described in Using the button frame.

Display on startup

Enabling this will automatically show the button frame when you start TeamSpeak.

Setting it up...

The plugin needs to be configured for either Push-to-Talk or Voice Activity Detection (VAD). Please choose how you want to use the plugin and follow the corresponding steps.

This steps are necessary, since the plugin and not TeamSpeak has to decide when to transmit audio from now on. (Otherwise sounds would get cut off whenever you talk or press your keys.)

…with Voice Activity Detection

This one is pretty simple.

That's it.

…with Push-to-Talk

This one is a tiny bit more complicated.

You're done.

Playing back files (the real deal)

There are multiple ways to play sounds. You can either enter commands directly to your chat, you can assign hotkeys to specific files or actions, you can configure the button frame to provide graphical access or you can even bind hotkeys to those buttons.

But let's step back and clear some things up before you start.

The plugin knows two different ways to play back files:

Those two types are referenced in the plugin as sound or music.

Using the chat to execute plugin commands

Type the following commands to your chat input and press enter to execute the described actions actions.

/soundboard < type > < filename >

So if you want for example play back a file at C:\MySounds\Blah.mp3, you have to type

/soundboard sound C:\MySounds\Blah.mp3

As you've learned earlier: If that file that is to be played is in fact music, you might want to enter

/soundboard music C:\MySounds\Blah.mp3

To stop playback of a music file, just enter

/soundboard stop

If you want to stream music from an internet stream (via ICE- or Shoutcast), enter

/soundboard stream < URL >

If you want to virtually click a button of the button frame, enter

/soundboard button < button number >

Binding commands to a hotkey

You might want to prefer accessing your favorite sounds by a hotkey, so this is the way to configure it:

In some rare cases the path to a file can be too long to be saved by TS3. Try to shorten the path by copying the file somewhere else ;)

Using the button frame

By default (and since v0.9.4b), the button window will hold 10 buttons for you to configure. If you want more or less buttons, you have to follow the detailed instructions below.

Editing title, type and file of a button

Just right-click (since v0.9.4b) the button and select the option you want to change, that's it.

If you want to use multiple lines on the button, insert \n as newline character into the title.

Editing the configuration manually

Open the configuration file by clicking the button in the plugins' settings dialog.

Your default editor for .ini-files should open. If it doesn't - well, you'd have to search for the file soundboardframe.ini for yourself ;)

The file itself is written in the standard ini-Format Qt uses and not a weird idea of myself ;)

The config file contains a header called [Buttons] you shouldn't touch. Below comes the part you're interested in.

Each button you want to configure consists of several lines containing the button number and an attributes. The number is an incrementing one starting with 1, followed by a backslash. The attributes describe the filenames, the text that's to be shown on the button, the style and maybe some other things.

Let's assume your config looks like

[Buttons]
1\file=C:\\Temp\\Blah.mp3
1\title=Awesome Track
1\type=music
2\title=Stop Music
2\type=stop
size=2

As said, don't touch the header [Buttons]. The next three lines describe the first button and it's assigned file, type - in that case music - and title of the button.

Important: Filenames on Windows-Systems must contain two backslashes \ instead of just one (because the backslash is used as a so-called escape-character). On filesystems where normal slashes are used, using only one is alright.

The last line

size=2

describes, how many buttons in total there are. This number has to be adjusted if you add or remove buttons.

Once you've made your changes, save the file and reload the plugin by disabling and re-enabling it. (This method will be optimized later on.)

Available attributes
title

The caption of the button. This is what's displayed on top of the button in the button frame. This attribute should always be set

type

this attribute must be present

file

The full path of the file, e.g. C:\Temp\Blah.mp3 on Windows or /home/user/blah.mp3 on *nix.

style

A style definition, similar to CSS but using the Qt-Syntax. Please google it for more info.

Advanced Settings

The configuration file should also contain a General section (at least once you've closed TeamSpeak after the first time you used the plugin), where you can specify the following settings (which all require you to reload the plugin after a change, atm.):

Name Value
buttonWidth the width of a single button, default is 110
buttonHeight the height of a single button, default is 80
buttonsPerRow the count of buttons to be shown per row, default is 5
buttonSpacing the space between the buttons, default is 8

So the config file could contain something like this:

[General]
buttonWidth=120
buttonHeigh=80

Synchronizing to a Media-Player

When you want to use the plugin as a radio-station or "Music-Bot" you might want to synchronize it to a media player. That way the plugin tries to find out what your player is playing and does the same to your TS3-channel.

This way you can have a long playlist ready and leave it playing unattended.

To start:

The plugin will only play files it knows. It cannot play files that are not natively supported by the plugin - even if the media player can actually play it.

Remote-Controlling the Media-Player

So you've enabled the sync-function and entered a password. Now give the password to the people you want to be able to control your media player.

They can then open up a text chat with you and enter one of the following commands that are prepended by the password.

To start playback

< password > play

To stop playback

< password > play

To pause/resume playback

< password > pause

To jump to the next track

< password > next

To jump to the previous track

< password > prev

To jump to a specific file in the playlist

< password > track < number >

To get info about a track on a specified track position

< password > info < number >

The availibility of this commands depend on the used media player.

Notice the missing /! Those commands don't start with a slash!

Changelog

v0.9.5b (May, 20th 2012)

v0.9.4b (May, 12th 2012)

v0.9.3b (May, 10th 2012)

v0.9.1b (May, 5th 2012)

v0.6.1b

v0.5.9b

v0.5.7b

v0.5.5b

v0.5.1b

v0.5b

Thanks

Special thanks for general support go out to

Special thanks for beta-testing and having some fun ideas

Also special thanks to Nuwen who initially came up with a version of a button frame.

And last but not least thanks to the TeamSpeak-Staff and the Developers of the BASS-Library.