Gramin Radio Inter Networking System v0.2
Usage and Installation Guide


Table of Contents

1. Introduction
2. Installation
2.1. Planning
2.2. Hardware recommendations
2.3. Download
2.4. Configuration definition
2.5. Per-machine installation
3. Using the library
3.1. Upload and search
3.2. Metadata editing
4. Managing the playlist
4.1. Creating playlists
4.2. Simulation mode and live mode
4.3. Hotkeys
5. Managing Phone Calls
5.1. Handling incoming calls
5.2. Managing active calls
5.3. Dialing out
5.4. Telephone Conference
5.5. Broadcasting
6. Backup
7. Log shipping
8. Diagnostics and Troubleshooting
8.1. Running a diagnostics check
8.2. Troubleshooting
9. Future releases
10. Contact us
11. Important links

List of Tables

2.1. Example setups: Play around with configuration

Chapter 1. Introduction

This document will guide you through the installation and usage of the Gramin Radio Inter Networking System v0.2. GRINS is designed to be used in a radio station by the radio jockey to run live broadcasts, and schedule broadcasts of pre-recorded content. A distinguishing feature of GRINS is its support for telephony: the RJ can make and receive phone calls through the user-interface, archive the call, put it on air, and even conference between multiple callers. In addition, GRINS provides support to record any audio that is spoken out by the RJ on mic. GRINS also has an extensive library to maintain detailed metadata about various programs, faceted metadata search of the library, and to derive statistical information about broadcasts. Diagnostics are in-built to help the radio station operators find faults in the system, such as faulty audio cables and incorrect network connections. In the upcoming versions, GRINS will also provide support to send and receive SMS messages and support voice applications, to allow greater interaction with the audience.

GRINS has been designed with objective to build systems for community radio stations in rural ares of developing countries, such as India. Therefore, to keep costs low, GRINS attempts to do most audio operations in software to eliminate the need of buying expensive audio hardware systems. Extensive effort has also been put into providing rich features in a simple manner, so that non-tech-savvy operators can also quickly learn how to use the system. In the same context, diagnostics support is provided so that radio station operators can debug common faults locally, and do not have to wait for trained technical staff to visit the radio station and fix problems. Finally, GRINS is extremely flexible to be deployed across multiple machines. This becomes useful if GRINS is to be deployed in a plug-n-play manner in some existing radio station setup which has various cables already hardwired into computers and mixers, and the staff are reluctant to touch the configuration. GRINS guides you through a simple wizard to define your radio station environment, and configures itself accordingly.

In the next couple of chapters, we will guide you through the installation and various other use-cases you are likely to encounter.

Chapter 2. Installation

GRINS has been designed to be used on either Windows or Linux. So far, we have only tested GRINS on Windows XP and Ubuntu 8.10, and we recommend using either Windows XP or a Linux debian flavour for the platform. If you do test GRINS on some other platform, successfully or unsuccessfully, do let us know.

We will next guide you through the installation procedure. You have to first plan out the deployment by evaluating different configuration setups. Once you have decided on the best setup, you will have to get the necessary hardware in place. If you choose to do a multi-machine setup, you of course need to have all the machines connected in a local area network. We do not explain the procedure for setting up a LAN in this document though. But once you do have the necessary hardware ready, you will need to follow the download instructions, and finally install the desired configuration on your machines.

For those who simply want to try out GRINS on their computers, planning and configuration steps are not required. GRINS ships with a default configuration file that can be used in this case. This default configuration will allow a user to get an understanding of how GRINS works. He/She would get to try out most of the features of the system. However, one must note that for GRINS to be fully operational, multiple soundcards are required. Once a user is satisfied with the functionalities of GRINS and wants to use it in a radio station, he/she must go through planning and configuration steps.

2.1. Planning

  1. You need to have JavaScript enabled on your browser. To start with, use the configuration wizard to play around with different configurations and evaluate which ones suit your need the best.

  2. Configuration wizard

    The configuration should be simple for most greenfield setups when you are setting up a radio station from scratch. But if you already have a radio station running and you want to begin using GRINS, then you will have to decide how to best plug GRINS into your existing setup. Use the Visual Config button to generate different configurations. The wizard will also tell you what kind of hardware and audio cabling you will need. Images of a few setups are shown below.

    Table 2.1. Example setups: Play around with configuration

    Standard setup if you are already playing out audio through a computer

    Single machine setup to run everything off one machine

    Recommended three machine setup to do playout through a different machine

    The configuration options you can control are as follows:

    1. Whether or not you have an external mixer: A mixer is definitely recommended though, because it will allow you to use a good quality XLR mic, and even plug in other audio sources such as CD players and taperecorders.

    2. Whether or not you have an XLR mic: An XLR mic is definitely recommended for its better quality.

    3. The number of machines you have: Although a single machine setup works with good audio quality, it is not recommended because you may be running many more activities on the same machine, which could interfere with the GRINS installation and playout quality.

    4. Whether or not you want to keep your playout on the same machine as your UI machine: You should do this only in special cases, for example, if you already have a good quality soundcard installed on your machine and you do not want to move it to another machine. This is likely to happen if you are already running a radio station.

    5. Whether or not your mixer can provide separate output for mic: Most good mixers have the capability of isolating an input channel and re-routing it to one of the output channels. Terms often associated with this capability are solo, control room output, and pre-faded listening. If your mixer has such capabilities, then GRINS can use this feature to archive all live mic content. If not, then you have two options. Either use a splitter on your mic -- bring one cable into your mixer, and the other into the GRINS archiver machine, and select YES for this option. Else, select NO for this option, and GRINS will then use the normal mixer output for archiving. The only drawback with the second ption is that the archived audio will also be mixed with any background music that you may have played during live mode.

    6. Whether you will use an external FM transmitter or an internal PCI transmitter: Most radio stations use an external FM transmitter, but FM PCI cards are also available which can be installed on a computer. This card is suitable for most community radio stations -- it excites the FM up to 2.5W, and the signal can then be amplified through a standard RF amplifer. The PCI card route will generally turn out to be cheaper -- costs of external FM transmitters vary widely across different countries depending upon local availabilty and import restrictions.

    7. Whether you want to enable telephony through an Analog Telephony Adapter (ATA) or not: An ATA provides a PSTN-SIP interface -- phone lines can be plugged into the ATA, and it connects with the GRINS machine over the LAN. If you do not have phone lines at the radio station, you need not select this option.

    8. Telephony configurations: You can specify your country code, the number prefix you use to make long distance calls, and the number prefix you use to make international calls. GRINS will use this to standardize any phone numbers you enter in the system, or those received as the caller-id.

2.2. Hardware recommendations

This is a brief description of the recommended hardware, chiefly written in the context of a low-cost setup for community radio stations.

  1. FM transmitter or PCI card

    A 50W transmitter will easily give you a range of 10-15km. The Nomad India Network manufactures indigeneous FM transmitters that are being used at several community radio stations in India.

    PCI FM transmitters are also available from PCS Electronics. These will have to be supplemented with additional amplifiers.

  2. Machines

    We recommend that you use a normal P4 machine to run the GRINS user interface, and any programs that you may be using for audio editing and other tasks.

    For extra machines, we recommend using a Soekris Net5501. Or a Via mini-ITX running at 1GHz. Or an Intel Atom mini-ITX running at 1.6 Ghz.

    All of Sokerix, Via Mini-ITX, and the Atom Mini-ITX have low power consumption, in the range of 10 to 30 W. In future releases when we will support automated playout through these machines, then even if there is no power in the radio station, as is common in most Indian villages, these boxes can keep running on solar power to do a continuous broadcast.

  3. Mixer

    Behringer mixers are reasonably priced and of good quality. Many community radio stations in India also use Tapco mixers.

  4. Sound cards

    Most boards except the Soekris box will have at least one onboard sound card. You may be able to get away with this at a reasonable playout quality. For additional soundcards as required by the configuration, you can use PCI or USB sound cards. USB sound cards by Asus give excellent quality.

  5. Analog Telephony Adapter

    We have currently tested with the Linksys SPA 3102 ATAs, but ATAs are common commodity and should work seamlessly with GRINS. It may require some tinkering to supply the caller-id correctly though.

2.3. Download

You are ready to go once you have all the desired hardware in place. Archive files for installing GRINS are present below. You must download the archive marked Common. If you have at least one Linux machine in your GRINS setup, you must download the archive marked Linux . Similarly, if you have at least one Windows machine, you must download the archive marked Windows.

Now, create a folder and extract all the archives into this folder. The 7Zip extraction utility (provided below) can be used for extracting these archives on Windows. Copy the contents of this folder to the base directory of a USB stick. The orginal archives need not be copied to the USB stick. After you have defined the configuration through the wizard, you will just have to insert the USB stick, one at a time, in each machine. On inserting the USB stick, your favorite browser will pop up with the installation instructions. You can follow them for the rest of the installation process. It's just that simple!

Common containing GRINS and its documentation, installation scriptsDownload (12 MB)
Linux containing mysql, gstreamer, java, and tomcat dependenciesDownload (95 MB)
Windows containing mysql, gstreamer, java, and tomcat dependenciesDownload (160 MB)
7Zip extraction utility for Windows *Home Page

* To extract an archive file using 7Zip, right-click on the file and choose "Extract Here". This will extract a ".tar" file. Now right-click on this ".tar" file and choose "Extract Here". You need not copy the ".tar" file to the USB stick.

2.4. Configuration definition

  1. You need to have JavaScript enabled on your browser. If you are on Windows, when you insert your USB stick with the GRINS package copied on it, your system should automatically fire off an html file in your browser. If this does not work, open in your browser the index.html file present on the USB stick. You will be prompted with a page with some instructions.

  2. Step 2 of those instructions lead you to the configuration wizard to design your radio station configuration

  3. Define the same configuration that you selected during the planning stage

  4. Configuration file

    Once you are happy with the configuration, you need to generate the GRINS configuration file

  5. Save the configuration as "automation.conf" in text mode in the root of your USB stick. Overwrite the default automation.conf file.

  6. Now take out the USB stick and insert it one at a time in each machine you want to use! Follow the per-machine installation instructions for details.

2.5. Per-machine installation

  1. When you insert your USB stick with the GRINS package and the configuration file copied on it, your system should automatically fire off the main page in your browser as before. If this does not work, manually open the index.html file in your browser.

  2. Follow step 3 on the main page to start installation. Your browser will ask your permission to run an installation script -- say YES. Some browsers may however download the installation script and show it on your screen. In this case, save the script and run it manually.

  3. The script will prompt you for various details, and fire off installation wizards for external dependencies. Follow the instructions carefully.

  4. If everything goes well, repeat the process on each machine you want to set up.

  5. Once all the machines are set up, you should be ready to go! Start the GRINS UI and poke around the system.

Chapter 3. Using the library

3.1. Upload and search

  1. Upload

    The very first thing you need to do is to populate the GRINS library. Look at the bottom left of the screen and you will find the upload icon.

    Clicking on the icon, opens the upload widget in the workspace. Use the file-chooser to select files for upload.

  2. Search

    The next step is to learn to use the library. Click the library icon in the bottom left of the screen.

    Clicking the icon, opens the library widget in the workspace. This has many extensive features, but is very simple to use. Various features are explained below.

    1. Free text search:

      You can type keywords in the Search Query box, and click on the Search button. Results will be shown in the Search Results panel.

    2. Faceted metadata search:

      GRINS supports a style of search called faceted metadata search, inspired by the Flamenco project. Various facets available by default are shown as Search Filters. Whenever a filter is activated, the filter details are shown in the Active Filters panel. For example, here the Language and Artist filters are active, although no selections have been made in the filters. Once selections are made, the results of all active filters and the results of the search query are ANDed together, and the common subset of results is populated in the Search Results panel.

    3. Stats and list mode:

      GRINS can display the search results either as a list, or use the results to generate statistics about the history of when the search results were played out in the past. This can be used to, for example, chalk out graphs of the history of programs related to health, or programs related to women empowerment, etc.

    4. Examples of search filters:

      GRINS by default includes a number of search filters. The Language Filter allows you to search for programs in a particular language. The Artist/Creator filter enables selections on the name of the artist or creator, the location where the program was created, the affiliation of the creator with the program -- as an artist, or a script writer, or a funding agency, etc, and the role of the creator -- whether it is a non-governmental organization, or a staff member, or a volunteer, etc. The Length filter allows you to search for programs which are less than a specified length. The Type filter allows search on mic recordings or other types of programs. The New Items filter returns programs added to the library in the last week, either through uploads, or through mic recordings. The Playout History filter enables search based on a time window in which programs were played out. In addition to these default filters, GRINS also allows category filters, where different types of nodes from orthogonal category tress can be selected. Based on the programming focus of the radio station, different categories can be defined, such as categories for health related programs, or politics related programs, or sports related programs, etc.

  3. Edit

    You would now want to preview the audio programs you uploaded, and edit their metadata. Notice the small cluster of three buttons on the right of the items shown in the search results.

    Clicking on the icon marked "i" opens a widget with the detailed metadata for the item. And clicking on the headphones icon plays the audio through your headphones. Note that as long as you have all the connections set up properly, you can preview audio programs even if there is a playout in progress.

3.2. Metadata editing

GRINS supports two modes of editing: editing an item individually, and doing a group edit. A group edit applies any changes to all items that are a part of the group of selected items. Various features supported by the metadata editor are described next.

  1. Title, description, tags

    Edit the appropriate text field.

  2. Language

    Select a language from the dropdown, or type a new language not already present in the database and press ENTER.

  3. Statistics

    The graph shows the entire playout history of the item from the time it was added to the GRINS library.

  4. Artists/Creators

    This field allows you to add as many artists or other entities affiliated with a program. For example, you may want to record the name of the funding agency, or the script writer, or the NGO under who's direction the program was produced.

  5. Categories

    You can associate as many orthognal category facets with each program. The current version of GRINS comes with pre-defined categories and does not allow you to define your own categories; this feature will be made available in the next release.

Chapter 4. Managing the playlist

4.1. Creating playlists

You can easily create playlists by dragging and dropping programs from the library search panel into the playlist section. The playlist is always active and can be controlled through the following buttons.

  1. Clears the playlist.

  2. Opens a selection to load a new playlist.

  3. Opens a selection to save a playlist. Either you can overwrite an existing playlist, or type the name for a new playlist.

  4. Opens the following options to configure playlists.

    You can specify the time at which you want the playlist to start playing, and GRINS will automatically trigger the playout even if you are not around. Through the fadeout option, you can specify the number of seconds before the end of a program at which it fades out to smoothly transition to the next program.

  5. Playout duration

    Finally, once you have a number of programs in your playlist, this is what each item will look like. You can see two pieces of timing information: The first indicates the time when this particular item is supposed to be played out, and the second indicates the duration of this item. Thus, you can come to know how long a playlist you have created by checking the time at which the last item in the playlist will be played out. The rest of the buttons are explained next.

4.2. Simulation mode and live mode

If the radio station staff is not confident of going out live on air, they can actually simulate a live interaction through the simulation mode. The entire look and feel is the same as the live mode explained in the next section, except that audio is only available for preview and not for live playout. Once you save a playlist in the simulation mode, you can go back to live mode, load the playlist, set the starting time of the playlist, and go out for a beer!

Various featues available in the playlist are explained next.

  1. Regular playout operations

    Plays the program. The currently active program is also added to the logs.

  2. Pauses the program.

  3. Stops the program.

  4. Moves to the next program.

  5. Adjusts the volume.

  6. Records whatever is being spoken out on the Mic.

  7. Previews the program on headphones.

  8. Stops the preview.

  9. Opens the metadata information widget for this item.

  10. Marks/Unmarks this items with fadeout. The default value of the fadeout duration initialized in Playlist Options will be used to fade out this program when it ends.

  11. Inserting live slots:

    There are two ways to insert live slots when the RJ intends to go out live on the Mic. If the RJ presses the INSERT key, it inserts a Go-Live slot in the playlist. This slot is considered equivalent to any other playlist item, except that it does not play anything -- the RJ is instead supposed to speak into the Mic. The intended duration of the live slot is 10 seconds by default, but can be changed by clicking on the Go-Live button. The second method to insert a live slot is by directly clicking on the Go-Live button for a music item. The important point to note is that GRINS does not automaticlly advance a live item being played out. A live item entry is interpreted as a slot when the RS would go out live on air, and hence once the RJ is done talking, the NEXT button must be pressed to move to the next item in the playlist. The 10 seconds Go-Live duration is only meant as an indication to know how much time should ideally be taken in this slot.

    This open an options menu with the following options.

    You can specify the duration of the live slot, and if a music item was converted into a live slot then you can also specify if you want to play that music in the background while the RJ speaks on the Mic.

4.3. Hotkeys

Clicking on the Hotkeys button opens the Hotkeys widget. You can initialize hotkeys that the RJ can use to play out common sounds while doing a live Mic broadcast. Sounds such as laughter, or clapping, or a pin drop, or even the characteristic jingle of the radio station. The initialization is done by pressing the "Add Hotkey" button, and dragging-dropping a file from the library search results. You can also give a colour of your choice to each Hotkey, so that the RJ can easily recognize a Hotkey.

Chapter 5. Managing Phone Calls

Starting with version 0.2, GRINS comes with a telephony widget that allows an RJ to accept incoming phone calls, make outgoing calls, and add metadata to the recorded calls. GRINS currently works only with analog telephony adaptors (ATA). Other types of devices will be supported in later versions.

5.1. Handling incoming calls

  1. Allow incoming calls

    You can ask GRINS to start accepting calls by pressing the "Allow Incoming" button. When this button is pressed, all calls coming into GRINS are displayed in the incoming calls list. These calls appear in the form of buttons with caller ID written on them.

  2. Accept incoming calls

    To accept an incoming call, simply press the button corresponding to the call. When you press the button, the button moves to the accepted call list. You can talk to the caller by speaking into your microphone you use for speaking on air. You will hear the caller's voice through you monitor head phones. The moment you accept a call, the call starts getting recorded automatically.

5.2. Managing active calls

  1. Switching between active calls

    Note that if you have more than one telephone connection connected to GRINS, then you can have multiple active calls. You can switch between them by simply clicking on the button of the caller you want to talk to. If you were already talking to a person at that time, then that person is put on hold.

  2. Editing call information

    You can edit call related information for the current call when a call is active. You can edit caller ID, name, and location for the caller, and add tags and categories for the call. Once you are done editing the information, you can save the information using the save button. When no calls are active, you can choose one of the recently completed calls from the dropdown near the save button to edit its information.

  3. Hanging up a call

    To hangup a call, press the button with the hangup icon attached to the button of the call. You can hangup a call either when it is in the incoming calls list or when it is in the accepted calls list. Once the call is hungup, it is available in the library, just like all the other programs.

5.3. Dialing out

A dialpad is provided in the bottom left of the telephony widget to dial out from GRINS. You can search for a name already saved by you by typing atleast 3 letters of the name in the Name field. Once the call is dialled, it appears in the active calls list.

5.4. Telephone Conference

You start a conference among all active calls by pressing the "Conference" button. Note that only the call with its button pressed can speak in the conference. All other callers are muted. This allows you to control the flow of the conference.

5.5. Broadcasting

You can put the selected call or the entire conference live on air by pressing the "Go Live" button.

Chapter 6. Backup

It is important to backup your data from time to time. Not only is the content important, but all metadata that you may have entered in GRINS database also needs to be appropriately backed up. GRINS provides a very flexible backup procedure: You can choose to maintain your backups on CDs, or DVDs, or a harddisk of another computer.

GRINS maintains backups in incremental volumes. For example, if you want to use CDs as your backup medium, each time you initiate the backup process, GRINS will create a new volume of up to 700 MB (which is the maximum available space on a CD). When you initiate the backup process a second time, GRINS will create a fresh volume but from beyond the last point of backup. So, whenever you initiate a backup, GRINS creates a new checkpoint, and the backup from the last checkpoint to the new checkpoint is called a volume. You can define the maximum volume size to be that of a CD (700 MB) or a DVD (4.6 GB) or a custom size (e.g. 100 MB) to be backedup up periodically on another computer.

Four options are presented. You can either reset the entire backup process to remove any checkpoints and create a backup from scratch. Or, you can continue your backup process and create a new backup volume. If you have lost some specific backup volume, you can recreate just that volume. And finally, you can restore a GRINS setup from backup.

Chapter 7. Log shipping

Even if your radio station does not have Internet connectivity, you can still report problems to us. All you need is a USB stick. As shown in the figure below, you then insert the key into any of the various machines you may be using. GRINS will copy its logs on to the key. Then walk over to an Internet cafe or any other Internet enabled PC and insert the key into this PC. Scripts will automatically fire off and upload the logs to our server. We can then take a look at these logs and figure out any problems in your setup.

Note that log-shipping is not enabled by default though. You have to send us an email and we will generate a unique ID for you to enable this feature.

Chapter 8. Diagnostics and Troubleshooting

8.1. Running a diagnostics check

You should definitely run the diagnostics widget each time before you go out live on air. It is meant to identify any network related problems or audio cable connection faults, if for example, somebody knocked out a network cable or pulled out a soundcard accidently. The diagnostics widget offers two views: A list view and a network view.

  1. List view

    Once you run diagnostics, it will prompt you if you can hear the audio properly, and generate a view similar to the one shown below. This tells you which components are working fine, and which ones are not.

  2. Network view

    Once you run the network connectivity check, if will generate a view showing you the status of services running on different machines, and the network connectivity between these machines. Green lines show connectivity and red lines indicate a loss of connectivity.

  3. Restart and shutdown

    If things go drastically wrong, you can remotely restart your machines. You can also shutdown your machines remotely when wrapping up for the day or when packing up for a long weekend or a holiday.

    Restarts all remote machines in the setup. This button also restarts all the services running on the same machine as the application.

    Shuts down all remote machines. This button will also shutdown all services running on the same machine as the application. General usage for this button would be to shut the setup down before shuting down the local machine.

8.2. Troubleshooting

You may encounter the following types of errors:

  1. Network error

    Please check all your network cables, that they are hooked correctly into the various machines and the hub. The easiest way is to look at the blinking lights. If lights are not blinking, it means that something is wrong. Either the connections are faulty or the machine is dead. Restart the machine to confirm.

  2. Audio cable fault

    Please check all your audio cables, running from your Mic into the Mixer, or from the Mixer to the machines, or from the machines to Mixer and headphones, etc. GRINS runs DSP tests to check the audio quality available on various soundcards. An error here means that either your cable connections or your soundcard fixture are loose or faulty.

  3. Service fault

    If at all you do see this error, it should be very rare. It could potentially happen due to some bugs that cause inconsistent states across machines. GRINS should automatically set itself right, but if problems persist, then the safest option is to restart the user-interface or the machines. In the future, we will enable log shipping so you will be prompted to send your logs to us to check for bugs, and updates will be delivered to you automatically.

  4. Unable to play file

    This may happen if the file is corrupt. If we are able to detect a corrupt file, we show you the status as a RED color on the file entry in the playlist. But if we are not able to detect it internally, the playout subsystem of GRINS may cause this error. But if you get the same error with many files, it most likely indicates that some essential GRINS service is malfunctioning. If the system does not set itself right on its own, then try restarting the machine running the playout service.

Lastly, if all fails, then write to us explaining your configuration and problem, and we will try our best to guide you in the right direction.

Chapter 9. Future releases

There are a number of features that we will include in future releases, one at a time. Do stay tuned to our website for updates. Some interesting fetures that we are sure to provide include the following:

  • Internationalization of the user-interface to support multiple languages. A virtual keyboard to take user-input in different languages.

  • Networking with other GRINS deployments. The deployments will discover each other automatically, and allow operators to exchange and share content with other radio stations.

  • SMS service, to receive and send SMS messages at the radio station.

  • Multi-lingual search. We are using Lucene at the backend, but we have not had a chance of think about good ways to do multi-lingual search. If you have some ideas, do write to us!

Chapter 10. Contact us

To get in touch, write to us at:

To stay updated on our progress, or to report bugs and support queries, join our interest and developer mailing lists.

If you are in Delhi in India, you can also drop by our office. We are located at:

Gram Vaani Community Media

Technology Business Incubator Unit 4

IIT Delhi, Hauz Khaz

New Delhi, 110 016, INDIA

Phone number: +91-11-2658-1524-(extn)1

Chapter 11. Important links

Last updated December 17 2009