Λίγα λόγια για το Open Sound Control (OSC)

ΤΙ ΕΙΝΑΙ
Με απλά λόγια, το Open Sound Control είναι ένα πρωτόκολλο, ένας τρόπος μεταφοράς πληροφορίας μεταξύ έξυπνων συσκευών (computers, game controllers, smartphones κλπ) και ηλεκτρονικών υπολογιστών. Για τη μετάδοση της πληροφορίας χρησιμοποιεί την ήδη καθιερωμένη τεχνολογία τοπικών δικτύων (όπως ένα σπιτικό δίκτυο μέσω ενός router). Θα μπορούσα να πω πιο συνοπτικά ότι το Open Sound Control είναι ένα πρωτόκολλο για την αποστολή μηνυμάτων ελέγχου μέσω δικτύων.

ΓΙΑ ΤΗΝ ΙΣΤΟΡΙΑ
Το Open Sound Control αναπτύχθηκε από τους ακαδημαϊκούς Adrian Freed και Matt Wright (σε συνεργασία με τον David Wessel) στο CNMAT του Berkeley το 1996, σάν πιθανό υποκατάστατο ή συμπλήρωμα στο ήδη υπάρχον MIDI. Σταδιακά πήρε αξιοσημείωτη θέση στην αγορά σε gaming αλλά και σε άλλες εφαρμογές ελέγχου. Το ενδιαφέρον για εμάς βέβαια είναι οι εφαρμογές που σχετίζονται με μουσική και ειδικά με τη διαδικασία του live performance control (γιατί αυτή ήταν η πρόθεση των εμπνευστών του OSC).

ΛΕΙΤΟΥΡΓΙΑ
Σημαντικό είναι να καταλάβουμε ότι το Open Sound Control δεν είναι μια ψηφιακή γλώσσα, δεν έχει εντολές, ούτε μηνύματα με συγκεκριμένη λειτουργία (όπως είναι το MIDI). Απλά, δίνει μια ταυτότητα στην πληροφορία και μεταφέρει την αριθμητική τιμή της χρησιμοποιώντας τη σύνταξη του UDP (User Datagram Protocol) το οποίο χρησιμοποιείται για την επικοινωνία στα τοπικά δίκτυα (local networks). Αφήνεται στην επιλογή του χρήστη να αποφασίσει (γι αυτό και λέγεται open) πώς θα διαχειριστεί τις πληροφορίες που μεταφέρονται από τους controllers και το πώς θα τις ερμηνεύσει ο αποδέκτης (μάλλον κάποιο synthesizer συμβατό με OSC).

ΠΑΡΑΔΕΙΓΜΑ
Για να γίνει πιο αντιληπτό το πως λειτουργεί η επικοινωνία μέσω OSC θα δώσω ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε να συνδέσουμε ένα keyboard controller και ένα synthesizer (είτε είναι σε μορφή software είτε σε hardware).
Πρώτα θα πρέπει να μπορούν να συνδεθούν σε ένα δίκτυο, Wi-Fi, Ethernet, Blue Tooth… (όπως γίνεται με το smartphone ή το laptop σας).
Να ορίσουμε μια IP address μέσω της οποίας θα επικοινωνήσουν οι συσκευές, κάτι σαν 192.128.1.4. Αυτός ο αριθμός είναι η ταυτότητα της συσκευής για να συνδεθεί επώνυμα στο δίκτυο και γίνεται αυτόματα από τον router στην περίπτωση που χρησιμοποιούμε τοπικό δίκτυο, όπως αυτό του σπιτιού ή του γραφείου.
Να ορίσουμε ένα port για είσοδο και ένα port για έξοδο της πληροφορίας (για τις περιπτώσεις που υπάρχουν περισσότεροι του ενός αποστολείς και αποδέκτες) ώστε η επικοινωνία να γίνεται διακριτά, να φαίνεται από πού, από ποια συσκευή προέρχεται η πληροφορία.
Αν για παράδειγμα, υπάρχουν δύο controllers που στέλνουν ταυτόχρονα πληροφορία στο ίδιο synthesizer, τότε πρέπει και οι δύο controllers να στέλνουν στην ίδια IP address (πχ 192.128.1.4) η οποία θα είναι η IP address στην οποία θα δέχεται το synthesizer.
Οι controlles θα πρέπει να στέλνουν σε διαφορετικά ports (πχ 8000 και 8001) έτσι ώστε το synthesizer δέκτης να μπορεί να ξεχωρίζει τις πληροφορίες που παίρνει ανάλογα με την προέλευσή τους.
Επειδή όμως δεν έχουμε ένα τυποποιημένο κώδικα επικοινωνίας (όπως στην περίπτωση του MIDI) πρέπει ο κατασκευαστής ή ο προγραμματιστής να δώσει ένα αναγνωριστικό όνομα στην κάθε μεταβλητή παράμετρο. Δηλαδή η πληροφορία που παράγεται από το πάτημα ενός πλήκτρου και αντιστοιχεί στη νότα C3 στο keyboard1 θα μπορούσε να έχει τη μορφή / kbrd1 / note 0,54321.
Όπως βλέπουμε οι τιμές που μεταφέρει το OSC κυμαίνονται μεταξύ 0.0 και 1.0 με όλες τις ενδιάμεσες δεκαδικές τιμές σε αντίθεση με το MIDI όπου έχουμε μόνο 128 ακέραιες τιμές για κάθε μεταβλητή (σε ειδικές περιπτώσεις μέχρι 16384).
Για να γίνει αντιληπτή από τον αποδέκτη synthesizer, η πληροφορία θα πρέπει και πάλι, ο κατασκευαστής ή ο προγραμματιστής να έχουν δώσει στον δέκτη τα απαραίτητα για να αντιληφθεί πώς θα διαχειριστεί την τιμή που παίρνει. Θα πρέπει δηλαδή το synthesizer δέκτης, να γνωρίζει ότι το (αυθαίρετα δοσμένο) όνομα kbrd1 αντιστοιχεί στο πρώτο Keyboard και ότι η μεταβλητή note περιγράφει ότι ο προορισμός της φερόμενης τιμής 0,54321 είναι να αποδοθεί η νότα C3 (midi note number 60 ή συχνότητα 131Hz).

Οι λιγότερο εξειδικευμένοι από εσάς ίσως να έχουν αρχίσει να μπερδεύονται με όλα αυτά. Αλλά αυτή η πολυπλοκότητα είναι και το τίμημα του open, δηλαδή του γεγονότος ότι έχουμε να κάνουμε με ένα ανοιχτό πρωτόκολλο, ανοιχτό σε οποιαδήποτε διαμόρφωση για να ταιριάξει στις ιδιαίτερες προσωπικές προτιμήσεις του χρήστη ή του προγραμματιστή δεν υπάρχουν εξειδικευμένα μηνύματα ή εντολές (πχ note on kai note off, pitch bender, κλπ όπως συμβαίνει στην περίπτωση του MIDI).
Στην περίπτωση του πιο πάνω παραδείγματος, θα πρέπει ο κατασκευαστής του keyboard controller να πληροφορήσει τον χρήστη για τη OSC μορφή των πληροφοριών που στέλνει το όργανο, ή να του δώσει τη δυνατότητα να τις ορίσει μόνος του. Το ίδιο και ο κατασκευαστής του δέκτη πρέπει να ορίσει τη μορφή των μηνυμάτων που δέχεται ο δέκτης synthesizer ή να δώσει στο χρήστη τη δυνατότητα να τις ορίσει μόνος του.

ΣΥΝΟΠΤΙΚΑ
Κλείνοντας αυτή την αναφορά θα ήθελα να επισημάνω συνοπτικά τα παρακάτω δύο κύρια σημεία που πρέπει να έχουμε υπ όψιν μας.
1) Το OSC είναι ένα πρωτόκολλο για τη δικτύωση έξυπνων ηλεκτρονικών όπως χειριστήρια παιχνιδομηχανών, μηχανήματα ήχου, υπολογιστές και άλλες συσκευές πολυμέσων, και έχει σαν στόχο τον έλεγχο και το performance.
2) Το OSC δεν είναι μια ψηφιακή γλώσσα, δεν έχει εντολές, ούτε μηνύματα με συγκεκριμένη λειτουργία (όπως είναι το MIDI).

Κυριότερα θετικά σημεία του OSC
Διασύνδεση: οι ήδη υπάρχουσες τεχνολογίες δικτύων δίνουν πολλές δυνατότητες διασύνδεσης με εφαρμογές και εργαλεία από διαφορετικά πεδία.
Ακρίβεια: το εύρος των δεκαδικών τιμών που κυμαίνεται από 0.000000 έως 1.000000 είναι τεράστιο.
Ευελιξία: στην οργάνωση και διαχείριση της πληροφορίας επειδή δεν υπάρχουν εντολές και τυποποιημένα μηνύματα και ο χρήστης μπορεί να δομήσει ένα περιβάλλον για τις ιδιαίτερες δικές του ανάγκες.

ΕΦΑΡΜΟΓΕΣ: Το OSC εφαρμόζεται όλο και περισσότερο σε τομείς όπως η μουσική, η ρομποτική, η real time επεξεργασία εικόνας και video και γενικότερα σε τεχνολογίες performance, χειριστήρια παιχνιδομηχανών και διαδραστικές εφαρμογές δικτύων, synthesizers αλλά και περιβάλλοντα προγραμματισμού . Το 2007, προτάθηκε ένα τυποποιημένο namespace (χρήση τυποποιημένων ονομάτων) που ονομάζεται SYN, για καλύτερη συμβατότητα στην επικοινωνία μεταξύ των διαφορετικών χειριστηρίων και εφαρμογών.
Παρακάτω θα παραθέσω ενδεικτικά μια λίστα με κάποιες OSC συμβατές εφαρμογές και hardware.

Software που εφαρμόζεται OSC: Ardour, ChucK, CSound, Digital Performer, IanniX, Isadora, Kyma, Logic Pro, Max/MSP, Modul8, MuseScore, Nuendo, OpenFrameworks, OSCulator, Processing, Pure Data, Quartz Composer, Reaktor, Reaper, Renoise, Resolume Arena, SuperCollider, TouchDesigner, TouchOSC, Traktor DJ Studio.

Hardware που εφαρμόζεται OSC: AlphaSphere, Arduino, Audiocubes, Haken continuum, Kyma, Kinect X-box, Lemur Input Device, MIDIbox, Milkymist, Monome, Wii-Nintendo, Seaboard controller.
Η λίστα όλο και μεγαλώνει.

Αν βρήκατε ενδιαφέρον αυτό το θέμα, μπορείτε να το μοιραστείτε με τους φίλους σας.

 

Για πιο εξειδικευμένες τεχνικές πληροφορίες σχετικά με το OSC μπορείτε να δείτε και στα:
https://en.wikipedia.org/wiki/Open_Sound_Control
http://opensoundcontrol.org/introduction-osc
http://www.linuxjournal.com/content/introduction-osc


Electronic Music Technology, music, electronic music, computer music, music software, music education, music production, composer, audio, MIDI, controller, sound design, sound synthesis, sountrack, software, hardware, digital, synthesizer, sequencer, sampler, music theory, μουσική, ηλεκτρονική μουσική, σύγχρονη μουσική, μουσική με υπολογιστή, λογισμικό μουσικής, μουσική εκπαίδευση, μουσική διδασκαλία, μουσική παραγωγή, DJ ,μουσική θεωρία, αρμονία, αντίστιξη, σύνθεση, συνθέτης, ψηφιακή μουσική, συνθεσάϊζερ, κοντρόλερ, σάμπλερ, σικουένσερ,live performance

Share on facebook
Facebook
Share on twitter
Twitter
Share on pinterest
Pinterest

ΙΣΩΣ ΣΑΣ ΕΝΔΙΑΦΕΡΟΥΝ...