Search

Liquidsoap: a versatile icecast source client, and much more…

August 5th, 2007 edited by Tincho

Article submitted by Romain Beauxis. We have run out of good articles! Please help DPOTD and submit good articles about software you like!

Presentation

Liquidsoap is a powerful audio stream generator designed to work with icecast as a source client. It was built for the campus net-radio of the Ecole Normale Supérieure de Lyon. The tough requirements included: accepting user requests, handling remote files and play lists, scheduling special programs, mixing jingles in the stream, interacting with the website or an IRC bot, etc.

The special thing of Liquidsoap is that instead of building an ad-hoc solution for that single net-radio, it was developed as a flexible tool with which you can combine as you like the features that you want. Hence, it has then been used successfully for several other net-radios, for which the usual streaming tools weren’t enough.

Design

Describing an audio stream can be very complex: several inputs (files, stream relaying, sound card input) that can be combined in various ways (audio processing, mixing, track scheduling, fall-backs) and finally be output in various other ways (several servers, contents and formats). To make it easy without losing expressive power, Liquidsoap uses its own little scripting language for configuration.

That language has a notion of audio stream and request, and has built-in functions for combining streams in various ways. Some of its main features are:

  • It is statically typed: your stream never crashes because you made a typo in a dark corner of the configuration.
  • Types are inferred: you don’t have to write them.
  • It is functional: you can define your own compound operations, but functions are also used to describe transitions from one stream to another.

Liquidsoap is quite versatile: it can be used as a daemon or as a command-line tool, and is not restricted to streaming to an icecast server, it can also stream to your local sound card!

Usage

If you are not aware of the way a web radio can be built using icecast, you may want to read some more documentation on this topic. In short, icecast accepts sources connections, and relays the data from these sources to its listeners. Liquidsoap acts as a source.

Let’s begin with a very simple example… Let’s say that you run an icecast server at host myhost with the password for sources being hackmeimcool, and you want to stream in Ogg/Vorbis a single looped file (it can be Ogg/Vorbis, MP3, WAV, even AAC on the SVN version). Then this may do the job for you:

$ liquidsoap 'output.icecast.vorbis(host="myhost",password="hackmeimcool",
  mount="mystream.ogg",single("/path/to/my/file"))'

Another possible usage is to relay a net-radio to your sound card using libao. For this you may try:

$ liquidsoap 'output.ao(fallback(track_sensitive=false,
  [input.http("http://www.dolebrai.net:8000/dolebrai.ogg"),blank()]))’

Liquidsoap can also be used as a scripting language, so the following does both previous examples:

#!/usr/bin/liquidsoap

# Set log to stdout and /tmp
set log.stdout = true
set log.dir = "/tmp"

# Output a file to an icecast server
file = single("/path/to/my/file")
output.icecast.vorbis(host="myhost",password="hackmeimcool",
        mount="mystream.ogg",file)

# Output a net-radio locally:
radio = fallback(track_sensitive=false,[input.http("http://www.dolebrai.net:8000/dolebrai.ogg"),blank()])
output.ao(radio)

Conclusion

The complete API is available here. We have not presented many cool features, such as:

  • sound effects;
  • custom transitions;
  • sound card I/O;
  • interaction with other components (website, external scheduler) in a more complex framework;
  • many others…

Liquidsoap is already used in various net-radios, such as Dolebrai which streams libre music, and RadioPi which has a complex multi-server and multi-stream configuration.

This presentation of Liquidsoap was very very short… This is not the place for a tutorial, so let’s finish instead with a power user example, which I hope will make you eager to learn more. Just download and run, there’s nothing to edit!

Usage:

  • Download this as test.liq
  • Run it with this command: liquidsoap test.liq and listen!

Optionally you can test the following:

$ telnet localhost 1234

q.push /path/to/file

If you are interested in a very flexible way to design your audio stream, feel free to visit our website, drop us a mail at savonet-users@lists.sourceforge.net or join our IRC channel, #savonet at Freenode. Liquidsoap is available in Debian testing and unstable, it hasn’t been uploaded to Ubuntu yet.

Posted in Debian, Ubuntu | 2 Comments »

apt-listbugs: Lists critical bugs before each apt installation

August 1st, 2007 edited by Tincho

Article submitted by LordRich. We have run out of good articles! Please help DPOTD and submit good articles about software you like!

apt-listbugs is a tool designed to warn the user about critical bugs of packages that are about to be installed or upgraded. Once installed, each time you use aptitude or apt-get it will be run, and if it detects any critical bugs will stop to ask the user what to do.

For using it, usually you don’t need more than installing it. But note that it will run after downloading the packages, so be patient. Here you can see it in action when installing cogito:

# apt-get install cogito
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  git-core libdigest-sha1-perl liberror-perl
Suggested packages:
  git-arch git-cvs git-svn git-email git-daemon-run gitk gitweb
Recommended packages:
  git-doc
The following NEW packages will be installed:
  cogito git-core libdigest-sha1-perl liberror-perl
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/2569kB of archives.
After unpacking 6087kB of additional disk space will be used.
Do you want to continue [Y/n]?
Reading package fields… Done
Reading package status… Done
Retrieving bug reports… Done
Parsing Found/Fixed information… Done
serious bugs of cogito ( -> 0.18.2-3) <pending>
 #427182 - cogito - FTBFS:  FAIL 14: verifying repo2
Summary:
 cogito(1 bug)
Are you sure you want to install/upgrade the above packages? [Y/n/?/...]  ?

It then allows users to find out more about the specific bugs listed. By typing w, a web-browser is launched offering links to the bug tracking system for each bug.
apt-listbugs web page

By answering with a bug number, querybts is run giving details for that particular bug:
apt-listbugs showing a bug report

After finding out exactly why the packages are listed as having critical bugs, the user can then either decide to continue the installation anyway by answering y (the default) or stop immediately by answering n.

apt-listbugs has been available in both Debian and Ubuntu since a long time ago.

Posted in Debian, Ubuntu | 6 Comments »

knetworkmanager: the solution to WiFi-WLan-WEP-WPA1|2 nightmares

July 29th, 2007 edited by Tincho

Article submitted by Ingo Wagener. We have run out of good articles! Please help DPOTD and submit good articles about software you like!

I used to roam around cafés, schools, hotels, etc, logging myself into this network, that network, any network using the command line. Open networks are a breeze, WEP was not too bad but WPA on the command line took a bit of fiddling first time round. I then moved onto scripts depend…

OK, you are bored and couldn’t be asked to read any further —or was it that I was bored and installed knetworkmanager instead?

Now I cruise into a café, open up my notebook and thank whatshisname that I can just click on the little knetworkmanager icon in the system tray to list all available networks. I select the one I am after and its wizard asks me for authorization if it is necessary or just logs me in. Doesn’t matter whether it is WEP, WPA1 or even WPA2! Well, I felt pretty cool :) Of course you can choose to have the codes saved —encrypted, naturally.

Now you might have other programs installed, kwifimanager, the new kwlan or Wireless Assistant to name but a few. Most of them do the job well enough, but none of them have the same click and run capability. kwifimanager for example still does not have WPA compatibility, kwlan’s interface is not nearly as neat and Wireless Assistant (the highest ranking on KDE apps, by the way) asks for some informed decisions and has, similar to kwlan, a number of interfaces you have to work your way through.

If you want to cruise networks the easiest possible way, there is no way round knetwormanager.

Even though it is a KDE programme (and me a KDE addict) it works just as well on Gnome and is available under the standard repositories, regardless whether you are running Debian or (K)Ubuntu.

To date I have yet to come across another network manager as complete and pain free, although the Gnome lot are working on it. If it is half as good as knetworkmanager one should applaud them!

The opensuse project has some nice screenshots of Knetworkmanager running in KDE, Gnome and FVWM.

Posted in Debian, Ubuntu | 10 Comments »

revelation: the gnome password manager

July 25th, 2007 edited by ana

Article submitted by Diego Martínez Castañeda. We have run out of good articles! Please help DPOTD and submit good articles about software you like!

Revelation is a powerful tool which lets you manage and store sensitive information, such as passwords or credit cards numbers, in a password protected file, so you only have to remember one password to access all.

Some of its features are:

  • Password protected file. All your data will be as secure as your master password is.
  • Simplicity: Revelation is easy to use.
  • GNOME. It’s completely integrated with GNOME, and it uses GTK.
  • Search tool. The Search button is very useful when you’re browsing into hundred of keys.

First steps

As you start Revelation, the main window is divided into two vertical panels. The left panel contains a tree hierarchy in which you can create folders or entries, and right panel displays information about entries.

revelation debaday.debian.net

Initially, revelation creates an empty file for you, ready to be populated. You can easily add new entries with your data using the Add Entry button. Depending on the data type you’ve selected, information fields may be different.

revelation debaday.debian.net

Adding information

There are several basic types of data you can store, such as email, ftp or database. Every type has its own configuration and its own fields because Shell requires a hostname and Creditcard don’t.

revelation debaday.debian.net

In this example, I’m going to add my Debian Package of the Day account under my Home folder (see the images below). Be careful when you write down your password because, by default, Revelation will show it while you’re writing.

revelation debaday.debian.net

After you have added your important information, you save it into a password protected file by pressing Save button (or Ctrl+S). Revelation will ask you for this password and, importantly, this will be the only password you’ll need to access the file. Of course, if you don’t remember it, you’ll lose all data stored in the file.

revelation debaday.debian.net

Showing information

One you have populated your Revelation file, you can see your email password by selecting the corresponding entry on the left panel. The information will be shown on the right.

revelation debaday.debian.net

You can also try the Revelation Account Search GNOME panel applet. It is the best and fastest option for accessing your passwords when you’re using lots of entries in a single file.

revelation debaday.debian.net

Alternatives

There are other alternatives in Debian which you can use to manage your passwords, for example, KWallet Manager (integrated with KDE), gpass, pwsafe. I have chosen Revelation because I need to manage lots of passwords, stored in different files and I do not want to use a command line program. Plus, I need folder organization and different entry types to define exactly what type of data I’m referring to. Finally, search option and GNOME applet are very important in case of forgotten password..

The package has been available in Debian since sarge and in Ubuntu since Edgy.

Posted in Debian, Ubuntu | 12 Comments »

ingimp: improving the usability of the GIMP by collecting and analyzing usage data

July 22nd, 2007 edited by ana

Article submitted by Francois Marier. We are running out of articles ! Please help DPOTD and submit good articles about software you like !

ingimp is an instrumented version of the GNU Image Manipulation Program that collects real-time usability data, such as the commands used, the size of images worked on, and so on. This usability data is automatically transmitted to ingimp for anyone to download and analyze.

It is meant to be a snap-in replacement for the GIMP, so it can be used for normal, everyday image manipulation tasks. By using it, the user and developer communities can gain new insights into how the GIMP is actually used “in the wild.” This information, in turn, has the potential to feed into future design and development efforts. Thus, you have the chance of contributing to open usability efforts simply by using ingimp as you would the regular version of the GIMP.

ingimp is part of human-computer interaction (HCI) research at the University of Waterloo investigating new forms of sustainable open usability.

Pretty Pictures

Numerical summarizations of overall ingimp usage are provided, along with personalized mirrors of your own personal, usage. Each ingimp user has an online persona that grows to reflect how they use ingimp. For example, if you are an artist who makes heavy use of the pencil tool, your persona will be seen clutching a pencil. Just use ingimp as you would the normal version of the GIMP and use the “Website + Stats” button at start-up to view your own persona along with a summary of your own usage of ingimp.

Group shot
Snapshot of all current ingimp users.

Privacy

ingimp has been designed to collect data useful to usability analyses, without intentionally collecting any personal information. For example, ingimp does not record the actual keys pressed, just when they are pressed, along with any modifier keys used (i.e., Shift, Alt, and Control). Furthermore, ingimp does not record command parameters (for example, it doesn’t record the text you enter into the text tool) nor does it transmit the actual images on which you work.

Disabling logging
It is possible to disable logging at the start of the program.

ingimp is in Debian unstable and backported packages are available for Debian Etch and Ubuntu Feisty.

More Information

You can find out more about ingimp by visiting its homepage.

Posted in Debian, Ubuntu | 5 Comments »

« Previous Entries Next Entries »