Coder Social home page Coder Social logo

muse's Introduction


      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.

muse's People

Contributors

aradici avatar filippog avatar jaromil avatar katolaz avatar mancausoft avatar shammash avatar xant avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

muse's Issues

Muse 0.9.2 on Centos7

ho installato MuSE-0.9.2 su una distribuzione CentOS-7 , più precisamente ho creato su VMware® Player 7.1.0 il sistema operativo virtuale

    CentOS7-64bit 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

ospitato su sistema Windows 8.1 Pro, 64-bit (Build 9600) 6.3.9600

Le caratteristiche di configurazione di Muse sono :

== MuSE build configuration =====================================
:: Building on x86_64-unknown-linux-gnu (kernel Linux3100)
:: Linking OggVorbis libraries for OGG encoding
:: Linking SndFile libraries for WAV/AIFF/VOC/etc encoding
:: Linking Lame libraries for MP3 encoding
:: DEBUG informations OFF
:: PROFILING informations OFF (see man gprof)
:: Compiler flags = -pipe -D_REENTRANT -02 -mmmx -fomit-frame-pointer -ffast-math
====================================================

Il binario si è installato correttamente con a disposizione le seguenti librerie :

ldd muse

    linux-vdso.so.1 =>  (0x00007ffd571fb000C
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fcd283db000)
    libmp3lame.so.0 => /lib64/libmp3lame.so.0 (0x00007fcd2814c000)
    libogg.so.0 => /lib64/libogg.so.0 (0x00007fcd27f44000)
    libvorbis.so.0 => /lib64/libvorbis.so.0 (0x00007fcd27d16000)
    libvorbisfile.so.3 => /lib64/libvorbisfile.so.3 (0x00007fcd27b0d000)
    libvorbisenc.so.2 => /lib64/libvorbisenc.so.2 (0x00007fcd2763d000)
    libsndfile.so.1 => /lib64/libsndfile.so.1 (0x00007fcd273de000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fcd270d6000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fcd26dd3000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fcd26bbd000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fcd267fb000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fcd285ff000)
    libgsm.so.1 => /lib64/libgsm.so.1 (0x00007fcd265ee000)
    libFLAC.so.8 => /lib64/libFLAC.so.8 (0x00007fcd263a9000)

Ho eseguito il seguente comando per avviare una trasmissione in Streaming diretto su un Server Icecast 2.4.3 installato sulla macchina Host Windows

/usr/local/muse/bin/muse -o --debug 3 -C -N1 Aida-RinoGaetano.mp3 -V0.5 -e ogg -s 10.21.103.76 -m Aida-Stream.ogg -f Aida-DumpStream.ogg

[ ] MuSE version 0.9.2 http://muse.dyne.org
. by Denis "jaromil" Rojo http://rastasoft.org
. --
[!] error opening output sound device: Host error.
[!] No such file or directory
[F] Channel::Channel()
[F] Channel::thread_init()
[F] Pipe::Pipe(18432)
[F] waiting for channel 1 thread to start
[F] InChanThread! here i am
[
] CLI: created channel 1
. CLI: queue Aida-RinoGaetano.mp3 on channel 1
[F] add to playlist Aida-RinoGaetano.mp3
[F] it's a local file
. CLI: volume set to 0.50
[F] OutChannel::OutChannel(vorbis) 0x7f44587f1010
[F] OutChannel::thread_init()
[F] Pipe::Pipe(131072)
[F] OutVorbis::OutVorbis() 0x7f44587f1010
[F] OutVorbis::init() 0x7f44587f1010
[F] OutVorbis::apply_profile() q4.0000 r22050 b24 c1
[F] ogg resampler Fastest Sinc Interpolator initialized
[F] resample ratio for freq 22050 is 0.2500
[] Ogg/Vorbis encoder initialized
[
] CLI: created Ogg encoder
[F] Shouter::apply_profile() on shouter id 1001
[F] Shouter audio info: 24000Kbp/s 22050Hz 1 channels
[F] outchannel id 1000 creates new shouter 0x16ead30 with id 1001
[F] created icecast shouter ID 1001
[] CLI: created streamer to 10.21.103.76 8000
. CLI: stream mountpoint Aida-Stream.ogg
[
] Ogg/Vorbis encoder channel dumping to file Aida-DumpStream.ogg
. CLI: file saving to Aida-DumpStream.ogg
[] using commandline interface (non interactive)
[F] OutVorbis::apply_profile() q4.0000 r22050 b24 c1
[F] ogg resampler Fastest Sinc Interpolator initialized
[F] resample ratio for freq 22050 is 0.2500
[
] Ogg/Vorbis encoder quality 24Kbps/s 22050Hz mono
[F] Shouter::apply_profile() on shouter id 1001
[F] Shouter audio info: 24Kbp/s 22050Hz 1 channels
[F] icecast still connected: disconnecting
[] Contacting icecast2 server 10.21.103.76 on port 8000
[F] Shouter::start() shout_open returns 0
[
] started streaming on http://10.21.103.76:8000/Aida-Stream.ogg
[W] Channel::play() : no song loaded
[F] creating Mp3 decoder
[F] MuseDecMp3::load(Aida-RinoGaetano.mp3)
[] loaded Aida-RinoGaetano.mp3
[
] Mp3 file 44100Hz mono 128Kb/s
[W] JMIX::clip_audio(1152) : k = (1.000000,0)
[F] OutChannel::dump() encoded 3408
[F] 4096 frames resampled in 1005 with ratio 0.2500 (num:4096 OUT_CHUNK:4096)
[F] 4096 frames resampled in 1024 with ratio 0.2500 (num:4096 OUT_CHUNK:4096)
[F] 4096 frames resampled in 1024 with ratio 0.2500 (num:4096 OUT_CHUNK:4096)

In allegato ho inserito i tre file:

  • Aida-RinoGaetano.mp3 : File sorgente per la trasmissione in streaming audio
  • Aida-DumpStream.ogg : Dump della trasmissione in streaming audio su Icecast
  • Aida-DumpAfterClip.wav : Dump del buffer audio subito dopo la chiamata alla funzione clip_audio(MIX_CHUNK) in Stream_mixer::cafudda()

Il suono in Aida-DumpAfterClip.wav e Aida-DumpStream.ogg è frastornato, come se qualcosa nel sincronismo tra decodifica e lettura e scrittura nella pipe non vada a buon fine

TestStreamingMuse.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.