Φτιάξε το δικό σου web radio στο Linux!

dimitris | Τρί, 09/25/2012 - 20:24 | 24' | 7

Οδηγός για εγκατάσταση και χρήση του Internet DJ Console για μίξη μουσικών κομματιών και δημιουργία ενός streaming web radio.

Του Κώστα Σεζένια*

Πολλοί από μας προσπαθήσαμε, κάποια στιγμή στη ζωή μας, είτε να δημιουργήσουμε έναν πειρατικό ραδιοφωνικό σταθμό είτε να κάνουμε μια ραδιοφωνική εκπομπή. Άλλοι γιατί το γουστάραμε και άλλοι για να κάνουμε εντύπωση στην κοπέλα που μας άρεσε αφιερώνοντας της μουσικά κομμάτια που παίζαμε. Ποιος δεν θυμάται το αξεπέραστο «κούλα μ' ακούς; πολύ κωλόπαιδο ο Κυριάκος»... :)

Σε αυτό το άρθρο, θα μάθουμε πως μπορούμε να δημιουργήσουμε έναν διαδικτυακό ραδιοφωνικό σταθμό χρησιμοποιώντας την κονσόλα Internet Dj Console [1] και τον server του Shoutcast [2] μέσα από κάποια απλά βήματα:

    • Βήμα πρώτο: θα εγκαταστήσουμε τα απαραίτητα πακέτα και το Internet DJ Console στον υπολογιστή μας.
    • Βήμα δεύτερο: θα κατεβάσουμε από την κεντρική σελίδα του Shoutcast την τελευταία σταθερή έκδοση του server, ή πηγαίνοντας στην κεντρική σελίδα του listen2myradio και κάνοντας εγγραφή θα διαχειριστούμε τον server.
    • εΒήμα τρίτο: θα κάνουμε τις απαραίτητες ρυθμίσεις στις καρτέλες Preferences, output.
    • Βήμα τέταρτο: τέλος συνδεόμαστε στον server και εκπέμπουμε!

Τι είναι το Internet DJ Console;

Το Internet DJ Console (IDJC) είναι ένα έργο που ξεκίνησε το Μάρτιο του 2005 από τον Stephen Fairchild, με στόχο να αναπτύξει ένα ισχυρό αλλά εύκολο στη χρήση εργαλείο, για χρήστες που ενδιαφέρονται για live streaming ραδιοφωνικών εκπομπών μέσω του Internet χρησιμοποιώντας τον Shoutcast Icecast ή άλλους servers.

Λόγω του μεγάλου αριθμού των εφαρμογών που ήδη υπήρχαν για streaming, αλλά βασίζονταν είτε σε ένα ζευγάρι ακουστικά κανάλια ή σε μια καθορισμένη playlist, αποφασίστηκε ότι το IDJC θα κάνει τη διαφορά, προσομοιάζοντας τον ήχο του υλικού ώστε να περιορίσει το βάρος της δημιουργίας ενός στούντιο στο σπίτι. Εκτός από την παροχή ενός μεγάλου αριθμού επιλογών για την παραγωγή ήχου, το IDJC έχει γραφτεί με στόχο την προσφορά μεγαλύτερης ευχαρίστησης για τους ακροατές αλλά και της καλύτερης δυνατής εμπειρίας για τους DJ και τους ραδιοφωνικούς παραγωγούς. Για την συνεργασία του IDJC με τις υπόλοιπες εφαρμογές ήχου επιλέχθηκε o JACK (Jack Audio Connection Kit) server [3][4].

Οι δυνατότητες που προσφέρει το IDJC για επεξεργασία ήχου μπορεί να θεωρηθούν από κάποιους υπερβολικές. Επιτρέπουν όμως να αξιοποιήσετε την ενοποίηση με ισχυρά προγράμματα, όπως το πασίγνωστο Skype, το Jack Rack (για plugins ήχου, εφέ), το Jamin (ένας ισχυρός συμπιεστής / ισοσταθμιστής), και πολλά άλλα. Πρέπει τέλος να αναφέρουμε ότι ένας από τους στόχους του IDJC είναι πάντα η σταθερότητα και η ποιότητα ήχου.

Εγκατάσταση απαιτούμενων πακέτων

Για τις ανάγκες του παρόντος άρθρου βασιστήκαμε στην διανομή Ubuntu 10.10 (Maverick), αλλά τα πακέτα είναι παραπλήσια και σε άλλες διανομές. 'Όσον αφορά την εγκατάσταση, για να λειτουργήσει σωστά η κονσόλα μας θα πρέπει να εγκαταστήσουμε κάποια πακέτα που βρίσκονται στα αποθετήρια του Ubuntu. Τα πακέτα που χρειάζονται είναι τα εξής:
python-all
python-all-dev
python-mutagen
python-centra
python-gtk2-dev
checkinstall
libvorbis-dev
libxine-dev
libsamplerate0
libsamplerate0-dev
libshout3
libshout3-dev
libsndfile1
libsndfile1-dev
libjack-jackd2-0
libjack-jackd2-0-dev
jackd2
jackd
vorbis-tools
flac
libflac-dev
eyed3
python-eyed3
libmad0
libmad0-dev
lame
libmp3lame0
libmp3lame-dev (multiverse)
libtwolame0
libfaad2
libfaad-dev (multiverse)
libmp4v2-0 ffmpeg

και μπορούμε να τα εγκαταστήσουμε είτε μέσω του Synaptic πηγαίνοντας Σύστημα > Διαχείριση > Synaptic package manager είτε μέσω τερματικού δίνοντας την εντολή:

$ sudo apt-get install python-all python-all-dev #πακέτα

Αφού εγκαταστήσουμε τα απαιτούμενα πακέτα από τα αποθετήρια του Ubuntu, πηγαίνουμε στο Ubuntu Software Center, βρίσκουμε το Internet DJ Console και το εγκαθιστούμε. Κατά την εγκατάσταση, ενδέχεται να μας ζητηθεί να ενεργοποιήσουμε το να τρέχουμε το Jack σε πραγματικό χρόνο (“Enable process realtime priority?”), οπότε απαντάμε Yes.

Πρώτη επαφή με το IDJC

Αφού εγκαταστήσουμε το Internet DJ Console, ήρθε η ώρα να το τρέξουμε. Πριν το κάνουμε αυτό όμως, πρέπει να κάνουμε μερικές ρυθμίσεις για να τρέχει σωστά o Jack server τον οποίο χρειάζεται το Internet DJ Console για να λειτουργήσει. Για να μην δούμε μηνύματα σφάλματος, θα πρέπει να κάνουμε τα εξής βήματα:

1. Προσθέτουμε τον χρήστη μας στο group audio. Αυτό γίνεται με την εντολή:

sudo usermod -a -G audio

2. Επειδή ο Jack server χρειάζεται να λειτουργεί σε πραγματικό χρόνο πρέπει να τροποποιήσουμε τα όρια που υπάρχουν στις προτεραιότητες με τις οποίες τρέχουν οι διεργασίες του συστήματός μας και ιδιαίτερα όσες τρέχουν από την ομάδα audio. Ανοίγουμε λοιπόν το τερματικό και δίνουμε την εντολή:

sudo dpkg-reconfigure -p high jackd

και απαντάμε Yes στην ερώτηση αν θέλουμε να ενεργοποιήσουμε το real time priority για τον Jack. Ουσιαστικά, η παραπάνω εντολή τροποποιεί το αρχείο /etc/security/limits.d/audio.conf στο οποίο προσθέτει τη γραμμή:

@audio - rtprio 99

Το όρισμα rtprio (real time priority I/O) το χρησιμοποιούμε για να ελέγξουμε τις διαδικασίες σε πραγματικό χρόνο.

3. Στη συνέχεια, κάνουμε επανεκκίνηση του υπολογιστή και ξεκινάμε τον Jack με την εντολή:

jackd -d alsa -r 44100 -p 2048

Αν θέλουμε ο Jack server να ξεκινά αυτόματα με τις ρυθμίσεις μας, φτιάχνουμε ένα αρχείο στο προσωπικό φάκελό μας ως εξής:

$ echo "/usr/bin/jackd -d alsa -r 44100" > ~/.jackdrc

Τώρα είμαστε έτοιμοι να τρέξουμε το Internet DJ Console. Το πρώτο που θα δούμε θα είναι ένα παράθυρο διαλόγου που μας ζητάει προφίλ για να το τρέχουμε. Μπορούμε ή να αφήσουμε default profile ή να το αλλάξουμε δημιουργώντας ένα δικό μας profile. Αμέσως μετά θα εμφανιστεί το κεντρικό παράθυρο του IDJC (εικόνα 1).


1 Το κεντρικό παράθυρο του Internet DJ Console

Το κεντρικό παράθυρο του IDJC>

Το κύριο χαρακτηριστικό του IDJC είναι ότι το παράθυρο που βλέπουμε δεν έχει καμία απολύτως διαφορά από μια κονσόλα ενός DJ.

Για αρχή, έχουμε δυο πανομοιότυπους players με 6 κουμπιά, όπως βλέπετε και στο περίγραμμα ένα (εικόνα 2). Προφανώς, πατώντας το πρώτο αριστερά κουμπί θα πάμε ένα τραγούδι πίσω. Το δεύτερο κουμπί από αριστερά (το play) το πατάμε για να παίξει το τραγούδι μας. Το τρίτο κουμπί είναι το pause και το πατάμε σε περίπτωση που θέλουμε να κάνουμε παύση του κομματιού που παίζει. Το τέταρτο κουμπί (stop) το πατάμε σε περίπτωση που θέλουμε να σταματήσουμε το κομμάτι που παίζει. Το πέμπτο κουμπί αν το πατήσουμε μας πάει ένα τραγούδι εμπρός. Το έκτο κουμπί το πατάμε για να φορτώσουμε μια playlist που θέλουμε να παίξουμε.


2 Οι βασικές συνιστώσες του παράθυρου του IDJC.

Κάτω από τους players (στο περίγραμμα δύο της εικόνας 2) βλέπουμε τις playlist τις οποίες φορτώνουμε με μουσικά κομμάτια είτε πατώντας το έκτο κουμπί του player ή με “drag and drop”, δηλαδή από ένα φάκελο τα παίρνουμε και τα πετάμε μέσα. Ακριβώς κάτω από την playlist βλέπουμε τρεις επιλογές: στο Playlist Mode (αριστερά) ρυθμίζουμε την σειρά με την οποία θα παίζονται τα κομμάτια της playlist: ή το ένα μετά το άλλο με τη σειρά που τα έχουμε βάλει ή με τυχαία σειρά ή όταν τελειώσουν τα κομμάτια της συγκεκριμένης playlist να ξαναρχίσει απο την αρχή (loop) ή αν θέλουμε χειροκίνητα. Η μεσαία επιλογή είναι το Fade όπου ρυθμίζουμε, αν θέλουμε, την απομείωση του ήχου στην εναλλαγή κομματιών. Και τέλος, στην τρίτη επιλογή Audio Feed (δεξιά) κλικάρουμε ή το κουμπί Stream στην περίπτωση που έχουμε ένα web radio ή το κουμπί DJ στην περίπτωση που κάνουμε πρόγραμμα σε ένα club ή σε ένα party με φίλους.

Μέχρι εδώ όλα καλά. Όμως υπάρχουν ακόμα δυο μπάρες που κάνουν και τη διαφορά με μια κοινή κονσόλα ενός DJ. Η πρώτη μπάρα φαίνεται στο περίγραμμα τρία (εικόνα 2). Αριστερά υπάρχει το “Monitor Mix” με τις επιλογές DJ και Stream: αν πατήσουμε Stream θα ακούμε οτι ακούν και οι ακροατές στην περίπτωση του web radio, αλλιώς το αφήνουμε στο DJ. Μετά βλέπουμε το Metadata Source με επιλογές που αφορούν από ποια playlist θα παίζουμε μουσική: από αριστερά ή από δεξιά ή και με τις δύο. Έπειτα, το Crossfader μας επιτρέπει να πηγαίνουμε πότε αριστερά και πότε δεξιά ανάλογα με τι μίξεις θέλουμε να κάνουμε: απλώς τραβάμε το δείκτη στην αντίστοιχη κατεύθυνση. Το κουμπί Response το χρησιμοποιούμε στην περίπτωση που έχουμε στήσει το web radio: είναι ο χρόνος που μεσολαβεί μεταξύ του ήχου που στέλνουμε εμείς και του ήχου που λαμβάνει ο ακροατής.

Στο περίγραμμα 4 (εικόνα 2), που είναι και η τελευταία μπάρα, υπάρχουν τρία κουμπιά, το Preferences, το Outpout και το Jingles που θα δούμε παρακάτω, και δίπλα ακόμα δυο κουμπιά με τηλέφωνα (ένα πράσινο και ένα κόκκινο). Θυμάστε που λέγαμε στην αρχή ότι το IDJC μπορεί να συνδεθεί με το Skype; Λοιπόν, στην περίπτωση που χρησιμοποιούμε Skype τότε με το κουμπί που έχει το πράσινο τηλέφωνο μπορούμε να βγάλουμε κάποιον “στον αέρα” όταν κάνουμε εκπομπή χωρίς να σταματήσει η μουσική, ενώ με το κουμπί με το κόκκινο τηλέφωνο μπορούμε να διακόψουμε προσωρινά τον ήχο των μουσικών κομματιών ώστε να ακούγεται μόνο ο συνομιλητής μας. Το κουμπί που βλέπουμε μετά αφορά κυρίως είτε μια εξωτερική κάρτα ήχου που έχουμε συνδέσει στον υπολογιστή μας ή σε μια εξωτερική κονσόλα που έχουμε συνδέσει. Τέλος, το κουμπί που έχει το μικρόφωνο, το πατάμε σε περίπτωση που θέλουμε να μιλήσουμε, να κάνουμε μια αναγγελία ή μια ανακοίνωση.

Ας δούμε τώρα τα τρία κουμπιά που υπάρχουν στην αρχή της μπάρας (Preferences, Outpout και Jingles). Ξεκινάμε με το τρίτο, το Jingles επειδή είναι και το πιο εύκολο.

Τι είναι το Jingles;

Με κλικ στο κουμπί Jingles, εμφανίζεται ένα παράθυρο (εικόνα 3) στο οποίο μπορούμε να προσθέσουμε μια playlist ή κάποιο ηχογραφημένο μήνυμα όπως π.χ. κάποιο διαφημιστικό σποτ το οποίο μπορούμε να παρεμβάλλουμε κατά τη διάρκεια μια εκπομπής που κάνουμε. Κάτω από αυτό το παράθυρο υπάρχουν πέντε κουμπιά: δυο κουμπιά Play (ένα μαύρο και ένα κόκκινο), ένα κουμπί Stop, ένα κουμπί για το μικρόφωνο και τέλος το Refresh. Με το μαύρο Play, σταματάμε τη ροή των κομματιών και ακούγεται μόνο κάποιο διαφημιστικό σποτ που έχουμε στη λίστα του Jingles. Με το κόκκινο Play θα παίξουμε κάποιο ηχητικό που έχουμε βάλει στη λίστα του Jingles αλλά αυτή τη φορά χωρίς να σταματήσει η ροή των κυρίως κομματιών. Τέλος, αν πατήσουμε το κουμπί με το μικρόφωνο, σταματάμε την υπάρχουσα ροή και έχοντας ανοιχτό το μικρόφωνο μιλάμε. Με το κουμπί Stop σταματάμε ότι παίζει στη λίστα του Jingles.


4 Το παράθυρο Preferences όπου κάνουμε τις ρυθμίσεις όλου του IDJC.

Στη δεύτερη καρτέλα (Microphones) βρίσκονται όλες οι ρυθμίσεις που αφορούν το μικρόφωνο μας. Εδώ μπορούμε να κάνουμε ότι αλλαγές θέλουμε πριν βγούμε στον αέρα. Πρέπει να τονίσουμε όμως ότι το πρόγραμμα υποστηρίζει μέχρι τέσσερα μικρόφωνα.

Η τρίτη καρτέλα (XChat) λειτουργεί με την εφαρμογή xchat και το αντίστοιχο plugin του xchat. Μπορούμε δηλαδή να συνδεθούμε σε ένα κανάλι ή να δημιουργήσουμε ένα κανάλι στο IRC όπου θα ανακοινώνονται αυτόματα τα κομμάτια που παίζονται στο web radio μας και θα μπορούμε να ανακοινώσουμε κάτι σχετικά με το σταθμό ή την εκπομπή που κάνουμε.

Στην τέταρτη καρτέλα (Jack Ports) εμφανίζονται οι ρυθμίσεις που κάναμε στην αρχή στο Jack Audio Connection Kit. Απλά έχουμε και εδώ τη δυνατότητα να αλλάξουμε κάποιες ρυθμίσεις ή και να βάλουμε επιπρόσθετα κάποιες άλλες χωρίς να χρειαστεί να ξανατρέξουμε το Jack αφού οι ρυθμίσεις που θα κάνουμε στο IDJC θα εφαρμοστούν αυτόματα στο Jack.

Στην πέμπτη καρτέλα (Event) φαίνονται τα events δηλαδή όταν φορτώσουμε μια playlist και αρχίσει να παίζει το IDJC ή ανοίξουμε το μικρόφωνο και μιλάμε, και το αντίθετο όταν κλείσουμε δηλαδή το μικρόφωνο. Στην έκτη και τελευταία καρτέλα βλέπουμε απλώς ποιοι δημιούργησαν το IDJC αλλά και την άδεια χρήσης που είναι η GPLv2.

Το παράθυρο Output

Το τελευταίο παράθυρο που μπορούμε να ανοίξουμε από το IDJC είναι το Οutput (εικόνα 5). Στο παράθυρο αυτό κάνουμε τις απαραίτητες ρυθμίσεις για να συνδεθούμε με τον radio server (Icecast2 ή Shoutcast) ώστε να μπορέσουμε να εκπέμψουμε στο διαδίκτυο. Επίσης βλέπουμε ότι το IDJC υποστηρίζει έξι κανάλια ροής. Εμείς θα επιλέξουμε ένα, αφού δεν μας χρειάζονται παραπάνω. Βέβαια αν η κάρτα ήχου σας υποστηρίζει παραπάνω κανάλια μπορείτε να βάλετε όσα υποστηρίζει. Έτσι λοιπόν στο Server Details & Stream Format πάμε να κάνουμε τις απαραίτητες ρυθμίσεις.

 

6 Το κέντρο ελέγχου του listen2myradio

Στο παράθυρο ελέγχου, μπορούμε να κάνουμε ότι αλλαγές θέλουμε στα πίνακα ρυθμίσεων που μας δίνει και να ξεκινήσουμε το streaming. Για αρχή, στην πρώτη γραμμή ρυθμίσεων (Stream) βλέπουμε το σύνδεσμο Stream Installation. Στο πεδίο αυτό βάζουμε τον κωδικό μας ως admin και ως εκφωνητής, το όνομα του σταθμού μας και την διεύθυνση στην οποία θα μας βρίσκουν οι ακροατές μας. Το επόμενο πεδίο είναι το Stream Details απ' όπου θα πάρουμε πληροφορίες τις οποίες θα χρησιμοποιήσουμε παρακάτω. Από τον επόμενο σύνδεσμο “Turn On/Off”” μπορούμε να σηκώσουμε το server ή να τον κατεβάσουμε και στο τελευταίο σύνδεσμο έχουμε τη δυνατότητα να αλλάξουμε server (η υπηρεσία δίνει servers στις ΗΠΑ, τη Γερμανία και την Αγγλία). Οι επόμενες γραμμές ρυθμίσεων αφορούν κυρίως τη διαμόρφωση της ιστοσελίδας μας – μπορούμε να αλλάξουμε logo, να προσθέσουμε κείμενο, να έχουμε blog, γκαλερί με εικόνες, κοκ. Στην γραμμή Addons που βρίσκεται στο τέλος του πίνακα, υπάρχει ο σύνδεσμος “Stream Always ON” που δουλεύει όμως μόνο αν πληρώσουμε ένα ποσό που μας ζητείται.

Φυσικά, για να δουλέψει το IDJC με το listen2myradio, θα πρέπει να του κάνουμε κάποιες ρυθμίσεις πριν εκπέμψουμε. Ανοίγουμε ξανά το παράθυρο του Output και στο Server Details & Stream Format πάμε να κάνουμε τις απαραίτητες ρυθμίσεις. Στο πτυσσόμενο μενού Type θα επιλέξουμε Shoutcast Master και από κάτω ακριβώς στο πεδίο Host θα γράψουμε την διεύθυνση IP την οποία παίρνουμε από το listen2myradio με κλικ στο πεδίο Stream Details στο παράθυρο ελέγχου. Το ίδιο κάνουμε και για το πεδίο Port – εισάγουμε την πόρτα που μας δίνει το listen2myradio ώστε οι ακροατές μας να επικοινωνήσουν με τον server του listen2myradio. Τέλος, πάμε στον router μας και ακολουθούμε την διαδικασία “port forwarding” όπως και παραπάνω. Kαι εδώ φυσικά χρησιμοποιούμε το πρωτόκολλο UDP αφού χρησιμοποιούμε steaming εφαρμογές. Τέλος έμεινε το πεδίο Pass όπου βάζουμε τον κωδικό τον οποίο βάλαμε στο πεδίο Stream Installation του listen2myradio. Οι υπόλοιπες ρυθμίσεις δεν αλλάζουν οπότε το μόνο που μένει είναι να κάνουμε Add. Αφού αισίως φτάσαμε σε αυτό το σημείο πατάμε Connect και πάλι θα ανάψει το πράσινο εικονίδιο-κυκλάκι δίπλα στον αριθμό του καναλιού ροής στο οποίο κάναμε τις ρυθμίσεις. Για να μας ακούσουν οι ακροατές τους δίνουμε την διεύθυνση την οποία βρίσκουμε κλικάροντας στο πεδίο All Stream Links. Αυτό είναι όλο. Άντε και καλές εκπομπές σε όλους.

Διευθύνσεις
[1] http://idjc.sourceforge.net/
[2] http://www.shoutcast.com
[3] http://jackaudio.org/
[4] http://en.wikipedia.org/wiki/JACK_Audio_Connection_Kit
[5] http://www.listen2myradio.com
[6] http://forum.listen2myradio.com/

 

*Ο Κώστας είναι ηλεκτρολόγος μηχανικός και μεταπτυχιακός φοιτητής του Παν. Αιγαίου

Δώσε αστέρια!

MO: 2.5 (ψήφοι: 2)

Σχόλια

Είχα φτιάξει με οδηγό το άρθρο έναν οικιακό ραδιοφωνικό σταθμό για πειραματισμό. Πραγματικά είχε την πλάκα της η όλη φάση. 

Πολλά μπράβο και από μένα !!! Πάντα ήθελα να γράψω αυτό τον οδηγό και πάντα δεν έβρισκα το χρόνο ...

συγχαρητήρια κι απο εμενα, πολύ καλός, αναλυτικός και ευχρηστος οδηγός, ευχαριστούμε :)

Μπράβο για την καλή δουλειά!!!!
Κόλησα..... Ισως δεν το έπιασα από την καλή. Είμαι σε Mint 13 KDE. Έκανα εγγραφή στο listen2myradio. Εγκατέστησα με synaptic το IDJC. Ανοίγω το IDJC και δεν βρίσκω πουθενά τις επιλογές που ανέφερες. Μήπως έπρεπε να κατεβάσω και τον Southcast server? Αν κατάλαβα καλά δεν χρειάζεται με το listen2myradio, ή μήπως χρειάζεται?  Πως γίνεται η σύνδεση του IDJC με listen2myradio? Ευχαριστώ!!!!!!!!

Για να μην ανοιγω νεο νημα,εχω μερικες αποριες.
1)Μπορεις να κανεις αναπαραγωγη του http://ccradio.ellak.gr/ ,εννοω αν χρειαζεται εγγραφη αδεια για τους γνωστους ελεγκτες καρεκλοκενταυρους ;Το αναφερει : "Το ψηφιακό μουσικό ραδιόφωνο ccradio.ellak.gr είναι μια υπηρεσία που απευθύνεται κυρίως σε όσους θέλουν να αναπαράγουν δημόσια στους χώρους τους μουσική που διανέμεται ελεύθερα με άδειες Creative Commons και δεν δημιουργεί απαιτήσεις από φορείς συλλογικής διαχείρισης."

2)Χρειαζεται υποχρεωτικα αδεια απο ΑΕΠΙ ,για να μην σου ερθει ΤΟ ΠΡΟΣΤΙΜΟ;Ακομα και για την παραπανω περιπτωση;

το προσπαθησα μεσο του τερματικου και μου βγαζει αυτο
N: Ignoring file 'getdeb.list.bck' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension