Barnard
0xAF: note begin.
I've added Voice Start/Stop events, to be passed to the notify.sh script.
I need these events, so I can start and stop transmitting (PTT button) on my HAM radio.
I'm in no way a GO developer, so it is what it is.
0xAF: note end.
The original maintainer has become unresponsive. There are pull requests and other interactions that have not been responded to in a few years. So at this point, the worst has to be assumed, that's right, real life got in the way of project development!
So, I hope to make this fork the officially supported version, until someone else wants to take over. I am not a go programmer, but I do use barnard almost daily. So if you have some changes, please create a pull request.
Documentation
Please feel free to give suggestions and corrections for this file (as wellas Barnard propper).
Find a sample notification script in examples/.
Audio boost
If a user is too soft to hear, you can boost their audio.
The audio should drastically increase once you have hit the VolumeUp key over 10 times (from the silent/0 position).
The boost setting is saved per user, just like per user volume.
FIFO Control
If you pass the --fifo option to Barnard, a FIFO pipe will be created.
You can control Barnard by sending commands to this FIFO.
Each command must end with a \n (0x0a) character.
Commands may be added at any time.
Per the robustness principle, be liberal in what you receive.
Current Commands:
- error: An error has occured to prevent transmitting audio, or taking another action.
- micup: Start transmitting, just as when you hold down the talk key. Does nothing if you are already transmiting.
- micdown: Stop transmitting, just like when you release your talk key. Does nothing if you are not already transmitting.
- toggle: Toggle your transmission state.
- talk: Synonym for toggle.
- exit: Exit Barnard, just like when you press your quit key.
Event Notification
You can use the notifycommand parameter in your config file to run a program on certain events.
Each event has the following parameters:
- event: the name of the event
- join: user has joined the channel you are in
- leave: user has left the channel you are in
- micup: you have begun transmitting
- micdown: you have stopped transmitting
- connect: you have connected to a server
- disconnect: you have disconnected from a server
- msg: the channel you are currently connected to has received a message
- pm: you have received a private message
- who: the person causing initiation of the event ("me" for self-generated events)
- what: the body of the event as applicable (message, channel name, etc)
Warning:
Keep in mind that Barnard opens an Alsa sound device when starting.
For this reason, any notification command used here will need to be able to work while other sound is playing.
It is recommended that you test your notification command by hand, while Barnard is running, before including it here.
You can create a command that will take any of these parameters as desired, by prepending the name of the parameter in your command with a % (percent) sign.
As an example, to attempt to play wave files for each event, you could set notifycommand to:
aplay /home/username/sounds/mumble/%event.wav
When you begin transmitting, aplay will attempt to play /home/username/sounds/mumble/micup.wav.
The same will be attempted for the other events, such as leave, join, micdown, etc.
In order to process messages and the like, Barnard will parse your command as a properly quoted shell command.
For this reason, you should put quotes around arguments that have spaces.
If you want to do more complex things, write a shell script (or c application, python script, etc) to process the arguments passed into it.
Connecting Via Text Interface
You can now manage your server lists in a text GUI.
An Ncurses interface has been created by members of the F123 Group.
Make sure the folder in which you store the barnard binary is in your path. This should be the default for any f123 user.
Then just run ./barnard-ui from this folder, and follow the instructions.
You can add barnard-ui to your path as well, and access it from anywhere.
Modifications
This copy of Barnard and it's associated Gumble library have been modified to support usage by blind users.
Our thanks go out to Tim Cooper for the massive amount of work put into this client, originally found at github.com/layeh/barnard.
Config
By default, the file $HOME/.barnard.yaml will hold the configuration for Barnard.
You can have barnard read another file by using the -c option, like ./barnard -c ~/.anotherbarnard.yaml
.
It will be created automatically if it doesn't exist.
If you modify the config file while Barnard is running, your changes may be overwritten.
Defaults
You can set username and defaultserver in your config file, and they will be used if none is specified when launching barnard.
(Note that the default username (an empty string) and the default server name (localhost:64738) have been the defaults for barnard up to this point, and have been left that way for compatibility.)
Audio Devices
You can set the default input and output devices in the config file as well.
Pass the -list_devices parameter to barnard to be given a list of audio input and output devices.
Copy lines from the above list into inputdevice and outputdevice as desired.
To clear your inputdevice or outputdevice options and set them to defaults, set them to "" or delete them entirely.
Keystrokes
You can see the below keystrokes in your config file.
Pressing tab inside the main window switches between the user/channel tree view and the message input box.
When in the message input box:
- left and right arrow keys move by character
- home/end moves to the beginning/end of the text respectively
- enter submits the entered message
When in the treeview, pressing:
- f5 or f6 on a channel changes the volume for all users in that channel
- f5 or f6 on a user changes the volume for that user.
- enter on de-selected user selects that user for PM mode.
- enter on selected user de-selects the user
- enter on a channel de-selects any selected users (if any) and moves you to the specified channel.
Volume
If you set the volume for a user (using the F5/F6 keys by default), Barnard will remember that volume, and will keep that user at that volume.
The volume is set for a single user on a single server.
This means you may have to set a person to a custom volume multiple times, if you are both on multiple servers together.
If you set the volume of a channel, you are basically relatively adjusting each user's volume.
If Jim's volume is set to 0.1, and larry's volume is set to 0.9, lowering the channel by one increment will mute Jim,and set Larry to 0.8.
You can change the volume for a user once that user has spoken at least once during a session.
Attempts to change the volume of a user who has not spoken will be ignored.
If you are unable to hear a user speaking, you can edit the .barnard.yaml file in your home directory, after closing Barnard, and set the volume parameter to 1.0 for a particular user.
Technical
The volume for each user is set via the audio session created for that user; no talking means no session means no settable volume.
PM Mode
This mode sets the text to the left of your message entry box to [@username], where username is the name of the person you are PMing.
While a user is selected, both private messages and channel messages are displayed.
However, any messages you send will be delivered only to the selected user.
Private messages between you and another party are shown as pm/source/dest
, where source and dest are the sender and receiver of the message respectively.
When you are finished sending private messages to a user, press tab to reactivate the tree view, and de-select the user as above.
Info
barnard is a terminal-based client for the Mumble voice
chat software.
Installation
Requirements:
- Go
- Git
- Opus development headers
- OpenAL development headers
To fetch and build:
go get -u github.com/bmmcginty/barnard
After running the command above, barnard
will be compiled as $(go env GOPATH)/bin/barnard
.
Manual
Key bindings
- F1: toggle voice transmission
- Ctrl+L: clear chat log
- Tab: toggle focus between chat and user tree
- Page Up: scroll chat up
- Page Down: scroll chat down
- Home: scroll chat to the top
- End: scroll chat to the bottom
- F10: quit
License
GPLv2
Contributors
Tim Cooper (tim.cooper@layeh.com)
Brandon McGinty-Carroll (bmmcginty.barnard@bmcginty.us)