Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jaromil/muse

Multiple Streaming Engine
https://github.com/jaromil/muse

Last synced: 27 days ago
JSON representation

Multiple Streaming Engine

Awesome Lists containing this project

README

        

dyne.org autoproduzioni & the FreakNet Medialab

proudly present:

__ __ ____ _____ ___ ___ _
| \/ |_ _/ ___|| ____| / _ \ / _ \ / |
| |\/| | | | \___ \| _| | | | | (_) || |
| | | | |_| |___) | |___ | |_| |\__, || |
|_| |_|\__,_|____/|_____| \___(_) /_(_)_|
codename STREAMTIME

this is RASTA SOFTWARE, Jah Rastafari Livity bless your freedom!

:: the Multiple Streaming Engine ::
http://muse.dyne.org

This application is being developed in the hope to provide the Free
Software community a user friendly tool for network audio streaming,
making life easier for independent free speech radios wanting to
stream via http on icecast servers.

MuSE is an application for mixing, encoding, and network streaming of
sound: it can transmit an audio signal by mixing together sound taken
from files or also network, recursively remixing more MuSE streams.

MuSE can simultaneously mix up to 6 encoded audio bitstreams (from
files or network, ogg, mp3, wav and other common sound formats), plus
an input signal from microphone.

MuSE offers an intuitive interface to be operated in realtime, while
it can also run slick from the Unix commandline.

***** Supported servers:

You can use MuSE to stream both MP3 or Ogg/Vorbis sound format to a
broadcast server, which means that for doing an online radio you still
need to setup yours, or find one that let you stream.

Such servers can be seen like antennas which amplify your signal and
redistribute it to listeners. There are free software implementations
of such technology! The ones supported by MuSE are:

- Icecast2 - http://icecast.org - can stream OGG & MP3
- Litestream - http://litestream.org - can stream MP3
- Darwin - http://developer.apple.com/darwin/projects/streaming
- Shoutcast - http://shoutcast.com - non free, runs on win32
- Freedomnet/Proton - ftp://ftp.dyne.org/freedomnet/proton - P2P

***** Supported players:

MuSE streams via http, it doesn't uses multicast technology, nor
RTP/RTSP, to have the widest possible range of compatible players.
You can listen audio produced by MuSE from almost every personal
computer and operating system, using one or more of the following:

- xmms - http://www.xmms.org - for GNU/Linux, *BSD, Sun, etc.
- mpg123 - http://www.mpg123.de - for various UNIX systems
- itunes - http://www.apple.com/itunes - on MacOSX
- zinf - http://www.zinf.org - on GNU/Linux and Win32
- winamp - http://www.winamp.com - on all Win platforms
- MuSE itself! ;)

and even more players: something should be also already available for
handheld devices and embedded systems as well.

***** Internals:

MuSE is written in C++ and is a multithreaded application. It reads
streams using the included libmpeg library (mp3 format) and it can
optionally link the OggVorbis library to read ogg files. For encoding
the sound into mp3 or ogg it can link either or both LAME and
OggVorbis as shared libraries. MuSE also features a user interface
using the GTK+ widget library and a console interface using ncurses.

Resampling of any input is done with bicubic interpolation to 44khz
stereo format, then channels get mixed together and encoded to the
desired quality by the selected codec.

Separate threads are running for each decoder, the mixer and the
encoders, while the flow is synced thru FIFO pipes which implement
mutex locking and avoid well race conditions.

All the functionalities of MuSE are quite well exposed thru a reusable
API, which in fact was the one used to build the GUIs on top.
Documentation for it is available on http://muse.dyne.org/codedoc

If you are interested, you are very welcome to build new MuSE
interfaces, there are still a lot of unexplored possibilities and this
engine can be a reliable backend for radio automation interfaces and
more. Get in touch with developers! join the mailinglist on
http://lists.dyne.org/muse or peek into irc.freenode.net channel #dyne

***** Libraries:

- LAME (optional)
Lame can be installed but is no more needed, in particular
libmp3lame and the header lame.h must be properly installed.

- OGG VORBIS (optional)
You can compile and install libogg and libvorbis on your machine
before compiling MuSE; the configure script will recognize them and
include support for decoding and mixing of .ogg files.

- GTK+ (optional) + libxml and glib
if libgtk and all the related libraries are present, MuSE will
compile the GTK+ graphic user interface for interactive use and
additional fun.

- NCURSES (optional)
if libncurses is present, MuSE will compile a text console
interactive interface to be used into ASCII terminals.

- SNDFILE (optional)
if libsndfile is present then you'll be able to play uncompressed
sound files like wav, aiff, snd, voc, pvf, mat, au, sf etc.

***** Compile and install:

- you can get latest version of lame: (if you already have lame and
libmp3lame jump to point 2, after checking that version is >3.89)
with 'lame --version'
or download it from www.mp3dev.org/mp3 and follow the simple
instructions to get installed this wonderful GPL mp3 encoder.

- install libogg and libvorbis:
http://www.xiph.org/ogg/vorbis/index.html

If you don't install any of the above, MuSE will be a simple player.

- compile: cd MuSE-x.x.x ; ./configure (or try ./configure --help to
have listed some compile options) ; make ; make install
if you wish to install smaller binaries without debugging information type
make install-strip instead of make install

*** for Debian users is much simpler:
make a debian package and debian aided compilation from this source
with a simple command:
$ fakeroot debian/rules binary
this command will build debian packages for you, ready to install!

To KNOW MORE go to the website on http://muse.dyne.org

***** Report bugs

BUG REPORTING is REALLY APPRECIATED! BUT TAKE CARE TO DO IT WELL:
please ALWAYS REPORT the muse --version you are running and possibly
run the binary with gdb giving us the backtrace of the error.

if you understand the above, please go to http://bugs.dyne.org and
submit a BUG!!!

===== AUTHORS

MuSE is copyleft (c) 2000-2004 by Denis "jaromil" Rojo

MuSE's GTK+ GUI is copyleft (c) 2001-2004 by Antonino "nightolo" Radici

MuSE's NCURSES GUI is copyleft (c) 2002-2004 by Luca "rubik" Profico

MuSE's first GUI is copyleft (c) 2000-2001 by August Black

Included resampling algos are copyleft (c) 2002 by Matteo "MoP" Nastasi

Part of the redistributed code is copyright by the respective authors,
please refer to the AUTHORS file and to the supplied sourcecode for
further information and to COPYING for the full license.

The following organizations gave great help and support to developers:
PUBLIC VOICE Lab ........ [ http://www.pvl.at ]
SERVUS.AT ............... [ http://www.servus.at ]

***** PLEASE SUPPORT US!

This whole software was built by autonomous efforts and occasionally
supported by non-profit organizations, while the development currently
relies on the political believing of MuSE's authors, that there should
be such a tool and it should be freely available to people willing to
do online radio.

If you can afford to donate us some money let us know, we also need
new and old working hardware.

The main coder is a nomad and has no fixed job, you can help him
survive with a small donation also via paypal.com [email protected]
or by sometimes visiting the google ads on his software pages...
(see how's hard to put a dime in the hat from far!)

The MuSE development team is also available to run formation courses
about usage, customization and reuse/abuse of free and open source
software - it offers as well support and warranty, development of
software solutions and consulting.

There were a number of workshops already done around Europe on free
and opensource network radio streaming by the hackers @ dyne.org
if you want to organize one you're very welcome to contact us!
this way you can also help us develop more free software.

THANKS, a thousand flowers will blossom!

== DISCLAIMER

This source code is free software; you can redistribute it and/or
modify it under the terms of the GNU Public License as published
by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.

This source code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Please refer to the GNU Public License for more details.

You should have received a copy of the GNU Public License along with
this source code; if not, write to:
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.