ΕΛΕΓΧΟΣ ΜΟΥΣΙΚΩΝ ΠΑΡΑΜΕΤΡΩΝ ΜΕΣΩ VIDEO. Η Διπλωματική Εργασία παρουσιάστηκε ενώπιον του Διδακτικού Προσωπικού του Πανεπιστημίου Αιγαίου

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΕΛΕΓΧΟΣ ΜΟΥΣΙΚΩΝ ΠΑΡΑΜΕΤΡΩΝ ΜΕΣΩ VIDEO. Η Διπλωματική Εργασία παρουσιάστηκε ενώπιον του Διδακτικού Προσωπικού του Πανεπιστημίου Αιγαίου"


1 ΕΛΕΓΧΟΣ ΜΟΥΣΙΚΩΝ ΠΑΡΑΜΕΤΡΩΝ ΜΕΣΩ VIDEO Η Διπλωματική Εργασία παρουσιάστηκε ενώπιον του Διδακτικού Προσωπικού του Πανεπιστημίου Αιγαίου Σε Μερική Εκπλήρωση των Απαιτήσεων για το Δίπλωμα του Μηχανικού Πληροφοριακών και Επικοινωνιακών Συστημάτων των ΚΑΠΡΟΥ ΕΥΑΓΓΕΛΟΥ και ΡΑΠΤΗ ΚΩΝΣΤΑΝΤΙΝΟΥ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2007 σελίδα

2 Η ΤΡΙΜΕΛΗΣ ΕΠΙΤΡΟΠΗ ΔΙΔΑΣΚΟΝΤΩΝ ΕΠΙΚΥΡΩΝΕΙ ΤΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΩΝ ΚΑΠΡΟΥ ΕΥΑΓΓΕΛΟΥ και ΡΑΠΤΗ ΚΩΝΣΤΑΝΤΙΝΟΥ: ΣΤΑΜΑΤΑΤΟΣ ΕΥΣΤΑΘΙΟΣ, Επιβλέπων Ημερομηνία Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΚΑΒΑΛΛΙΕΡΑΤΟΥ ΕΡΓΙΝΑ, Μέλος Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΣΤΕΡΓΙΟΥ ΚΩΝΣΤΑΝΤΙΝΟΣ, Μέλος Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2007 σελίδα ii

3 ΠΕΡΙΛΗΨΗ Στόχος είναι η δημιουργία ενός συστήματος φυσικού και απομακρυσμένου ελέγχου των παραμέτρων ενός ηλεκτρονικού μουσικού οργάνου μέσω κινήσεων του σώματος που θα αναγνωρίζονται από video. Οι σύγχρονοι synthesizers διαθέτουν πληθώρα παραμέτρων μέσω των οποίων ο χρήστης μπορεί να δημιουργήσει μεγάλη ποικιλία ήχων. Ταυτόχρονα, ο έλεγχος όλων αυτών των παραμέτρων σε πραγματικό χρόνο δημιουργεί συχνά προβλήματα στους χρήστες του οργάνου. Στόχος της εργασίας αυτής είναι η μελέτη του φυσικού και απομακρυσμένου ελέγχου τέτοιων μουσικών παραμέτρων. Για το σκοπό αυτό αναπτύχθηκε ένα σύστημα ικανό να επεξεργάζεται video και να αναγνωρίζει τις κινήσεις του σώματος του χρήστη (κίνηση χεριών, κεφαλιού κτλ.) και να τις ερμηνεύει ως μεταβολή κάποιων μουσικών παραμέτρων ενός ηλεκτρονικού μουσικού οργάνου (τόνος, ηχόχρωμα, κτλ.). Επίσης, μελετήθηκαν οι βασικές τεχνικές ψηφιακής σύνθεσης ήχου και σχεδιάστηκε ένας πρότυπος synth που ελέγχεται φυσικά και εξ αποστάσεως. Η μελέτη δεν περιορίστηκε στα καθαρά τεχνικά μέρη, αλλά έλαβε υπ όψιν της την ανθρώπινη νόηση (human cognition), όσον αφορά το ηχητικό αλλά και το κινησιακό μέρος της υλοποίησης του συστήματος. Creative Commons Attribution Non-Commercial Share Alike 2007 των ΚΑΠΡΟΥ ΕΥΑΓΓΕΛΟΥ και ΡΑΠΤΗ ΚΩΝΣΤΑΝΤΙΝΟΥ Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ σελίδα iii

4 ABSTRACT Although the recorded history of actual audiovisual instruments is only four centuries long, we may surmise that the roots of the idea are as old as music, shadow puppetry and painting themselves. A proliferation of audiovisual expression systems designed over the last hundred years made possible by the technological affordances precipitated by the scientific, industrial and information revolutions has dramatically expanded the set of expressive languages available to humankind. Many of the artists who developed these systems and languages, have also created moving and passionate expressions in them, in exemplary models of simultaneous tool-development and tool-use. Our work aims to explore the creative potential of the latest and perhaps greatest tool for audiovisual expression yet, the digital computer. The computer is a natural choice for such an exploration, as its fundamental material is pure information, essentially unfettered by the constraints of the physical world. We learn from psychologists, for the rare individuals who are true synæsthetes; while these unusual persons experience strong mappings between pitches and colors, for example, these mappings are almost never the same across individuals. Although there are some general principles which we may extract from the work of the Gestalt psychologists, such as the idea that high-frequency information often occurs crossmodally, the designer of synthetic sound-image mappings must operate largely from intuition. So, apparently, a simple solution for the designer is to pass the control of this mapping to the musician. The musician then, as a special individual can give their own, imaginary meaning to the result of this control. A way to eliminate the constraints that could be set by the medium of the computer, is to provide an interface that requires no physical contact. We propose a system that recognizes the movements of body parts of the musician through video input and uses a coordinate system to accordingly produce sound. The most appropriate body part to control audio parameters could be considered to be the hands, for they are established in the perception of individuals as controllers. The coordinate that adjusts the tone of the sound would be reasonable to be the height of the hand. There are two ways to recognize movement: brightness and metaballs detection. Each metaball is defined as a function in n-dimensions (ie. for three dimensions, f(x,y,z); threedimensional metaballs tend to be most common). A thresholding value is also chosen, to define a solid volume. Then, a threshold value represents whether the volume enclosed by the surface defined by n metaballs is filled at (x,y,z) or not. Normal approach in drawing 2d metaballs is to scan every pixel on screen and evaluate the metaball formula. If the result is true, draw a pixel there. In our case, if the surface at (x,y) is filled, the value y is taken as an input for the sine wave sound function to adjust its frequency. Apart from the tone adjustment, other regions are stated to apply a 3 point envelope and a high pass filter. Additional fade out, normalizing and reverb processing is done. Creative Commons Attribution Non-Commercial Share Alike 2007 KAPROS EVANGELOS and RAPTIS KONSTANTINOS Department of Information and Communication Systems Engineering UNIVERSITY OF THE ÆGEAN σελίδα iv

5 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ Περίληψη Abstract Πίνακας Περιεχομένων Κατάλογος Σχημάτων iii iv v viii ΕΝΟΤΗΤΑ 1: Άνθρωπος, Μουσική, Τεχνολογία 2 ΚΕΦΑΛΑΙΟ 1: Άνθρωπος & Μουσική 3 ΚΕΦΑΛΑΙΟ 2: Μουσική και Τεχνολογία Εισαγωγή Ιστορική Αναδρομή Τα Πρώτα Ηλεκτρονικά Όργανα Ηλεκτρονική και Συγκεκριμένη Μουσική Εξέλιξη των Synthesizers Συσκευές Ηλεκτρονικής Μουσικής Απομακρυσμένος Έλεγχος Μουσικών Οργάνων Εισαγωγή Στη Ψηφιακή Σύνθεση Ήχου Ιστορική Αναδρομή Σύνθεση Καθορισμένης Κυματομορφής Ταλαντωτές με Παρεμβολή Σύνθεση Χρονικά Μεταβαλλόμενης Κυματομορφής Υλοποίηση Ψηφιακής Σύνθεσης Ήχου Αφαιρετική Σύνθεση Ψηφιακά Φίλτρα Εισαγωγή Ιδιότητες των Φίλτρων Τράπεζες Φίλτρων και Ισοσταθμιστές Υλοποίηση Ψηφιακών Φίλτρων Φίλτρα Πεπερασμένης Παλμικής Απόκρισης Φίλτρα Μη-Πεπερασμένης Παλμικής Απόκρισης Άλλα Είδη Φίλτρων Φίλτρα Χτένας Φίλτρα Ελεύθερης Διέλευσης Shelving Φίλτρα Ο Ήχος Στην Java Java Sound API Η Ροή της Ηχητικής Πληροφορίας Ο Ήχος σαν Κωδικοποιημένη Πληροφορία: data format και file format Audio Devices, Mixer, Port και DataLine: Το Μοντέλο Διάταξης Ήχου στην Java Το υπέρ-interface Line Η Εσωτερική Κλάση Info Η Κλάση AudioSystem 78 ΕΝΟΤΗΤΑ 2: Αλληλεπίδραση Ανθρώπου - Υπολογιστή 82 ΚΕΦΑΛΑΙΟ 3: Αλληλεπίδραση & Εικονικά Περιβάλλοντα Εισαγωγή Αλληλεπιδραστικότητα Video Tracking 89 ΚΕΦΑΛΑΙΟ 4: Ψηφιακή Επεξεργασία & Ανάλυση Εικόνας 91 σελίδα v

6 4.1. Απεικόνιση Αλγεβρικών Επιφανειών Ανίχνευση Ακμών QuickTime Video Αρχιτεκτονική Τμήματα Ο Συλλέκτης Ακολουθίας (Sequence Grabber) Προεπισκόπηση Εγγραφή (Recording) Τμήματα Καναλιού (Channel Components) Τμήματα Πλαισίου (Panel Components) Υλοποίηση Video Tracking στο Processing 104 ΕΝΟΤΗΤΑ 3: Έλεγχος Μουσικών Παραμέτρων μέσω Video 108 ΚΕΦΑΛΑΙΟ 5: Ανάλυση & Σχεδιασμός του ΠΣ Σύλληψη (inception phase) Στόχοι Επεξεργασία (elaboration phase) Μοντέλο Σεναρίων Χρήσης Περιγραφή αρχιτεκτονικής λογισμικού Διαγράμματα Κλάσεων Διαγράμματα Ακολουθίας 113 ΚΕΦΑΛΑΙΟ 6: Αξιολόγηση Εισαγωγή Αξιολόγηση Video Αξιολόγηση Ήχου Συνολικό Συμπέρασμα - Μελλοντική εργασία 117 Βιβλιογραφικές Αναφορές 121 Βιβλιογραφία 122 Παράρτημα I - [Πηγαίος Κώδικας] 123 Παράρτημα ΙΙ - [Ερωτηματολόγια] 159 Παράρτημα ΙΙΙ - [Άδεια Χρήσης Λογισμικού] 161 σελίδα vi

7 ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ Εικόνα 2.1: Ο Lev Sergeivitch Termen παίζει το Theremin. Εικόνα 2.2: Γραφική αναπαράσταση της σύνθεσης με διάβασμα από πίνακα. Εικόνα 2.3: Δράση ενός παρεμβλητικού ταλαντωτή. Εικόνα 2.4: Γραφικός συμβολισμός ενός ταλαντωτή. Εικόνα 2.5: Γράφημα μιας απλής περιβάλλουσας πλάτους ADSR Εικόνα 2.6: Χρονικά μεταβαλλόμενος έλεγχος πλάτους ενός ταλαντωτή. Εικόνα 2.7: Απόκριση πλάτους προς συχνότητα ή απόκριση συχνότητας. Εικόνα 2.8: Τέσσερις κοινοί τύποι φίλτρων. Εικόνα 2.9: Κλίση φίλτρων. Εικόνα 2.10: Κλίσεις φίλτρων. Εικόνα 2.11: Απόκριση συχνότητας φίλτρου για διάφορες τιμές του Q. Εικόνα 2.12: Διάφορες τιμές απολαβής στο ίδιο φίλτρο. Εικόνα 2.13: Τα ίδια φίλτρα σταθερού Q σε γραμμική και λογαριθμική κλίμακα. Εικόνα 2.14: Ένας διαμορφωτής φάσματος δέκα σταδίων με ένα ποτενσιόμετρο ελέγχου συνδεδεμένο με κάθε συχνοτική ζώνη. Εικόνα 2.15: Γραφικός ισοσταθμιστής. Εικόνα 2.16: Το αποτέλεσμα ενός. χαμηλοπερατού εξασθενητικού φίλτρου στο πεδίο του χρόνου και της συχνότητας. Εικόνα 2.17: Απόκριση φίλτρων σε παλμούς. Εικόνα 2.18: Υλοποίηση φίλτρων. Εικόνα 2.19: Κύκλωμα ενός απλού χαμηλοπερατού φίλτρου. Εικόνα 2.20: Απόκριση συχνότητας ενός απλού χαμηλοπερατού φίλτρου Εικόνα 2.21: Κύκλωμα ενός απλού υψηλοπερατού φίλτρου. Εικόνα 2.22: Απόκριση συχνότητας ενός απλού υψηλοπερατού φίλτρου. Εικόνα 2.23: Γενική δομή φίλτρου FIR. Εικόνα 2.24: Απόκριση συχνότητας για δύο φίλτρα FIR διαφορετικού μήκους. Εικόνα 2.25: Κύκλωμα ενός απλού χαμηλοπερατού φίλτρου IIR. Εικόνα 2.26: Απόκριση συχνότητας ενός απλού χαμηλοπερατού φίλτρου IIR. Εικόνα 2.27: Απόκριση συχνότητας ενός απλού υψηλοπερατού φίλτρου IIR. Εικόνα 2.28: Γενική μορφή ενός φίλτρου δεύτερης τάξης. Εικόνα 2.29: Απόκριση συχνότητας φίλτρων χτένας. Εικόνα 2.30: Κύκλωμα απλού φίλτρου χτένας FIR. Εικόνα 2.31: Ακύρωση και ενίσχυση φάσης. Εικόνα 2.32: Δομή ενός απλού φίλτρου ελεύθερης διέλευσης. Εικόνα 2.33: Φίλτρα shelving. Εικόνα 3.1: XSens MT9 Εικόνα 3.2: iorb Εικόνα 4.1: Τιμές πυκνότητας επιφάνειας. Εικόνα 4.2: Υπολογισμός 2D metaballs Εικόνα 4.3: Υπολογισμός 3D metaballs Εικόνα 4.4: Η Lena με χρήση του Find Edges και με τον αλγόριθμο V3ga Εικόνα 4.5: Το περιβάλλον του Processing και το παράθυρο απεικόνισης Εικόνα 5.1: Use Case Diagram Εικόνα 5.2: Class Diagram Εικόνα 5.3: Διάγραμμα ακολουθίας του synthesizer στο Reaktor Εικόνα 5.4: Διεπαφή του synthesizer στο Reaktor σελίδα vii

8 Εικόνα 5.5: Συνολικό Διάγραμμα ακολουθίας Εικόνα 6.1: Συνθήκες μέρας, Τ=0.2 Εικόνα 6.2: Συνθήκες μέρας, Τ=0.6 Εικόνα 6.3: Συνθήκες νύχτας, Τ=0.2 Εικόνα 6.4: Συνθήκες νύχτας, Τ=0.6 σελίδα viii

9 σελίδα ix

10 Μέσα στον κόσμο της ζωής μπορούμε να ρωτήσουμε, και ρωτάμε γιατί ; ή, τι είναι ; Η απάντηση είναι πολλές φορές αβέβαιη. Τι είναι αυτό το λευκό αντικείμενο εκεί κάτω; Είναι ο γιος του Κλέωνος, λέει ο Αριστοτέλης, «τούτῳ δέ (το λευκό αντικείμενο) συμβέβηκεν υἱῷ Κλέωνος εἶναι» [Περί Ψυχῆς, ΙΙΙ, 1, 425α, 26-27]. Δεν ρωτάμε όμως αυτό που ρωτάει ο Αριστοτέλης: τι είναι ὁρᾷν, τι είναι αυτό που βλέπουμε, τι είναι αυτός που βλέπει; Ακόμα λιγότερο ρωτάμε: τι είναι αυτό το ίδιο το ερώτημα, και το ερώτημα εν γένει; Μόλις το ρωτήσουμε αυτό, η περιοχή αλλάζει. Δεν είμαστε πια μέσα στον κόσμο της ζωής, μέσα στο τοπίο που μένει σταθερό και αδιατάρακτο κι όταν ακόμα το αναστατώνει η πιο βίαιη κίνηση, στο οποίο θα μπορούσαμε να περιφέρουμε το βλέμμα μας σύμφωνα μ ένα διατεταγμένο πριν-μετά. Το φως του κάμπου χάθηκε, τα βουνά που προσδιόριζαν τα όριά του δεν βρίσκονται πια εκεί, το αρίφνητο γέλιο της ελληνικής θάλασσας δεν ακούγεται πια. Τίποτε δεν είναι απλώς τοποθετημένο δίπλα σε κάτι άλλο, το πιο κοντινό είναι το πιο μακρινό, οι διακλαδώσεις δεν διαδέχονται πια η μια την άλλη, υπάρχουν συγχρόνως και η μια εισχωρεί στην άλλη. Η είσοδος του Λαβυρίνθου είναι αμέσως ένα από τα κέντρα του, ή μάλλον δεν ξέρουμε πια αν είναι κέντρο, τι είναι κέντρο. Σκοτεινές στοές εκτείνονται προς όλες τις κατευθύνσεις, μπερδεύονται με άλλες που έρχονται ποιος ξέρει από πού και που ίσως δεν οδηγούν πουθενά. Δεν έπρεπε να δρασκελίσουμε το κατώφλι αυτό, έπρεπε να μείνουμε απέξω. Αλλά δεν είμαστε πια καν βέβαιοι αν δεν το έχουμε ανέκαθεν δρασκελίσει, αν οι κίτρινες και λευκές κηλίδες των ασφοδέλων, που επανέρχονται κάπου κάπου να μας ταράξουν, έχουν ποτέ υπάρξει αλλού και όχι μόνο στην εσωτερική πλευρά των βλεφάρων μας. Η μοναδική εκλογή που μας απομένει είναι να χωθούμε στη μια στοά κι όχι στην άλλη, χωρίς να ξέρουμε πού θα μπορούσαν να μας οδηγήσουν, ούτε αν μας φέρνουν εσαεί στο ίδιο αυτό σταυροδρόμι ή σ ένα άλλο εντελώς πανομοιότυπο. Σκεφτόμαστε δεν σημαίνει βγαίνουμε από το σπήλαιο, ούτε ότι αντικαθιστούμε την αβεβαιότητα των σκιών με τα ευδιάκριτα περιγράμματα των ίδιων των πραγμάτων, το τρεμουλιαστό φέγγος μιας φλόγας με το φως του αληθινού ήλιου. Σημαίνει μπαίνουμε στον Λαβύρινθο, πιο συγκεκριμένα κάνουμε να είναι και να φαίνεται ένας Λαβύρινθος, ενώ θα μπορούσαμε να είχαμε μείνει «ξαπλωμένοι ανάμεσα στα λούλουδα, ατενίζοντας τον ουρανό» [Rilke, Immer wieder ]. Σημαίνει χανόμαστε μέσα σε στοές, που υπάρχουν μόνο επειδή τις σκάβουμε ακούραστα εμείς, περιστρεφόμαστε στο βάθος ενός αδιεξόδου του οποίου η είσοδος έχει κλείσει πίσω από τα βήματά μας -ώσπου η περιστροφή αυτή να ανοίξει ανεξήγητα βατές ρωγμές στο εσωτερικό τοίχωμα. [ ] Δεν μπορούμε να απαλλαγούμε από τον νου -κι ας γνωρίζουμε την ανεπάρκεια, τα όριά του. Τα εξερευνούμε αυτά όντας επίσης μέσα στον νου - χωρίς όμως να μπορούμε λόγον διδόναι, να δώσουμε λόγο και λογαριασμό για τον ίδιο τον νου. Δεν είμαστε όμως γι αυτό τυφλοί ούτε πελαγωμένοι. Μπορούμε να διαυγάσουμε αυτό που σκεφτόμαστε, αυτό που είμαστε. Αφού πρώτα δημιουργήσαμε τον Λαβύρινθό μας, τον χωρομετρούμε κομμάτι κομμάτι. Κορνήλιος Καστοριάδης, Πρόλογος στα Σταυροδρόμια του Λαβυρίθου,1977. σελίδα x

11 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Ενότητα 1: Άνθρωπος, Μουσική, Τεχνολογία σελίδα

12 Έλεγχος Μουσικών Παραμέτρων μέσω Video 1. Άνθρωπος και Μουσική Εισαγωγή Ένας απλός και πανανθρώπινος ορισμός για την Μουσική που έχει προταθεί από τους εθνομουσικολόγους και τους κοινωνιολόγους της μουσικής είναι ήχος οργανωμένος με ανθρώπινο τρόπο. Η Δυτική Μουσική ορίζεται συχνά ως η Τέχνη και η Επιστήμη που ασχολείται με τους ήχους. Ο διαχωρισμός αυτός της Θεωρίας και της Πράξης καλλιεργήθηκε ιδιαιτερα από τους αρχαίους Έλληνες, οι οποίοι με τον όρο Μουσική εννοούσαν αρχικά την Ποίηση, το Μέλος και τον Χορό, ως αδιάσπαστη ενότητα τεχνών που καλλιεργήθηκε ιδιαίτερα στο Θέατρο, ενώ την θεωρία της Μουσικής την εξέφραζε ο κλάδος της Αρμονικής. Ο διαχωρισμός αυτός υιοθετήθηκε και διατηρήθηκε από την δυτικοευρωπαϊκό πολιτισμό και έτσι σήμερα μπορούμε να πούμε ότι η μουσική ως Επιστήμη, εξετάζει την προέλευση, την παραγωγή, τη διάταξη, το ύψος, τη διάρκεια, την ένταση και τη χροιά των ήχων, καθώς και τη μεταξύ τους σύνδεση. Σε αυτόν τον τομέα αναπτύχθηκαν η Μορφολογία, η Μουσικολογία, η Εθνομουσικολογία, η Ιστορία της Μουσικής και η Ακουστική σαν ξεχωριστές επιστήμες. Ως Τέχνη, έρχεται να καλύψει την ανάγκη του ανθρώπου να εκφράσει με τους ήχους, τις σκέψεις, τα συναισθήματα και τις ψυχικές του καταστάσεις. Τα ηχητικά στοιχεία, γίνονται μουσική, μόνο χάρη στην οργάνωσή τους. Χρειάζεται ένας άνθρωπος, ο οποίος κάποιες φορές αναγνωρίζεται από το περιβάλλον του ως προικισμένος με ειδικά προσόντα και με γνώση, για να αποφασίσει πώς θα οργανώσει κάποιους συγκεκριμένους ή μη ήχους της επιλογής του μέσα σε ένα δεδομένο χρονικό διάστημα. Ο τρόπος με τον οποίον οργανώνει ο άνθρωπος το ηχητικό υλικό, παράγοντας μουσική, εξαρτάται από την αλληλεπίδρασή του με το φυσικό, κοινωνικό και πολιτισμικό περιβάλλον, από φυσικόυς νόμους όπως η συμμετρία, η περιοδικότητα, η επανάληψη, η ταλάντευση, η ηχώ, αλλά και πιθανόν από αστάθμητους παράγοντες. Τι σημαίνει όμως, ο άνθρωπος εκφράζει με ήχους τις σκέψεις, τα συναισθήματα και τις ψυχικές του καταστάσεις ; Γιατί έχει την ανάγκη να εκφραστεί έτσι ένας άνθρωπος; Γιατί το οργανώνει έτσι αυτό το ηχητικό υλικό και όχι διαφορετικά; Ποιοι είναι αυτοί οι παράγοντες που τον κάνουν να εκφραστεί έτσι; Τι σημαίνει γενικά ένας άνθρωπος εκφράζει κάτι; Τι σημαίνουν για έναν ανθρωπο οι λέξεις, «ήχος», «σκέψη» κτλ.; Όντως δημιουργεί ένας μουσικος (και γενικά ένας εκφραστής της Τέχνης), ή μήπως «επηρεάζεται» περισότερο από όσο μπορούμε να φανταστούμε από το κοινωνικό και πολιτισμικό περιβάλλον; Τι σημαίνει κοινωνικό και πολιτισμικό περιβάλλον, πώς τον «επηρεάζει» και πώς το «επηρεάζει» ο ίδιος; Αυτό το κείμενο είναι μια προσπάθεια να θέσουμε ερωτήματα και προβληματισμούς όπως οι παραπάνω, που μας προβληματίζουν κατά τα τελευταία ακαδημαϊκά έτη. Ελπίζουμε αυτά τα ερωτήματα να είναι όντως η άρχη ενός λαβυρίνθου και αισιοδοξούμε ότι θα τον εξερευνήσουμε στην διάρκεια της ζωής μας μέχρι τέλους (αν υπάρχει τέλος -και τι σημαίνει τέλος;). σελίδα

13 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Κοινωνικοιστορικό Τι είναι η κοινωνία; Τι είναι η ιστορία, ή καλύτερα, πώς και γιατί υπάρχει χρονική αλλοίωση μιας κοινωνίας; Ως προς τι, είναι αυτή η αλλοίωση; Αναδύεται το καινούριο μέσα σε αυτήν την ιστορία και τι σημαίνει αυτό; Γιατί υπάρχουν πολλές κοινωνίες και όχι μόνο μία; Ως προς τι είναι η διαφορά τους και γιατί υπάρχει διαφορά; Αν κάποιος έλεγε ότι αυτή η διαφορά είναι φαινομενική, τότε γιατι υπάρχει αυτή η φαινομενικότητα; Γιατί το ταυτό εμφανίζεται ως διαφορετικό; Οι αναρίθμητες απαντήσεις που έχουν δοθεί, από την γέννηση του στοχασμού και μετά, σε αυτά τα ερωτήματα, ανάγονται εύκολα στην ουσία σε δύο τύπους και στις διάφορες παραλλαγές τους. Ο πρώτος τύπος είναι ο φυσικιστικός, που ανάγει την κοινωνία και την ιστορία στη φύση και κατά πρώτο λόγο στη βιολογική φύση του ανθρώπου. Ο δεύτερος τύπος είναι ο λογιστικός (διαφορετικές μορφές ανάλογα με την σημασία της ρίζας λογ-). Κατά το [1], φυσικισμός και λογικισμός δεν είναι παρά τρόποι επέκτασης των αξιώσεων και των θεμελιωδών σχημάτων της συνολοταυτιστικής λογικής στην ιστορία και στην κοινωνία. Έχει δώσει ποτέ μια ολοκληρωμένη απάντηση αυτη η κληρονομημένη σκέψη, που χρησιμοποιεί πάντα την συνολοταυτιστική λογική; Η απάντηση είναι όχι [1]. Πάντα πέφτει και θα πέφτει σε αντιφάσεις. Εδώ και 25 αιώνες, η ελληνο-δυτική σκέψη συγκροτείται, αναπτύσσεται, διευρύνεται, πάνω σε αυτή τη θέση: είναι, σημαίνει είναι κάτι το καθορισμένο (είναι τι), λέγειν, σημαίνει λεγειν κάτι το καθορισμένο (τι λέγειν), αληθώς λέγειν σημαίνει τον καθορισμό του λέγειν και αυτού που λέγεται, με βάση τους καθορισμούς του είναι ή τον καθορισμό του είναι με βάση τους καθορισμούς του λέγειν, και την τελική διαπίστωση της ταυτότητας των μεν και των δε. Αυτή είναι η θέσμιση από την Δύση της σκέψεως ως λόγου. Η συνολοταυτιστική λογική δρα στα πάντα. Ακόμα και στον λόγο αυτού που προσπαθεί να την περιφράξει, να την θέσει σε αμφισβήτηση. Η ύπαρξη της κοινωνίας, ως ανώνυμο συλλογικό πράττειν/παριστάνειν, είναι αδύνατη (ασύλληπτη για μας) χωρίς την θέσμιση του λέγειν (διαλέγω - επιλέγω - θέτω - συλλέγω - μετρώ - λέγω) και χωρίς την κινητοποίηση της συνολοταυτιστικής λογικής που είναι ενσωματωμένη σε αυτό. Σύμφωνα πάλι με το [1], μια κοινωνία συνολίζει την πρώτη φυσική στοιβάδα και την μεταμορφώνει σε κοινωνικές φαντασιακές σημασίες. Ο άνθρωπος θεσμίζει την κοινωνία με βάση φυσικά γεγονότα, όμως αυτοί οι θεσμοί «ξεφεύγουν» όσο μπορούν από την φύση και καθορίζονται απο τις κοινωνικές φαντασιακές σημασίες, και οι οποίες παραπέμουν στο μάγμα όλων των φαντασιακών σημασιών της δεδομένης κοινωνίας. Για παράδειγμα σε μια κοινωνία ζουν άνδρες και γυναίκες που μπορούν να επισημανθούν ως αρρένα και θηλέα. Γεννούν αγόρια και κορίτσια που είναι παντού και πάντοτε ανίκανα να επιβιώσουν, εκτός αν οι ενήλικες τα φροντίσουν για ένα μεγάλο χρονικό διάστημα. Ως εδώ βλέπουμε την επίδραση της πρώτης φυσικής στοιβάδας. Όμως στο πώς γίνεται ο χωρισμός σε αρσενικό και θηλυκό υποσύνολο, στο πώς μεγαλώνουν τα παιδιά, ποια είναι η διαφορά παιδιών-ενηλίκων, ανάγονται όλα στο μάγμα όλων των φαντασιακών σημασιών της δεδομένης κοινωνίας. Το φυσικό γεγονός μπορεί να δώσει ένα ερέθισμα για μια θέσμιση, όμως ένα βάραθρο χωρίζει το ερέθισμα από την αναγκαία και ικανή συνθήκη. [1] Η κοινωνικο-ιστορική θέσμιση έιναι αυτό μέσα και χάρη στο οποίο εκδηλώνεται και είναι το κοινωνικό φαντασιακό. Αυτή η θέσμιση είναι θέσμιση ενός μάγματος σημασιών, των κοινωνικών φαντασιακών σημασιών. Το μεθεκτικό παραστασιακό στήριγμα αυτών των σημασιών συνίσταται σε εικόνες ή φιγούρες, με την ευρύτατη έννοια του όρου. Οι εικονικές συνθέσεις σελίδα

14 Έλεγχος Μουσικών Παραμέτρων μέσω Video ή φιγούρες μπορούν να είναι, και είναι συχνά με την σειρά τους, εικόνες ή φιγούρες και συνεπώς νέα στηρίγματα σημασίας. Το κοινωνικό φαντασιακό είναι πρωταρχικά δημιουργία σημασιών και δημιουργία εικόνων ή μορφών που το στηρίζουν. Ένα σημαντικό μέρος από τις σημασίες μιας κοινωνίας, αυτές που δύνανται να εκφρασθούν ή εκφράζονται ρητά, θεσμίζονται, άμεσα ή έμμεσα, μέσα και χάρη στη γλώσσα. Συγχρόνως, η συνόλιση του κόσμου που θεσμίζει η κοινωνία γίνεται μέσα και χάρη στο λέγειν. Το λέγειν είναι η συνολιστική-συνολίζουσα διάσταση του κοινωνικού παριστάνειν-λέγειν, όπως το τεύχειν είναι συνολιστική-συνολίζουσα διάσταση του κοινωνικού πράττειν. Και τα δύο ερείδονται στην ταυτιστική πλευρά της πρώτης φυσικής στοιβάδας, αλλά και τα δύο είναι, ήδη από μόνα τους, κοινωνικές δημιουργίες, πρωταρχικοί και εργαλειακοί θεσμοί κάθε θεσμού. Η γλώσσα είναι μέσα και χάρη σε δυο αξεχώριστες διαστάσεις ή συνιστώσες. Είναι φάτις στο μέτρο που σημαίνει, δηλαδή καθόσον αναφέρεται σε ένα μάγμα σημασιών. Είναι κώδικας στο μέτρο που οργανώνει και οργανώνεται ταυτιστικά, ή ακόμη, καθόσον είναι λέγειν. Η γλώσσα δεν μπορεί να επιχειρήσει τη συνόλιση του κόσμου, παρά εάν η ίδια είναι σύστημα συνόλων και συνολιστικών σχέσεων και εάν θεσμίζεται η ίδια ως ένα τέτοιο σύστημα. Η γλώσσα είναι το πρώτο και το μόνο αληθινό σύνολο που υπήρξε ποτέ, το μόνο «αντικειμενικά πραγματικά» και όχι απλώς «τυπικό» σύνολο. Κάθε άλλο σύνολο όχι μόνο το προϋποθέτει λογικά, αλλά και δεν μπορεί να συγκροτηθεί παρά μέσα από τον ίδιο τύπο πράξεων. Κάθε ταυτιστική λογική δεν είναι παρά κινητοποίηση των ταυτιστικών πράξεων που είναι θεσμισμένες μέσα και χάρη στο λέγειν, μέσα και χάρη στη γλώσσα ως κώδικα. Όπως το λέγειν ενσαρκώνει και κάνει να είναι την συνολοταυτιστική διάσταση της γλώσσας, και γενικότερα του κοινωνικού παριστάνειν, το τεύχειν ενσαρκώνει και κάνει να είναι την συνολοταυτιστική διάσταση του κοινωνικού πράττειν. Όπως η γλώσσα είναι φάτις και κώδικας, έτσι και το τεύχειν, ως συνολοταυτιστικό, είναι αξεχώριστο από την φαντασιακή διάσταση του πράττειν και του μάγματος των κοινωνικών φαντασιακών σημασιών, τις οποίες το κοινωνικό πράττειν κάνει να είναι και μέσα και χάρη στις οποίες αυτό το πράττειν είναι ως κοινωνικό πράττειν. [1] Άτομο Είδαμε μέχρι τώρα, πώς γίνεται η κοινωνικο-ιστορική θέσμιση της κοινωνίας. Πρέπει να εξετάσουμε όμως, την κοινωνικοιστορική θέσμιση του ατόμου, δηλαδή της μετάπλασης της ψυχικής μονάδας σε κοινωνικό άτομο, για το οποίο υπάρχουν άλλα άτομα, αντικείμενα, κόσμος, κοινωνία, θεσμοί, πράγματα τα οποία πρωταρχικά δεν έχουν νόημα και ύπαρξη για την ψυχή. Αυτό μας οδηγεί στην συζήτηση του προβλήματος της ψυχής, που στην πραγματικότητα δεν χωρίζεται απο το πρόβλημα του κοινωνικοιστορικού, δύο εκφράσεις του ριζικού φαντασιακού, εκεί ως ριζικής φαντασίας, εδώ ως κοινωνικου φαντασιακού. Η φροϋδική αντίληψη μένει τυφλή ως προς δύο θέματα: την κοινωνικο-ιστορική θέσμιση και τη ψυχή ως ριζική φαντασία, δηλαδή, ουσιαστικά, ως ανάδυση παραστάσεων ή σαν παραστασιακή ροή που δεν υποτάσσεται στην καθοριστικότητα. Η διαδικασία της κοινωνικής θέσμισης του ατόμου, δηλαδή του εκκοινωνισμού της ψυχής, αποτελεί ενιαία διαδικασία ψυχογέννεσης ή κοινογέννεσης. Είναι μια ιστορία της ψυχής, σελίδα

15 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος κατά τη διάρκεια της οποίας η ψυχή αλλοιώνεται και ανοίγεται στον κοινωνικοιστορικό κόσμο, μέσω επίσης της ίδιας της της εργασίας και της ίδιας της της δημιουργικότητας, και μια ιστορία επιβολής στην ψυχή από την κοινωνία ενός τρόπου του είναι που η ψυχή δεν θα μπορούσε ποτέ από μόνη της να τον κάνει να αναδυθεί και ο οποίος κατασκευάζει-δημιουργεί το κοινωνικό άτομο. Η κοινή κατάληξη των δύο αυτών ιστοριών είναι η ανάδυση του κοινωνικού ατόμου ως συνύπαρξης, πάντα αδύνατης και πάντα πραγματοποιημένης, ενός κόσμου ιδίου ή ιδιωτικού και ενός κόσμου κοινού ή δημοσίου. (Ο Κορνήλιος Καστοριάδης μας φωτίζει πολύ όμορφα στα κείμενα του την διαδικασία του εκκοινωνισμού τη ψυχής, το «συνειδητο» και «ασυνείδητο», την συγκρότηση της παραγματικότητας, την εγκαθίδρυση του άλλου, της μετουσίωσης και το κοινωνικο-ιστορικό περιεχόμενο της μετουσίωσης. Για περισσότερα βλ. ολόκληρο το έργο του Κ.Καστοριάδη. Σε ό,τι συμπεράσματα καταλήξαμε ξεκινώντας από την ψυχή, βασίζονται σε αυτά τα κείμενα και έτσι θεωρούμε πράξη χωρίς νόημα την λεπτομερή, ανά σελίδα, αναφορά τους.) Συμπέρασμα Ό,τι ονομάσθηκε τέχνη είναι παράγωγο του τεύχειν. Άρα λοιπόν και η ίδια η μουσική είναι παράγωγο του τεύχειν. Στην μουσική ο δημιουργός προσπαθεί να εκφράσει κάποιες ψυχικές παραστάσεις. Λόγω όμως της εγκαθίδρυσης του Άλλου, οι παραστάσεις αντανακλούν τις κληρονομημένες παραστάσεις, αυτές που αναδύονται μέσω του Άλλου του ασυνειδήτου. Άρα λοιπόν για να μπορεί ένας άνθρωπος πραγματικά να δημιουργήσει (με την ειδική έννοια) μουσική, πρέπει να αποβάλλει όσο μπορεί την κληρονομημενή σκέψη, την συνολοταυτιστική λογική, την εγκαθίδρυση του Άλλου, και να έχει στιγμές έκφρασης και ανάδυσης καινούργιων παραστάσεων. Πρέπει λοιπόν ο άνθρωπος, όχι να καταργήσει τον άλλο (δεν είναι εφικτό) αλλά να εγκαθιδρύσει μια καινούρια σχέση, συνειδητού-ασυνειδήτου. Πρέπει να γνωρίζει πότε ενεργεί το ένα και πότε το άλλο. Πρέπει επιτέλους να «καταργήσει» (δηλ. να ξεπεράσει) την ετερονομία του, και την ετερονομία της κοινωνίας του. Πρέπει ο άνθρωπος και οι κοινωνίες του να αυτοθεσμίζονται με ότι αυτό συνεπάγεται. σελίδα

16 Έλεγχος Μουσικών Παραμέτρων μέσω Video 2. Μουσική και Τεχνολογία 2.1. Εισαγωγή Ιστορική Αναδρομή Η μουσική τεχνολογία εξελίχτηκε ουσιαστικά κατά τη διάρκεια του 20ου αιώνα. Μπορούμε να διακρίνουμε τέσσερις περιόδους: Πρώτες προσπάθειες ηλεκτρονικής οργανοποιίας ( ). Εμφανίζονται τα πρώτα όργανα που βασίζονται σε ηλεκτρονικά κυκλώματα για την παραγωγή ήχου. Εποχή των studios ( ). Δημιουργία της ηλεκτρονικής και συγκεκριμένης μουσικής σε ειδικά εξοπλισμένα ερευνητικά studios. Εποχή των synthesizers ( ). Η τεχνολογική εξέλιξη οδηγεί στην χρήση ηλεκτρονικών συστημάτων για παραγωγή ήχου από το ευρύ κοινό. Ανάπτυξη των αναλογικών και στη συνέχεια ψηφιακών ηλεκτρονικών οργάνων σύνθεσης ήχου. Εποχή της υπολογιστικής μουσικής (1984-σήμερα). Η καθιέρωση του πρωτοκόλλου MIDI και η ραγδαία τεχνολογική εξέλιξη των υπολογιστών έχει ως αποτέλεσμα την όλο και μεγαλύτερη χρήση υπολογιστικών συστημάτων για την σύνθεση, παραγωγή, και διαμόρφωση μουσικής. [2] Τα Πρώτα Ηλεκτρονικά Όργανα Μία από τις πρώτες προσπάθειες δημιουργίας ενός οργάνου με βάση ηλεκτρονικές διατάξεις ήταν το τηλεαρμόνιο (telharmonium), επινόηση του Thaddeus Cahill το Αυτό το όργανο συνδύαζε μεμονωμένους τόνους για την παραγωγή σύνθετων ήχων (προσθετική σύνθεση). Αυτό το υπερβολικά ογκώδες όργανο ήταν εφοδιασμένο με ένα keyboard που ενεργοποιούσε μία γεννήτρια και ένα είδος μεγαφώνου για την αναπαραγωγή του ήχου. Το τηλεαρμόνιο οφείλει το όνομά του στη χρησιμότητά του: αναμετάδοση μουσικής μέσω τηλεφώνου σε ξενοδοχεία, εστιατόρια, σπίτια κτλ. Λίγα χρόνια μετά την ανακάλυψή του έπεσε σε αχρηστία λόγω του πολύ μεγάλου όγκου του και την αλληλεπίδραση του ηχητικού σήματος που παρήγαγε με άλλα τηλεφωνικά σήματα. Ένα άλλο πρωτοποριακό ηλεκτρονικό όργανο ήταν το αιθερόφωνο (Theremin). Βασίζεται στη μείξη δύο σημάτων ίσων συχνοτήτων των οποίων ο συνδυασμός μας δίνει ένα τρίτο σήμα ισοδύναμο με την διαφορά των δύο αρχικών ταλαντώσεων. Το όργανο αυτό δεν είχε πλήκτρα και η εκτέλεση γινόταν με κινήσεις των χεριών μπροστά από δύο αντένες, γεγονός που προσέδιδε θεατρικότητα κατά την εκτέλεση μουσικών κομματιών. Ο εκτελεστής στέκεται μπροστά από το όργανο και με κινήσεις του δεξιού χεριού διαμορφώνει τη συχνότητα του ήχου, μεταβάλλοντας την απόσταση μεταξύ του δεξιού χεριού και της κάθετης κεραίας. Με την μεταβολή της απόστασης μεταξύ του αριστερού χεριού και της οριζόντιας κεραίας ρυθμίζεται η ένταση των παραγόμενων τόνων. Οι δύο αντένες επηρεάζονται από όλες τις κινήσεις του σώματος γι αυτό είναι απαραίτητος ο αυστηρός έλεγχος της στάσης του σώματος και του κεφαλιού. Το Theremin ήταν το πρώτο ηλεκτρονικό όργανο για το οποίο γράφτηκαν σελίδα

17 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος μουσικές συνθέσεις (E. Varèse, 1927). Το πρώτο ηλεκτρονικό όργανο που ενσωματώθηκε σε μία ορχήστρα ήταν τα κύματα Martenot (les ondes Martenot) που κατασκευάστηκε το 1928 από τον Maurice Martenot. Βασίζεται στην αφαιρετική σύνθεση και μοιάζει εξωτερικά με πιάνο αλλά αντί για χορδές έχει μια σειρά από ειδικές ηλεκτρικές λάμπες. Το ιδιαίτερο χαρακτηριστικό του είναι η ύπαρξη ενός δακτυλίου, ο οποίος κινείται με τη βοήθεια του δείκτη του δεξιού χεριού, και υπερτίθεται του πληκτρολογίου. Οι κινήσεις του δακτυλίου αντιστοιχούν σε νότες και σχετικές διαβαθμίσεις υψών μιας χρωματικής κλίμακας. Επίσης, το δεξί χέρι ελέγχει την ένταση με ένα ευαίσθητο στην πίεση κουμπί. Από το 1935 κατασκευάζεται το πολύ γνωστό όργανο Hammond που προσεγγίζει κατασκευαστικά το τηλεαρμόνιο (προσθετική σύνθεση) αλλά σε πολύ μικρότερο μέγεθος και παράγει μια μεγάλη γκάμα ηχοχρωμάτων. Αρχικός στόχος του κατασκευαστή ήταν η δημιουργία ενός οργάνου που θα μπορούσε να μιμηθεί τον ήχο του εκκλησιαστικού οργάνου με πολύ μικρότερο όγκο Ηλεκτρονική και Συγκεκριμένη Μουσική Μετά τον 2ο παγκόσμιο πόλεμο αρχίζουν να αναπτύσσονται τα πρώτα studios εφοδιασμένα με την διαθέσιμη τεχνολογία για την σύνθεση και παραγωγή μουσικής. Διακρίνουμε δύο κύρια ρεύματα αυτή τη περίοδο. Η συγκεκριμένη μουσική (musique concrète) βασίζεται στην χρήση ηχογραφημένων φυσικών ήχων και θορύβων. Οι ήχοι παραθέτονται είτε αυτούσιοι είτε διαμορφωμένοι με ειδικές τεχνικές. Πρωτοπόρος της συγκεκριμένης μουσικής είναι ο Pierre Schaeffer και το studio RTF (Radio-Television Française) στο Παρίσι. Η ηλεκτρονική μουσική (electronic music) βασίστηκε στην τεχνολογική ανάπτυξη για την παραγωγή και ηχογράφηση ηλεκτρονικών ήχων που παράγονται από το μηδέν με χρήση ταλαντωτών, γεννητριών θορύβου κτλ. Πρωτοπόρος της ηλεκτρονικής μουσικής και ένας από τους μεγαλύτερους συνθέτες του 20ου αιώνα είναι ο Karlheinz Stockhausen που δούλεψε στο studio WDR της Κολωνίας Εξέλιξη των Synthesizers Ο συνθετητής (synthesizer ή synth) είναι ένα ηλεκτρονικό σύστημα παραγωγής, μετατροπής και οργάνωσης ήχου σε πραγματικό χρόνο. Όταν ένας synthesizer συνδυάζεται με ενισχυτή, μείκτη και υλικό ηχογράφησης έχουμε να κάνουμε με ένα ολοκληρωμένο studio ή workstation. Ο πρώτος αναλογικός synthesizer δημιουργήθηκε το 1955 στο πανεπιστήμιο του Princeton. Ο synthesizer αυτός, που ονομάστηκε RCA Mark II, ήταν ένα ογκώδες μηχάνημα και περιελάμβανε όλες τις συσκευές του κλασικού studio για τη παραγωγή ηλεκτρονικής μουσικής. σελίδα

18 Έλεγχος Μουσικών Παραμέτρων μέσω Video Με την πρόοδο της τεχνολογίας άρχισαν να κατασκευάζονται πιο μικροί και λειτουργικοί synthesizers. Τη δεκαετία του 1960 εμφανίζονται οι πρώτοι synthesizers βασιζόμενοι σε ταλαντωτές ελεγχόμενης τάσης (voltage-controlled oscillators, ή VCO). Ελέγχοντας την ηλεκτρική τάση με τρόπο ανάλογο με τα ηχητικά σήματα ήταν δυνατή η απομίμηση ήχων ακουστικών οργάνων και η δημιουργία νέων, συνθετικών ήχων. Το πρώτο εμπορικό μονοφωνικό αναλογικό synthesizer ήταν το Buchla ενώ το πρώτο όργανο που γνώρισε μεγάλη επιτυχία και έγινε γνωστό στο ευρύτερο κοινό ήταν το MiniMoog. Τη δεκαετία του 1970 κάνουν την εμφάνισή τους οι πρώτοι ψηφιακοί synthesizers οι οποίοι προσομοιώνουν την λειτουργία των αναλογικών synthesizers χρησιμοποιώντας ψηφιακή τεχνολογία. Ο πρώτος εμπορικός synthesizer ήταν το Synclavier to Στη δεκαετία του 1980 έχουμε μαζική παραγωγή ψηφιακών synthesizers από τις εταιρείες Yamaha, Casio, Roland, Korg, Akai κτλ. με πιο γνωστό μοντέλο το Yamaha DX7. Η καθιέρωση του πρωτοκόλλου MIDI (Musical Instruments Digital Interface) για την επικοινωνία μεταξύ synthesizers διαφορετικών εταιρειών, το 1984 άνοιξε το δρόμο για την εποχή της υπολογιστικής μουσικής (computer music). Τη δεκαετία του 1990 άρχισαν να αναπτύσσονται οι πρώτοι synthesizers λογισμικού (software synthesizers ή soft synths) οι οποίοι προσομοιώνουν τον ήχο αναλογικών ή ψηφιακών synthesizers ή ακόμα και ακουστικών οργάνων χρησιμοποιώντας αποκλειστικά τους πόρους ενός υπολογιστή γενικού σκοπού. Σήμερα, ο οποιοσδήποτε μπορεί να σχεδιάσει το δικό του synthesizer στον προσωπικό του υπολογιστή και να το χρησιμοποιήσει για τη σύνθεση μουσικής με τη βοήθεια ειδικών πακέτων λογισμικού. Σε αυτό έχει βοηθήσει πολύ η καθιέρωση του πρωτοκόλλου VST (virtual studio technology) με βάση το οποίο διασφαλίζεται η συμβατότητα και γίνεται δυνατή η επικοινωνία μεταξύ διαφορετικών synthesizers λογισμικού Συσκευές Ηλεκτρονικής Μουσικής Οι περισσότεροι θεωρούν ότι ένας synthesizer συνοδεύεται απαραίτητα από ένα μουσικό πληκτρολόγιο (keyboard). Και όχι άδικα, γιατί αυτό ήταν γεγονός για τις περισσότερες συσκευές από την εποχή των αναλογικών synthesizers. Η καθιέρωση του πρωτοκόλλου MIDI όμως, επιτρέπει τον χειρισμό ηλεκτρονικών ηχητικών συσκευών από άλλες συσκευές. Έτσι, υπάρχουν συσκευές που έχουν όλες τις ιδιότητες ενός synthesizer εκτός από κάποια μονάδα μουσικής εισόδου. Αυτοί οι synthesizer καλούνται ηχητικές μονάδες (sound modules). Απ την άλλη, ανεξάρτητες συσκευές μουσικής εισόδου (π.χ. πληκτρολόγια) που δεν παράγουν ήχο από μόνες τους, αλλά απλά στέλνουν τα δεδομένα εκτέλεσης σε άλλες συσκευές για να παραχθεί ήχος καλούνται ελεγκτές MIDI (MIDI controllers). Οι συσκευές που μπορούν να αποθηκεύσουν ηχητικά δείγματα, δηλ. ηχογραφήσεις φυσικών ήχων, να τα αναθέσουν σε συγκεκριμένες νότες και να τα αναπαράγουν αυτούσια ή μετά από επεξεργασία καλούνται δειγματολήπτες (samplers). Οι μηχανές κρουστών (drum machines) είναι ηχητικές μονάδες που χρησιμοποιούνται για να παράγουν ήχους κρουστών ή ρυθμικά μέρη. Μπορεί να βασίζονται είτε σε συνθετικούς ήχους είτε σε ηχογραφημένους ήχους. Για την δημιουργία μουσικής σε υπολογιστή είναι απαραίτητη η κάρτα ήχου (sound σελίδα

19 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος card). Πρόκειται για το υλικό (hardware) που επιτρέπει στον υπολογιστή να επικοινωνήσει με συσκευές MIDI ή αναλογικές ηχητικές συσκευές. Οι πιο καλές από τις κάρτες ήχου περιέχουν ειδικά κυκλώματα για την επεξεργασία ψηφιακού σήματος ώστε να διευκολύνεται η λειτουργία του υπολογιστή. Τέλος, ειδικά πακέτα λογισμικού αναλαμβάνουν την ηχογράφηση, επεξεργασία και αναπαραγωγή μουσικής μέσω υπολογιστή. Τα πακέτα αυτά που καλούνται μουσικοί προγραμματιστές (sequencers) μπορούν να επεξεργαστούν δεδομένα MIDI και ψηφιακού ήχου και μετατρέπουν έναν προσωπικό υπολογιστή σε ολοκληρωμένο studio μουσικής παραγωγής Απομακρυσμένος Έλεγχος Μουσικών Οργάνων Theremin (1917) Η αρχή των ετεροδυναμικών ταλαντωτών ανακαλύφθηκε τυχαία στις πρώτες δεκαετίες του 20 ου αι. από μηχανικούς πειραματιζόμενους με καθοδικές λυχνίες κενού. Το αποτέλεσμα αυτό δημιουργείται από δύο ηχητικά ραδιοκύματα υψηλών συχνοτήτων, των οποίων η διαφορά δημιουργεί ένα τρίτο κύμα ίσης συχνότητας με την διαφορά (περίπου 20 Hz με Hz). Οι μουσικές δυνατότητες της αρχής αυτής, παρατηρήθηκαν από αρκετούς μηχανικούς όπως οι Maurice Martenot, Nikolay Obukhov, Armand Givelet και Leon (ή Lev) Sergeivitch Termen, Ρώσος τσελίστας και ηλεκτρονικός μηχανικός. Ένα σημαντικό πρόβλημα στην χρήση της ετεροδυναμικής αρχής για μουσικούς σκοπούς είναι ότι η μικρή απόσταση ανάμεσα στις λυχνίες κενού και το ανθρώπινο σώμα δημιουργεί διακυμάνσεις στην συχνότητα, λόγω της αγωγιμότητας του σώματος. Ο Leon Termen συνειδητοποίησε ότι, αντί να αποτελεί πρόβλημα, η ανθρώπινη αγωγιμότητα μπορεί να αποτελέσει μηχανισμό ελέγχου για ένα όργανο και, συνεπώς, να απελευθερώσει τον δημιουργό από τα κλαβιέ και την προκαθορισμένη τονικότητα. Η πρώτη μηχανή του Termen κατασκεάστηκε στην ΕΣΣΔ το 1917 και ονομάστηκε Theremin (συνδυασμός από το επίθετό του και την λέξη Aetherophone ) και είναι το πρώτο όργανο που εκμεταλλεύεται την ετεροδυναμική αρχή. Στο πρωτότυπο η ένταση ρυθμιζόταν με ένα πετάλι ποδιού και η τονικότητα με έναν μηχανισμό με διακόπτη. Στο μοντέλο παραγωγής του 1920 υπήρχε μια ορθή κεραία και ένας οριζόντιος μεταλλικός βρόχος. Το όργανο παίζεται κινώντας το ένα χέρι κατά μήκος της κεραίας για την τονικότητα και το άλλο κατά μήκος του βρόχου για την ένταση. Το αποτέλεσμα είναι ένας μονοφωνικός συνεχής ήχος που διαμορφώνεται από τον εκτελεστή. Η χροιά του οργάνου είναι σταθερή και θυμίζει ήχο βιολιού. Ο ήχος παράγεται άμεσα από τον ετεροδυναμικό συνδυασμό δύο ταλαντωτών: ενός που λειτουργεί σε σταθερή συχνότητα των 170 ΚHz, και ενός που μεταβάλλεται μεταξύ 168 και 170 ΚHz. Η μεταβολή εξαρτάται από την απόσταση του χεριού του μουσικού από την κεραία και παράγει τον ήχο. σελίδα

20 Έλεγχος Μουσικών Παραμέτρων μέσω Video Εικόνα 2.1: Ο Lev Sergeivitch Termen παίζει το Theremin. Μετά από προσπάθειες του Μπολσεβίκικου Κόμματος να διαφημίσει το Theremin ως πρωτοποριακή επιτυχία του καθεστώτος της ΕΣΣΔ, ο Termen φεύγει για τις ΗΠΑ το 1927, όπου την επόμενη χρονιά του χορηγείται πατέντα για το Theremin. Etherwave Theremin (1954) Οι ετεροδυναμικοί ταλαντωτές έγιναν η καθιερωμένη μέθοδος παραγωγής ηλεκτρονικής μουσικής μέχρι την εφεύρεση των τρανζίστορ την δεκαετία του Στις ΗΠΑ το Theremin έγινε γνωστό ως οικιακό όργανο, αντικαταστάτης των εγχόρδων, και χρησιμοποιήθηκε κυρίως ως καινοτομία παρά ως σοβαρό όργανο σε πολλές ταινίες την περίοδο και σε pop δίσκους του Ο Termen κατασκεύασε πολλές παραλλαγές του Theremin, όπως τα Terpsitone, Rhythmicon, keyboard Theremin και Electronic Cello. Το 1954 ο τότε φυσικός (και αργότερα ηλεκτρονικός μηχανικός) με πλούσια μουσική παιδεία Bob Moog, κατασκευάζει και πουλάει με επιτυχία Theremin με μηχανισμό τρανζίστορ ( Theremin 201 και το 1961 το Melodia Model Theremin ). Μετά από δεκαετίες ασχολίας με τα Moog Modular και το MiniMoog, επανέρχεται με το Theremin 91 έχοντας γνωρίσει προσωπικά τον Termen δύο χρόνια πριν, το Μέχρι το 1997 έχει κατασκευάσει το Etherwave Theremin και το Ethervox, ένα Theremin που υποστηρίζει MIDI. Το 2004, κυκλοφόρησε το νέο μοντέλο του πολυβραβευμένου Etherwave Theremin, το Etherwave Pro. Μετά τον θάνατο του Termen το 1993 και του Bob Moog το 2005, την σκυτάλη της αναβάθμισης του Etherwave Theremin έχει αναλάβει η κόρη του τελευταίου, Michelle. (Στο συνοδευτικό cd της παρούσας Διπλωματικής που βρίσκεται στην βιβλιοθήκη του Παν. Αιγαίου στο Καρλόβασι, υπάρχουν αποσπάσματα video με την χρήση του Theremin από τον ίδιο τον Termen και του Etherwave από την Michelle Moog.) σελίδα 10

21 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος 2.3. Εισαγωγή Στη Ψηφιακή Σύνθεση Ήχου Ιστορική Αναδρομή Τα πρώτα πειράματα σύνθεσης ήχων από υπολογιστή ξεκίνησαν το 1957 από ερευνητές στα εργαστήρια Bell Telephone Laboratories. Στα πρώτα πειράματα ο Max Mathews και οι συνεργάτες του απέδειξαν ότι ένας υπολογιστής μπορούσε να συνθέσει ήχους σύμφωνα με οποιαδήποτε τονική κλίμακα ή κυματομορφή, συμπεριλαμβανομένων ήχων με χρονικά μεταβαλλόμενες περιβάλλουσες συχνότητας και πλάτους. Το πρώτο πρόγραμμα που αναπτύχθηκε από τον Mathews ήταν το Music I και μπορούσε να δημιουργήσει μία απλή κυματομορφή, μία ισόπλευρη τριγωνική. Ο χρήστης μπορούσε να καθορίσει τις νότες δίνοντας τον τόνο, την κυματομορφή και τη διάρκεια. Από την πρώτη στιγμή έγινε αντιληπτή η ικανότητα του υπολογιστή να δημιουργεί ήχο οποιασδήποτε συχνότητας επακριβώς. Το πρόγραμμα Music II ολοκληρώθηκε το Ήταν γραμμένο σε γλώσσα assembly για τον υπολογιστή IBM Λόγω της μεγαλύτερης υπολογιστικής ικανότητας αυτού του υπολογιστή, ήταν δυνατή η πραγματοποίηση πιο φιλόδοξων αλγορίθμων σύνθεσης ήχου. Ήταν διαθέσιμες 4 ανεξάρτητες φωνές και υπήρχε δυνατότητα επιλογής μεταξύ 16 κυματομορφών που ήταν αποθηκευμένες στη μνήμη. Μία από τις πιο σημαντικές εξελίξεις στη σχεδίαση συστημάτων ψηφιακής σύνθεσης ήχου ήταν η ανάπτυξη της έννοιας του δομικού στοιχείου (unit generator, UG). Τα δομικά στοιχεία είναι βασικές μονάδες επεξεργασίας σήματος, όπως οι ταλαντωτές, τα φίλτρα και οι ενισχυτές, οι οποίες μπορούν να διασυνδεθούν για το σχηματισμό περίπλοκων συνθετικών οργάνων που δημιουργούν ηχητικά σήματα. Η πρώτη γλώσσα σύνθεσης που χρησιμοποίησε την έννοια των δομικών στοιχείων ήταν η Music III το Αυτή η γλώσσα επέτρεπε στους χρήστες να σχεδιάσουν τα δικά τους δίκτυα σύνθεσης χρησιμοποιώντας τα δομικά στοιχεία. Με το πέρασμα του ηχητικού σήματος από μία σειρά τέτοιων δομικών στοιχείων, μπορούσε να αναπτυχθεί σχετικά εύκολα μία μεγάλη ποικιλία αλγόριθμων σύνθεσης. Μετά από τη γλώσσα Music III, αναπτύχθηκε μία μεγάλη ποικιλία από συστήματα σύνθεσης λογισμικού που βασιζόταν στην έννοια των δομικών στοιχείων. To Music IV (1963) ήταν μία νέα έκδοση του Music III που βασιζόταν σε μία νέα ειδική γλώσσα assembly. Η Music V που αναπτύχθηκε το 1968 γράφτηκε αποκλειστικά σε Fortran IV, μία συνηθισμένη γλώσσα προγραμματισμού, και μπορούσε να χρησιμοποιηθεί από οποιονδήποτε. Έχοντας ως μοντέλο τα Music IV και Music V, αναπτύχθηκαν προγράμματα σύνθεσης ήχου από διάφορους ερευνητές, όπως το Music 4BF, Music 360, Csound, Cmusic, Common Lisp Music κτλ. Τέτοια προγράμματα συνήθως αναφέρονται ως γλώσσες Music N Σύνθεση Καθορισμένης Κυματομορφής Η ψηφιακή σύνθεση ήχου δημιουργεί μία ακολουθία από αριθμούς που αναπαριστούν τα σελίδα 11

22 Έλεγχος Μουσικών Παραμέτρων μέσω Video δείγματα μιας ηχητικής κυματομορφής. Μπορούμε να ακούσουμε αυτούς τους συνθετικούς ήχους μόνο αν τους στείλουμε σε ένα μετατροπέα από ψηφιακό σε αναλογικό (DAC), ο οποίος μετατρέπει τους αριθμούς σε συνεχόμενη μεταβλητή ηλεκτρική τάση που μπορεί να ενισχυθεί και να σταλεί σε ένα ηχείο. Ένας τρόπος για να συνθέσουμε μία κυματομορφή είναι να γράψουμε ένα υπολογιστικό πρόγραμμα που να υπολογίζει τις τιμές των δειγμάτων μιας κυματομορφής σύμφωνα με ένα μαθηματικό τύπο και να στέλνει αυτά τα δείγματα το ένα μετά το άλλο σε ένα DAC. Αυτή η προσέγγιση δίνει το επιθυμητό αποτέλεσμα αλλά δεν είναι η πιο αποτελεσματική βάση για την ψηφιακή σύνθεση ήχου. Γενικά, τα μουσικά ηχητικά κύματα είναι εξαιρετικά επαναληπτικά, ένα γεγονός που αντανακλάται στις έννοιες του τόνου (pitch) και της συχνότητας. Επομένως, μία πιο αποτελεσματική τεχνική είναι να υπολογίσουμε τους αριθμούς μόνο για ένα κύκλο της κυματομορφής και να αποθηκεύσουμε αυτούς τους αριθμούς σε μία λίστα στη μνήμη όπως φαίνεται στην εικόνα 2.2. Μία τέτοια λίστα καλείται κυματοπίνακας (wavetable). Για να δημιουργήσει ένα περιοδικό σήμα, ο υπολογιστής απλά διαβάζει τον κυματοπίνακα ξανά και ξανά, στέλνοντας τα δείγματα που διαβάζει στον DAC για να μετατραπούν σε ήχο. Αυτή η διαδικασία του επαναληπτικού διαβάσματος ενός κυματοπίνακα από τη μνήμη καλείται σύνθεση με διάβασμα πίνακα (table-lookup synthesis). Καθώς το διάβασμα μιας τιμής από τη μνήμη διαρκεί μόνο μερικά νανο-δευτερόλεπτα για έναν υπολογιστή, η σύνθεση με διάβασμα πίνακα είναι πολύ πιο γρήγορη από τον υπολογισμό της κάθε τιμής. Η σύνθεση με διάβασμα πίνακα είναι η καρδιά ενός ψηφιακού ταλαντωτή (digital oscillator), μιας θεμελιώδους μονάδας στους synthesizers. Επίσης, αυτή η διαδικασία είναι γνωστή και ως σύνθεση καθορισμένης κυματομορφής (fixed-waveform synthesis) επειδή η κυματομορφή δεν αλλάζει στη διάρκεια ενός ηχητικού γεγονότος. Για παράδειγμα, ας υποθέσουμε ότι ο πίνακας περιέχει τιμές, η καθεμία από τις οποίες είναι ένας αριθμός των 16 bits. Οι τιμές δεικτοποιούνται από το 0 ως το 999. Ονομάζουμε την τρέχουσα θέση στον πίνακα δείκτης_φάσης ως αναφορά στη φάση της σελίδα 12

23 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Εικόνα 2.2: Γραφική αναπαράσταση της σύνθεσης με διάβασμα από πίνακα. κυματομορφής. Για να διαβάσει τον πίνακα ο ταλαντωτής ξεκινά από την πρώτη θέση του πίνακα (δείκτης_φάσης = 0) και κινείται με βάση μία προσαύξηση (increment) προς το τέλος του πίνακα (δείκτης_φάσης = 999). Στο σημείο αυτό ο δείκτης φάσης μηδενίζεται και το διάβασμα του πίνακα συνεχίζεται από την αρχή. Ποια είναι η συχνότητα του ήχου που παράγεται από τη σύνθεση με διάβασμα πίνακα; Εξαρτάται από το μήκος του κυματοπίνακα και τη συχνότητα δειγματοληψίας. Αν η συχνότητα δειγματοληψίας είναι δείγματα το δευτερόλεπτο και υπάρχουν αριθμοί στον πίνακα, το αποτέλεσμα είναι 1.000/1.000 = 1 Hz. Αν η συχνότητα δειγματοληψίας είναι Hz και ο πίνακας περιέχει στοιχεία, τότε η συχνότητα εξόδου είναι 100 Hz. Πώς μπορούμε να αλλάξουμε τη συχνότητα του σήματος εξόδου; Όπως είδαμε μόλις, ένας απλός τρόπος είναι να αλλάξουμε τη συχνότητα δειγματοληψίας. Όμως αυτή η στρατηγική είναι περιοριστική, ειδικά όταν κάποιος θέλει να επεξεργαστεί ή να μιξάρει σήματα με διαφορετικές συχνότητες δειγματοληψίας. Μία καλύτερη λύση είναι να διαβάζουμε τον κυματοπίνακα με διαφορετικό ρυθμό, αγνοώντας κάποια από τα δείγματά του. Αυτό έχει ως αποτέλεσμα την συρρίκνωση του κυματοπίνακα και τη δημιουργία διαφορετικών συχνοτήτων. Για παράδειγμα, αν πάρουμε μόνο τα δείγματα με ζυγό αριθμό, τότε διαβάζουμε τον κυματοπίνακα με τη διπλάσια ταχύτητα. Αυτό αυξάνει το pitch του σήματος εξόδου κατά μία οκτάβα. Αν αγνοούμε δύο δείγματα για κάθε ένα που διαβάζουμε, τότε το pitch αυξάνεται ακόμα περισσότερο. Στους αλγόριθμους διαβάσματος πίνακα, η προσαύξηση καθορίζει τον αριθμό των δειγμάτων που αγνοούνται κάθε φορά. Η προσαύξηση προστίθεται στην τρέχουσα θέση της φάσης για να βρεθεί η επόμενη θέση που θα διαβαστεί για να πάρουμε το επόμενο δείγμα. Στην πιο απλή περίπτωση που διαβάζουμε όλα τα στοιχεία του πίνακα, η προσαύξηση είναι 1. Αν διαβάζουμε μόνο τα μόνα ή μόνο τα ζυγά δείγματα, η προσαύξηση είναι 2. Η σχέση μεταξύ μιας δεδομένης συχνότητας (F), του μήκους του πίνακα (L) και της προσαύ- σελίδα 13

24 Έλεγχος Μουσικών Παραμέτρων μέσω Video ξησης δίνεται από την παρακάτω εξίσωση, η οποία είναι η πιο σημαντική στη σύνθεση με διάβασμα πίνακα: προσαύξηση = L F / F s όπου F s η συχνότητα δειγματοληψίας. Εικόνα 2.3: Δράση ενός παρεμβλητικού ταλαντωτή. Μεταξύ των τιμών των θέσεων 27 και 28 ενός κυματοπίνακα, υπολογίζεται η τιμή που αντιστοιχεί στη θέση 27, Ταλαντωτές με Παρεμβολή Για τους περισσότερους συνδυασμούς τιμών μήκους πίνακα, συχνότητας δειγματοληψίας και παραγόμενης συχνότητας, το αποτέλεσμα του προηγούμενου τύπου υπολογισμού της προσαύξησης δεν θα είναι ακέραιος. Όμως, το πόσα στοιχεία του πίνακα θα αγνοηθούν καθορίζεται από τη θέση τους που είναι ακέραιος αριθμός. Επομένως η τιμή της προσαύξησης πρέπει να μετατραπεί σε ακέραιο. Για να δημιουργήσουμε έναν ακέραιο μπορούμε να αποκόψουμε το δεκαδικό μέρος. Με αυτή τη λογική, ένας αριθμός όπως ο 6,99 θα γίνει 6. Αν ακολουθήσουμε αυτή τη διαδικασία θα παίρνουμε μία τιμή της κυματομορφής κοντά σε αυτό που θέλουμε αλλά όχι ακριβώς αυτή που χρειαζόμαστε. Ως αποτέλεσμα, εισάγονται μικρές παραμορφώσεις της κυματομορφής, που ονομάζονται θόρυβος διαβάσματος πίνακα (tablelookup noise). Όσο μεγαλύτερος είναι ένας κυματοπίνακας, τόσο μικρότερος είναι ο θόρυβος αυτός. Ένας άλλος τρόπος είναι να στρογγυλοποιήσουμε την τιμή της προσαύξησης στον πιο κοντινό ακέραιο. Έτσι το 6,99 θα γίνει 7, που είναι πιο ακριβής τιμή από το 6. Η καλύτερη λύση επιτυγχάνεται με έναν παρεμβλητικό ταλαντωτή (interpolating oscillator) ο οποίος είναι πιο περίπλοκος υπολογιστικά, αλλά δημιουργεί πιο καθαρά σήματα. Ένας παρεμβλητικός ταλαντωτής υπολογίζει την τιμή που θα είχε ο κυματοπίνακας για την συγκεκριμένη τιμή της φά- σελίδα 14

25 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος σης που καθορίζεται από την προσαύξηση. Με άλλα λόγια παρεμβάλει ένα στοιχείο μεταξύ δύο στοιχείων του κυματοπίνακα για να βρει την τιμή που αντιστοιχεί στη συγκεκριμένη τιμή της φάσης (εικόνα 2.3). Με παρεμβλητικούς ταλαντωτές, μικρότεροι κυματοπίνακες μπορούν να επιτύχουν ίδια ηχητική ποιότητα με μεγαλύτερους μη-παρεμβλητικούς ταλαντωτές. Ένας παρεμβλητικός ταλαντωτής που χρησιμοποιεί έναν κυματοπίνακα 1024 θέσεων στη Εικόνα 2.4: Γραφικός συμβολισμός ενός ταλαντωτή. χειρότερη περίπτωση έχει λόγο σήματος προς θόρυβο για ένα ημιτονοειδές σήμα της τάξης των 109 db ενώ ένας μη-παρεμβλητικός ταλαντωτής που στηρίζεται στον ίδιο πίνακα έχει 48 db Σύνθεση Χρονικά Μεταβαλλόμενης Κυματομορφής Μέχρι τώρα είδαμε πώς δημιουργούμε ένα ημιτονοειδές κύμα καθορισμένης κυματομορφής σε μία συγκεκριμένη συχνότητα και ένα συγκεκριμένο πλάτος. Για τη δημιουργία ήχων που να έχουν μουσικό ενδιαφέρον χρειαζόμαστε χρονικά μεταβαλλόμενες κυματομορφές (time-varying waveforms) που προκύπτουν από την μεταβολή μιας παραμέτρου σύνθεσης κατά τη διάρκεια ενός ηχητικού γεγονότος. Για τη δημιουργία χρονικά μεταβαλλόμενων κυματομορφών χρειαζόμαστε όργανα σύνθεσης που να μπορούν να ελεγχθούν από περιβάλλουσες (envelopes), δηλαδή χρονικές συναρτήσεις. Για παράδειγμα, αν το πλάτος ενός ήχου αλλάζει κατά τη διάρκειά του, η καμπύλη που ακολουθεί το πλάτος καλείται περιβάλλουσα πλάτους (amplitude envelope). Ένας γενικός τρόπος να σχεδιάσουμε ένα όργανο σύνθεσης είναι να το φανταστούμε ως ένα αρθρωτό σύστημα (modular system) που περιέχει έναν αριθμό εξειδικευμένων μονάδων επεξεργασίας σήματος που μαζί δημιουργούν ένα χρονικά μεταβαλλόμενο ήχο. Το δομικό στοιχείο είναι θεμελιώδης έννοια στη ψηφιακή σύνθεση ήχου. Ένα δομικό στοιχείο είναι είτε μία γεννήτρια σήματος είτε ένας διαμορφωτής σήματος. Μία γεννήτρια σήματος σελίδα 15

26 Έλεγχος Μουσικών Παραμέτρων μέσω Video (όπως ένας ταλαντωτής) συνθέτει σήματα όπως οι μουσικές κυματομορφές και οι περιβάλλουσες. Ένας διαμορφωτής σήματος (όπως ένα φίλτρο) παίρνει ένα σήμα ως είσοδο και το τροποποιεί με κάποιο τρόπο. Για τη δημιουργία ενός οργάνου σύνθεσης ήχου, διασυνδέουμε έναν αριθμό δομικών στοιχείων και δημιουργούμε ένα patch. Ο όρος αυτός προκύπτει από τους παλιούς αναλογικούς synthesizers στους οποίους οι ηχητικές μονάδες διασυνδέονταν με μικρά καλώδια, τα patch cords. Φυσικά σε ένα πρόγραμμα λογισμικού που συνθέτει ήχους, οι διασυνδέσεις γίνονται όλες μέσω του υπολογιστή. Όταν ένα δομικό στοιχείο δημιουργεί έναν αριθμό στην έξοδό του, αυτός ο αριθμός γίνεται η είσοδος του δομικού στοιχείου με το οποίο συνδέεται. Εικόνα 2.5: Γράφημα μιας απλής περιβάλλουσας πλάτους ADSR που δείχνει τον τρόπο με τον οποίο μεταβάλλεται το πλάτος στη διάρκεια μιας νότας. Για την αναπαράσταση των δομικών στοιχείων και των διασυνδέσεων μεταξύ τους χρησιμοποιούμε ένα γραφικό συμβολισμό. Για κάθε κατηγορία δομικών στοιχείων υπάρχει ένα μοναδικό σύμβολο. Η εικόνα 2.4 δείχνει τον γραφικό συμβολισμό για έναν ταλαντωτή διαβάσματος πίνακα (osc), μία βασική γεννήτρια σήματος. Δέχεται τρεις εισόδους, πλάτος (amplitude), συχνότητα (frequency) και κυματομορφή (waveform), και παράγει μία έξοδο (ένα σήμα). Ο ταλαντωτής διαβάζει από μία απλή κυματομορφή που παραμένει αμετάβλητη. Αν η είσοδος πλάτους ενός ταλαντωτή τροφοδοτηθεί με ένα σταθερό αριθμό (ας πούμε 1.0), το συνολικό πλάτος της κυματομορφής είναι σταθερό κατά τη διάρκεια ενός ηχητικού γεγονότος (μία νότα). Αντίθετα, οι πιο ενδιαφέροντες ήχοι έχουν περιβάλλουσα πλάτους που μεταβάλλεται ως συνάρτηση του χρόνου. Τυπικά, το πλάτος μίας νότας αρχίζει από το 0, φτάνει σε μία μέγιστη τιμή (συνήθως κανονικοποιείται ώστε να μην είναι μεγαλύτερο του 1.0) και εξασθενεί λιγότερο η περισσότερο αργά προς το 0. Ένα κανονικοποιημένο σήμα προβάλλεται σε συγκεκριμένα όρια όπως μεταξύ 0 και 1 για μία περιβάλλουσα ή 1 και 1 για τα άλλα κύματα. Οι εμπορικοί αναλογικοί synthesizers συνήθως χρησιμοποιούσαν περιβάλλουσες 4 σταδίων: σελίδα 16

27 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος μέτωπο (attack), εξασθένηση (decay), διατήρηση (sustain) και αποδέσμευση (release). Το μέτωπο είναι το αρχικό τμήμα μιας περιβάλλουσας. Η εξασθένηση είναι μία μικρή μείωση του πλάτους από το μέγιστο σημείο σε ένα σταθερό επίπεδο. Η διατήρηση αναφέρεται σε μία περίοδο όπου εξαρτάται από τη διάρκεια που το πλήκτρο είναι πατημένο. Το τέλος μιας περιβάλλουσας είναι ή αποδέσμευση. Το πιο συνηθισμένο ακρωνύμιο για μια τέτοια περιβάλλουσα πλάτους είναι ADSR, από τα αρχικά του κάθε σταδίου (εικόνα 2.5). Το όργανο της εικόνας 3 μπορεί να προσαρμοστεί εύκολα για να δημιουργήσει χρονικά μεταβαλλόμενο πλάτος, συνδέοντας μία περιβάλλουσα στην είσοδο πλάτους του ταλαντωτή. Αν καθορίσουμε τη διάρκεια και την καμπύλη της περιβάλλουσας, η περιβάλλουσα θα ελέγχει το πλάτος κάθε νότας. Ο χειροκίνητος σχεδιασμός μιας περιβάλλουσας για κάθε νότα είναι πολύ κουραστική διαδικασία. Αυτό που χρειαζόμαστε είναι μια απλή διαδικασία δημιουργίας μιας περιβάλλουσας που να μπορεί να κλιμακωθεί στη χρονική διάρκεια διάφορων ηχητικών Εικόνα 2.6: Χρονικά μεταβαλλόμενος έλεγχος πλάτους ενός ταλαντωτή. Δύο εναλλακτικές δομές: (α) Η περιβάλλουσα δημιουργείται από έναν ταλαντωτή. (β) Χρήση ειδικής γεννήτριας περιβάλλουσας. γεγονότων. Μία λύση είναι να πάρουμε έναν άλλο ταλαντωτή διαβάσματος πίνακα (env_osc) και να γεμίσουμε τον κυματοπίνακά του (f 1 ) με τιμές από την περιβάλλουσα πλάτους, δηλ. μεταξύ 0 και 1 (εικόνα 2.6α). Αντί να βρίσκει την προσαύξηση από τη συχνότητα, ο ταλαντωτής περιβάλλουσας (envelope oscillator) υπολογίζει την προσαύξηση από την διάρκεια της νότας. Αν για παράδειγμα η διάρκεια της νότας είναι 2 δευτερόλεπτα, η «συχνότητα» του ταλαντωτή περιβάλλουσας είναι 1 κύκλος ανά 2 δευτερόλεπτα ή 0.5 Hz. Έτσι, ο env_osc διαβάζει μόνο μία φορά τον πίνακα πλάτους στη διάρκεια αυτής της περιόδου. Για κάθε δείγμα, ο env_osc παράγει ως έξοδο μία τιμή που βρίσκεται από την αποθηκευμένη περιβάλλουσα. Αυτή η τιμή γίνεται η είσοδος πλάτους του ταλαντωτή osc. Αφού διαβάσει ο osc μία τιμή για το δείγμα από την κυματομορφή του (f 2 ), η τιμή του δείγματος κλιμακώνεται μέσα στον osc σελίδα 17

28 Έλεγχος Μουσικών Παραμέτρων μέσω Video με βάση την είσοδο πλάτους που προέρχεται από τον env_osc. Η εικόνα 2.6α είναι ο τυπικός ορισμός ενός οργάνου με βάση μία γλώσσα σύνθεσης. Η εικόνα 2.6β δείχνει έναν άλλο τρόπο περιγραφής της ίδιας δομής, που είναι περισσότερο κοινή στους synthesizers. Εδώ ο ταλαντωτής περιβάλλουσας αντικαθίσταται από μία γεννήτρια περιβάλλουσας env_gen. Η env_gen δέχεται τη διάρκεια της νότας, το μέγιστο πλάτος και ένα κυματοπίνακα, διαβάζει τον κυματοπίνακα μία φορά στη διάρκεια της νότας και τον φέρνει στο επίπεδο του μέγιστου πλάτους. Μπορούμε επίσης να συνδέσουμε μία γεννήτρια περιβάλλουσας στην είσοδο της συχνότητας του ταλαντωτή osc για να μεταβάλουμε το pitch, όπως στην περίπτωση του vibrato ή του glissando. Γενικά, μπορούμε να διασυνδέσουμε ταλαντωτές και άλλα δομικά στοιχεία με ποικίλους τρόπους και να δημιουργήσουμε διαφορετικούς ήχους όπως περιγράφεται και στα επόμενα κεφάλαια Υλοποίηση Ψηφιακής Σύνθεσης Ήχου Η πιο ακριβής και ευέλικτη προσέγγιση υλοποίησης της ψηφιακής σύνθεσης ήχου είναι η σύνθεση μέσω λογισμικού (software synthesis) σε έναν υπολογιστή γενικού σκοπού. Η σύνθεση μέσω λογισμικού σημαίνει ότι όλοι οι υπολογισμοί που πρέπει να γίνουν για τη δημιουργία μιας ακολουθίας δειγμάτων διεξάγονται από ένα υπολογιστικό πρόγραμμα που μπορεί να αλλάξει με αυθαίρετο τρόπο από τον χρήστη. Ένα παράδειγμα σύνθεσης μέσω λογισμικού είναι οι γλώσσες Music N. Σε αντίθεση με τη σύνθεση μέσω λογισμικού, η σύνθεση μέσω υλικού (hardware synthesis) χρησιμοποιεί ειδικά σχεδιασμένα ηλεκτρονικά κυκλώματα για την διεξαγωγή των απαιτούμενων υπολογισμών. Η σύνθεση μέσω υλικού έχει το πλεονέκτημα της μεγάλης ταχύτητας επεξεργασίας και της λειτουργίας σε πραγματικό χρόνο αλλά η ευελιξία και το μέγεθος του αλγόριθμου σύνθεσης περιορίζεται από την καθορισμένη σχεδίαση του συγκεκριμένου υλικού. Ένα τυπικό παράδειγμα της σύνθεσης μέσω υλικού είναι ένας κοινός εμπορικός synthesizer. Τα συγκεκριμένα ηλεκτρονικά κυκλώματα που τον αποτελούν συνήθως δεν μπορούν να χρησιμοποιηθούν για την υλοποίηση ενός άλλου αλγορίθμου σύνθεσης που χρησιμοποιεί μία αντίπαλη εταιρεία. Σε κάθε περίπτωση, όλες οι πρωτοπόρες ερευνητικές εργασίες στην υπολογιστική μουσική έγιναν μέσω σύνθεσης λογισμικού. Σήμερα, υπάρχει μεγάλη ποικιλία καλών προγραμμάτων σύνθεσης ήχου που τρέχουν σε φτηνούς οικιακούς υπολογιστές. Ένα μεγάλο πλεονέκτημα της σύνθεσης μέσω λογισμικού είναι ότι μπορεί να υλοποιήσει οποιαδήποτε μέθοδο σύνθεσης σε ένα μικρό υπολογιστή, δεδομένου όμως ότι η επεξεργασία τις περισσότερες φορές δεν θα είναι πραγματικού χρόνου. Τα σύγχρονα προγράμματα σύνθεσης μέσω λογισμικού μπορούν να χωριστούν σε δύο κατηγορίες: 1. Γραφικοί επεξεργαστές οργάνων (graphical instrument editors): Ο μουσικός δημι- σελίδα 18

29 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος ουργεί δικά του όργανα σύνθεσης (patches) διασυνδέοντας εικονίδια με γραφικό τρόπο στην οθόνη του υπολογιστή. Κάθε εικονίδιο αντιστοιχεί σε ένα δομικό στοιχείο. Ένα πολύ γνωστό πρόγραμμα αυτής της κατηγορίας είναι το Reaktor [3]. 2. Γλώσσες σύνθεσης (synthesis languages): Ο μουσικός καθορίζει τους παραγόμενους ήχους γράφοντας προγράμματα σε μία ειδική γλώσσα προγραμματισμού. Μία πολύ γνωστή τέτοια γλώσσα προγραμματισμού είναι η Csound [4] Αφαιρετική Σύνθεση Ψηφιακά Φίλτρα Εισαγωγή Η αφαιρετική σύνθεση βασίζεται στη χρήση των φίλτρων (filters) για τη διαμόρφωση του φάσματος μιας πηγής ήχου. Καθώς το σήμα της πηγής περνά δια μέσω ενός φίλτρου, το φίλτρο ενισχύει ή εξασθενεί επιλεγμένες περιοχές του φάσματος συχνοτήτων. Αν το αρχικό σήμα είναι φασματικά πλούσιο και το φίλτρο είναι ευέλικτο, η αφαιρετική σύνθεση μπορεί να δημιουργήσει κοντινές προσεγγίσεις πολλών φυσικών ήχων (όπως η ανθρώπινη φωνή και τα παραδοσιακά ακουστικά όργανα) καθώς και μια μεγάλη ποικιλία νέων συνθετικών ηχοχρωμάτων. Ένας από τους βασικούς τρόπους να χαρακτηρίσουμε τα διάφορα είδη φίλτρων είναι να σχεδιάσουμε την καμπύλη απόκρισης πλάτους ως προς τη συχνότητα (amplitude-versusfrequency response curve). Οι προδιαγραφές μιας ηχητικής συσκευής συνήθως περιέχουν την απόκριση συχνότητας (frequency response). Αυτός ο όρος είναι μια συντομογραφία της απόκρισης πλάτους ως προς τη συχνότητα. Η πιο ακριβής απόκριση συχνότητας είναι μία ευθεία γραμμή που υποδεικνύει γραμμικό ή επίπεδο πλάτος σε όλο το φάσμα συχνοτήτων. Αυτό σημαίνει ότι οποιαδήποτε συχνότητα μέσα στο εύρος της ηχητικής συσκευής περνά χωρίς καμία ενίσχυση ή εξασθένηση. Η εικόνα 2.7α δείχνει μία σχεδόν επίπεδη απόκριση συχνότητας, τυπική σε υψηλής ποιότητας ηχητικά συστήματα. Εδώ φαίνεται ένα αυθαίρετο πάνω όριο στα 25 KHz. Για υψηλής ποιότητας αναλογικά ηχητικά συστήματα, όπως οι προενισχυτές και οι ενισχυτές, η απόκριση συχνότητας μπορεί να επεκτείνεται μέχρι τα 100 KHz. Τα όρια συχνότητας ενός ψηφιακού ηχητικού συστήματος εξαρτώνται από την συχνότητα δειγματοληψίας (θεώρημα δειγματοληψίας). Οι κοινές πρακτικές συσκευές δεν έχουν επίπεδη απόκριση συχνότητας. Η εικόνα 2.7β δείχνει την απόκριση συχνότητας ενός μικρού ηχείου. Αυτή η απόκριση συχνότητας μπορεί να περιγραφεί ως εξής: +3 έως -2,5 db από τα 100 Hz μέχρι τα 16 KHz. Αυτό σημαίνει ότι το ηχείο ενισχύει κάποιες συχνότητες μέχρι 3 db και εξασθενεί κάποιες άλλες συχνότητες μέχρι 2,5 db στο διάστημα αυτό. Κάτω από τα 100 Hz και πάνω από τα 16 KHz η απόκριση πέφτει απότομα. Εφόσον μεταβάλλει το φάσμα του σήματος που περνά μέσα από αυτό, το ηχείο αυτό ενεργεί ως φίλτρο. σελίδα 19

30 Έλεγχος Μουσικών Παραμέτρων μέσω Video Εικόνα 2.7: Απόκριση πλάτους προς συχνότητα ή απόκριση συχνότητας. Ο κάθετος άξονας είναι πλάτος σε decibels και ο οριζόντιος συχνότητα σε Hz. (a) Σχεδόν επίπεδη απόκριση. (b) Μη-γραμμική απόκριση. Κάθε τύπος φίλτρου έχει τη δική του χαρακτηριστική καμπύλη απόκρισης συχνότητας. Στην εικόνα 2.8 φαίνονται τυπικές καμπύλες απόκρισης συχνότητας για τέσσερα βασικά είδη φίλτρων: τα χαμηλοπερατά (lowpass), τα υψηλοπερατά (highpass), τα ελεύθερης ζώνης (bandpass) και τα απόρριψης ζώνης (bandreject ή notch). Ένα χαμηλοπερατό φίλτρο επιτρέπει την διέλευση μόνο σε χαμηλές συχνότητες. Αντίθετα, ένα υψηλοπερατό φίλτρο επιτρέπει τη διέλευση μόνο σε υψηλές συχνότητες. Ένα φίλτρο ελεύθερης ζώνης επιτρέπει την διέλευση μιας ζώνης συχνοτήτων απορρίπτοντας τις συχνότητες δεξιά και αριστερά αυτής της ζώνης. Αντίθετα, ένα φίλτρο απόρριψης ζώνης δεν επιτρέπει τη διέλευση μόνο σε μία ζώνη συχνοτήτων. σελίδα 20

31 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Εικόνα 2.8: Τέσσερις κοινοί τύποι φίλτρων Ιδιότητες των Φίλτρων Μία βασική ιδιότητα ενός φίλτρου είναι η συχνότητα αποκοπής του (cutoff frequency). Οι συχνότητα αποκοπής του χαμηλοπερατού και του υψηλοπερατού φίλτρου φαίνονται 2.8. στην εικόνα Κατά σύμβαση, η συχνότητα αποκοπής είναι το σημείο συχνότητας όπου το φίλτρο εξασθενεί το σήμα στο μισό της μέγιστης ισχύος του ή στο 0,707 της μέγιστης τιμής του πλάτους του. Γιατί 0,707; Η ισχύς του σήματος είναι ανάλογη με το τετράγωνο του πλάτους. Επομένως, εφόσον στη συχνότητα αποκοπής η ισχύς είναι η μισή της μέγιστης ισχύος το πλάτος είναι 0,707 του μέγιστου πλάτους (0,5 = 0,7072). Έτσι, το σημείο της συχνότητας αποκοπής λέγεται και σημείο μισής ισχύος (half-power point). Επίσης, επειδή το 0,707 ως προς το 1 είναι περίπου 3 db η συχνότητα αποκοπής λέγεται και σημείο των 3 db. Οι συχνοτικές συνιστώσες που εξασθενούν κάτω από το σημείο μισής ισχύος ενός φίλτρου ανήκουν στην ζώνη απόρριψης (stopband) του φίλτρου. Οι συχνότητες πάνω από το σημείο μισής ισχύος ανήκουν στην ζώνη διέλευσης (passband) του φίλτρου. Η διαφορά μεταξύ της υψηλότερης και της χαμηλότερης συχνότητας αποκοπής ενός φίλτρου ελεύθερης ζώνης εί- σελίδα 21

32 Έλεγχος Μουσικών Παραμέτρων μέσω Video ναι το εύρος ζώνης (bandwidth) του φίλτρου. Η κεντρική συχνότητα ενός φίλτρου ελεύθερης ζώνης είναι το σημείο του μέγιστου πλάτους. Η κεντρική συχνότητα ενός φίλτρου απόρριψης ζώνης είναι το σημείο του ελάχιστου πλάτους. Σε ένα ιδεατό φίλτρο, η συχνότητα αποκοπής είναι ένα καλά ορισμένο διαχωριστικό σημείο. Ο,τιδήποτε κάτω από αυτή εξασθενεί, και διαχωρίζει ξεκάθαρα την απόκριση συχνότητας σε μία ζώνη διέλευσης και μία ζώνη απόρριψης (εικόνα 2.9α). Σε πραγματικά φίλτρα (εικόνα 2.9β), η κλίση του φίλτρου δεν είναι τόσο απότομη και η περιοχή μεταξύ της ζώνης διέλευσης και της ζώνης αποκοπής ονομάζεται ζώνη μετάβασης (transition band). Εικόνα 2.9: Κλίση φίλτρων. (a) σε ένα ιδεατό φίλτρο η κλίση αποκοπής είναι κάθετη. (b) Σε ένα πραγματικό φίλτρο η κλίση είναι πιο ομαλή Η κλίση ενός φίλτρου συνήθως εκφράζεται σε decibels εξασθένησης ή ενίσχυσης ανά οκτάβα (db/οκτάβα). Για παράδειγμα, κλίση 6 db/οκτάβα ενός χαμηλοπερατού φίλτρου δημιουργεί μία ομαλή εξασθένηση, ενώ κλίση 24 db/οκτάβα δημιουργεί απότομη αποκοπή (εικόνα 2.10). Η χρήση ομαλού ή απότομου φίλτρου εξαρτάται από την notch περίπτωση. Για παράδειγμα ένα απότομο φίλτρο μπορεί να χρειάζεται για να απορρίψει έναν τόνο γύρω από μία κεντρική συχνότητα, ενώ ένα ομαλό χαμηλοπερατό φίλτρο μπορεί να είναι ο πιο διακριτικός τρόπος εξασθένησης του θορύβου στις υψηλές συχνότητες. σελίδα 22

33 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Εικόνα 2.10: Κλίσεις φίλτρων. (a) Ομαλή κλίση. (b) Απότομη κλίση. Πολλά φίλτρα έχουν έναν ποτενσιόμετρο ελέγχου (είτε σε μορφή λογισμικού είτε σε μορφή hardware) για το Q. Ένας τρόπος ορισμού του Q είναι ότι αναπαριστά το βαθμό συντονισμού (degree of resonance) του φίλτρου. Η εικόνα 2.11 δείχνει ένα φίλτρο ελεύθερης ζώνης για διάφορες τιμές του Q. Όταν το Q είναι υψηλό, όπως στην πιο στενή εσωτερική καμπύλη, η απόκριση συχνότητας περιορίζεται γύρω από μία συχνότητα συντονισμού. Αν ένα φίλτρο υψηλού Q διεγείρεται από ένα σήμα κοντά στη κεντρική συχνότητά του, το φίλτρο συντονίζεται στη συχνότητα συντονισμού, δηλαδή αυτο-ταλαντεύεται για κάποια ώρα μετά τη διέλευση του σήματος. Το Q μπορεί να οριστεί επακριβώς για ένα φίλτρο ελεύθερης ζώνης ως ο λόγος της κεντρικής συχνότητας ως προς το εύρος ζώνης μεταξύ των σημείων 3 db (σημεία αποκοπής): Q = f κεντρική / (f υψηλής_αποκοπής f χαμηλης_αποκοπής ) όπου f κεντρική είναι η κεντρική συχνότητα του φίλτρου, f υψηλής_αποκοπής είναι το πάνω σημείο 3 db και f χαμηλης_αποκοπής είναι το κάτω σημείο 3 db. Για παράδειγμα, αν έχουμε ένα φίλτρο με κεντρική συχνότητα Hz και σημεία 3 db στα και Hz, το Q του φίλτρου είναι σελίδα 23

34 Έλεγχος Μουσικών Παραμέτρων μέσω Video 2.000/( ) = 5. Φίλτρα με υψηλό βαθμό συντονισμού όπως αυτό είναι χρήσιμα για τη δημιουργία ήχων κρουστών. Να σημειωθεί ότι όταν η κεντρική συχνότητα είναι σταθερή, ο καθορισμός του Q ρυθμίζει και το εύρος ζώνης. Εικόνα 2.11: Απόκριση συχνότητας φίλτρου για διάφορες τιμές του Q. Υψηλό Q αντιστοιχεί σε στενό εύρος ζώνης. Η απολαβή (το ύψος της καμπύλης) και η κεντρική συχνότητα είναι σταθερές. Μία άλλη ιδιότητα ενός φίλτρου ελεύθερης ζώνης ή απόρριψης ζώνης είναι η απολαβή (gain) του. Η απολαβή είναι ο βαθμός ενίσχυσης ή εξασθένησης μιας ζώνης συχνοτήτων. Στην καμπύλη απόκρισης συχνότητας, είναι το ύψος ή το βάθος της ζώνης συχνοτήτων (εικόνα 2.12). Όταν ένα σήμα περνά από ένα σήμα υψηλού Q, πρέπει να διασφαλιστεί ότι η απολαβή στη συχνότητα συντονισμού (το ύψος της κορυφής) δεν υπερφορτώνει το σύστημα, προκαλώντας παραμόρφωση. Πολλά συστήματα έχουν κυκλώματα επανόρθωσης απολαβής (gaincompensation) στα φίλτρα τους για να αποφύγουν αυτό το είδος της υπερφόρτωσης. Ένας ειδικός τύπος ενός φίλτρου ελεύθερης ζώνης καλείται φίλτρο σταθερού Q. Για τη διατήρηση μιας καθορισμένης τιμής Q, ένα φίλτρο σταθερού Q πρέπει να μεταβάλει το εύρος ζώνης του ως συνάρτηση της κεντρικής του συχνότητας. Για παράδειγμα, όταν η κεντρική συχνότητα είναι 30 Hz και το Q είναι 1,5, το εύρος ζώνης είναι 20 Hz, επειδή 30/20 = 1,5. Εικόνα 2.12: Διάφορες τιμές απολαβής στο ίδιο φίλτρο. Το εύρος ζώνης και το Q παραμένουν σταθερά. σελίδα 24

35 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Εικόνα 2.13: Τα ίδια φίλτρα σταθερού Q σε (a) γραμμική και (b) λογαριθμική κλίμακα. Όμως, αν ρυθμίσουμε το φίλτρο στα 9 KHz και διατηρήσουμε το Q σταθερό στο 1,5, τότε το εύρος ζώνης πρέπει να είναι 6 ΚΗz. Η εικόνα 2.13 δείχνει την καμπύλη δύο φίλτρων σταθερού Q σε γραμμική και λογαριθμική κλίμακα συχνοτήτων. Στη γραμμική κλίμακα (εικόνα 2.13α) το φίλτρο με κεντρική συχνότητα τα 30 Hz φαίνεται ως μία πολύ στενή ζώνη ενώ το φίλτρο με κεντρική συχνότητα τα 9 ΚΗz φαίνεται να έχει πολύ πιο ευρεία καμπύλη. Σε λογαριθμική κλίμακα τα δύο φίλτρα έχουν το ίδιο σχήμα (εικόνα 2.13β). Επομένως, ένα φίλτρο σταθερού Q έχει την ιδιότητα να μην αλλάζει το διάστημα των μουσικών συχνοτήτων στις οποίες επιτρέπει τη διέλευση όταν αλλάζει η κεντρική του συχνότητα Τράπεζες Φίλτρων και Ισοσταθμιστές Μία τράπεζα φίλτρων (filter bank) είναι μία ομάδα φίλτρων που τροφοδοτούνται με το (εικόνα 2.14) ίδιο σήμα παράλληλα. Κάθε φίλτρο είναι ελεύθερης ζώνης με στενό εύρος ζώνης ρυθμισμένο σε μία συγκεκριμένη κεντρική συχνότητα. Τα φιλτραρισμένα σήματα συχνά συνδυάζονται για να σχηματίσουν τον ήχο εξόδου. Όταν κάθε φίλτρο έχει το δικό του ελεγκτή απολαβής (επιπέδου), η τράπεζα φίλτρων καλείται διαμορφωτής φάσματος (spectrum shaper) σελίδα 25

36 Έλεγχος Μουσικών Παραμέτρων μέσω Video επειδή οι ανεξάρτητοι ελεγκτές μπορούν να τροποποιήσουν δραστικά Εικόνα 2.14: Ένας διαμορφωτής φάσματος δέκα σταδίων με ένα ποτενσιόμετρο ελέγχου (για ενίσχυση ή εξασθένηση) συνδεδεμένο με κάθε συχνοτική ζώνη. το φάσμα του σήματος εισόδου. Ένας διαμορφωτής φάσματος μπορεί να χρησιμοποιηθεί για την ενίσχυση συγκεκριμένων περιοχών συχνοτήτων και να απαλείψει άλλες περιοχές συχνοτήτων. Ένας άλλος όρος για τον διαμορφωτή φάσματος είναι ισοσταθμιστής (equalizer) και η ενέργεια που εκτελεί ονομάζεται ισοστάθμιση. Ένας γραφικός ισοσταθμιστής (graphic equalizer) αποτελείται από μία σειρά φίλτρων, καθένα από τα οποία έχει καθορισμένη κεντρική συχνότητα, καθορισμένο εύρος ζώνης και καθορισμένο Q. Η απόκριση του κάθε φίλτρου μπορεί να μεταβληθεί με ένα γραμμικό ποτενσιόμετρο για την ενίσχυση ή την εξασθένηση συγκεκριμένων ζωνών συχνοτήτων (εικόνα 2.15α). Η απόκριση συχνότητας μιας τέτοιας ομάδας φίλτρων φαίνεται στην εικόνα 2.15β. Ένας παραμετρικός ισοσταθμιστής (parametric equalizer) περιέχει μικρότερο αριθμό φίλτρων, αλλά ο έλεγχος του κάθε φίλτρου είναι πιο ευέλικτος. Μία τυπική διάταξη είναι τρία ή τέσσερα παράλληλα φίλτρα. Οι χρήστες μπορούν να ρυθμίσουν ανεξάρτητα την κεντρική συχνότητα, το Q, και την απολαβή του κάθε φίλτρου. Ένας ημι-παραμετρικός (semiparametric) ισοσταθμιστής έχει καθορισμένο Q. σελίδα 26

37 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Εικόνα 2.15: Γραφικός ισοσταθμιστής. (α) Γραφικός ισοσταθμιστής εφτά ζωνών με γραμμικά ποτενσιόμετρα που τίθενται σε αυθαίρετα επίπεδα απολαβής. (β) Η απόκριση συχνότητας ενός γραφικού ισοσταθμιστή εφτά ζωνών Υλοποίηση Ψηφιακών Φίλτρων Κάθε ψηφιακή συσκευή με μία είσοδο και μία έξοδο είναι ένα φίλτρο. Η πιο συχνή χρήση του όρου αναφέρεται σε συσκευές που ενισχύουν ή εξασθενούν περιοχές του ηχητικού φάσμα- σελίδα 27

38 Έλεγχος Μουσικών Παραμέτρων μέσω Video τος. Υπάρχουν πολλοί τρόποι για την αναπαράσταση της λειτουργίας των φίλτρων. Είδαμε ήδη την απόκριση συχνότητας. Ο πιο αναλυτικός μαθηματικός τρόπος είναι να χρησιμοποιήσουμε τον μετασχηματισμό z (z transform) που χρησιμοποιείται από τους μηχανικούς σχεδίασης φίλτρων. Ο μετασχηματισμός-z ενός σήματος x(n) διακριτού χρόνου ορίζεται ως: όπου z μια μιγαδική μεταβλητή. X(n) = ( x(n) z n ) Μπορούμε να δούμε τα αποτελέσματα ενός φίλτρου είτε στο πεδίο του χρόνου είτε στο πεδίο της συχνότητας. Εικόνες του σήματος πριν και μετά την εφαρμογή του φίλτρου αποκαλύπτουν την επίδραση του φίλτρου (εικόνα 2.16). Φυσικά μερικά σήματα εισόδου αποκαλύπτουν την επίδραση του φίλτρου καλύτερα από άλλα. Υπάρχει όμως ένα ιδανικό σήμα εισόδου που να αποκαλύπτει τα χαρακτηριστικά της απόκρισης όλων των φίλτρων; Για να ελέγξουμε λεπτομερώς ένα φίλτρο χρειαζόμαστε ένα σήμα που να περιέχει όλες τις συχνότητες. Ο λευκός θόρυβος που περιέχει όλες τις συχνότητες θα μας πει πώς αποκρίνεται το φίλτρο στο πεδίο της συχνότητας. Αλλά μία εξίσου σημαντική παράμετρος είναι η απόκριση ενός φίλτρου σε απότομες μεταβατικές καταστάσεις (transients). Γι αυτό χρειαζόμαστε ένα μέτρο σύγκρισης στο πεδίο του χρόνου. Όπως έχει αποδείξει ο Γάλλος μαθηματικός Fourier τον 18ο αιώνα, υπάρχει μία αντίστροφη σχέση μεταξύ της διάρκειας ενός σήματος και του συχνοτικού του περιεχομένου. Ένα ημιτονοειδές κύμα αόριστης διάρκειας εκφράζει μόνο μία συχνότητα. Αν περιορίσουμε τη διάρκεια του ημιτονοειδούς σήματος, το φάσμα του γίνεται όλο και πιο περίπλοκο. Δηλαδή, πρέπει να προσθέσουμε όλο και περισσότερα ημιτονοειδή σήματα, τα οποία τελικά ακυρώνουν το ένα το άλλο για να δημιουργήσουν ένα σήμα μικρής διάρκειας. Έτσι, όσο μικρότερο ένα σήμα, τόσο πιο πλούσιο το φάσμα του. Σε ένα ψηφιακό σύστημα, το πιο σύντομο δυνατό σήμα διαρκεί ένα μόνο δείγμα. Αυτό το σήμα περιέχει ενέργεια σε όλες τις συχνότητες που μπορούν να αναπαρασταθούν με βάση τη δεδομένη συχνότητα δειγματοληψίας. Επομένως, ένας γενικός τρόπος να χαρακτηρίσουμε ένα φίλτρο είναι να δούμε την απόκρισή του σε ένα παλμό ενός δείγματος. Το σήμα εξόδου που δημιουργείται από ένα φίλτρο που τροφοδοτείται με ένα μοναδιαίο παλμό καλείται παλμική απόκριση (impulse response, IR) του φίλτρου. Η παλμική απόκριση ανταποκρίνεται επακριβώς στην απόκριση πλάτους προς συχνότητα του συστήματος. Η παλμική απόκριση και η απόκριση συχνότητας περιέχουν την ίδια πληροφορία αλλά σε διαφορετικό πεδίο. Δηλαδή, η παλμική απόκριση είναι μία αναπαράσταση στο πεδίο του χρόνου ενώ η απόκριση συχνότητας είναι μία αναπαράσταση στο πεδίο της συχνότητας. Τα δύο αυτά πεδία μπορούν να επικοινωνήσουν μέσω της συνέλιξης (cοnvolution). σελίδα 28

39 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Εικόνα 2.16: Το αποτέλεσμα ενός. χαμηλοπερατού εξασθενητικού φίλτρου στο πεδίο του χρόνου και της συχνότητας. (a) Τμήμα του σήματος εισόδου. (b) Το ίδιο σήμα μετά το πέρασμά του από το φίλτρο. Η εικόνα 2.17α δείχνει πώς ένα απότομο ενισχυτικό φίλτρο παρατείνει την ενέργεια σε έναν παλμό. Γενικά, μία μεγάλη σε διάρκεια παλμική απόκριση αντιστοιχεί σε μία στενή απόκριση συχνότητας. Απ την άλλη, σύντομη παλμική απόκριση αντιστοιχεί σε ευρεία, ομαλή απόκριση συχνότητας. Η εικόνα 2.17β παρουσιάζει το αποτέλεσμα ενός ομαλού χαμηλοπερατού φίλτρου. σελίδα 29

40 Έλεγχος Μουσικών Παραμέτρων μέσω Video Εικόνα 2.17: Απόκριση φίλτρων σε παλμούς. (α) Ενισχυτικό φίλτρο ελεύθερης ζώνης. Στα αριστερά η κάθετη γραμμή υποδεικνύει τον παλμό. Στα δεξιά ο ίδιος παλμός (+24 db, 200 Hz) μετά την έξοδό του από το φίλτρο (εύρος ζώνης 20 Hz). (β) Χαμηλοπερατό φίλτρο. Αποκοπή 15 db στο 1 KHz. Ένα άλλο χαρακτηριστικό των φίλτρων είναι το αποτέλεσμά τους στη φάση των ημιτονοειδών σημάτων. Η απόκριση φάσης (phase response) ενός φίλτρου δείχνει την μετατόπιση φάσης σε ακτίνια (radians) για κάθε ημιτονοειδή συνιστώσα του σήματος εισόδου. Ίσως μία καλύτερη αναπαράσταση είναι η καθυστέρηση φάσης (phase delay), που δείχνει τη μετατόπιση φάσης ως χρονική καθυστέρηση (σε δευτερόλεπτα) για κάθε ημιτονοειδή συνιστώσα με την οποία τροφοδοτείται το φίλτρο. Εκτός από τον έλεγχο των εικόνων των παλμικών αποκρίσεων, μπορούμε να περιγράψουμε ένα ψηφιακό φίλτρο ως μία εξίσωση που σχετίζει το σήμα εισόδου με το σήμα εξόδου. Η έξοδος του φίλτρου περιγράφεται ως το αποτέλεσμα προσθέσεων, αφαιρέσεων και πολλαπλασιασμών του τρέχοντος δείγματος και των προηγούμενων δειγμάτων εισόδου. Ο τεχνικός όρος για μια τέτοια εξίσωση είναι γραμμική διαφορική εξίσωση (linear difference equation). Στη βιβλιογραφία επεξεργασίας σήματος, το σήμα εισόδου με το οποίο τροφοδοτείται το φίλτρο κατά σύμβαση καλείται x, και το σήμα εξόδου y. Τα δείγματα εισόδου και εξόδου σελίδα 30

41 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος αριθμούνται και δεικτοποιούνται. Έτσι, το πρώτο δείγμα εισόδου συμβολίζεται ως x 0, το επόμενο δείγμα ως x 1 και το δείγμα μία χρονική στιγμή n ως x n. Ένα φίλτρο μπορεί να υλοποιηθεί με ένα από τους παρακάτω τρόπους: Καθυστερώντας ένα αντίγραφο του σήματος εισόδου κατά λίγο (κατά ένα ή μερικά δείγματα) και συνδυάζοντας το καθυστερημένο σήμα εισόδου με το νέο σήμα εισόδου (εικόνα 2.18α). Τα φίλτρα αυτά ονομάζονται πεπερασμένης παλμικής απόκρισης (finite impulse response, FIR). Καθυστερώντας ένα αντίγραφο του σήματος εξόδου και συνδυάζοντάς το με το σήμα εισόδου (εικόνα 2.18β). Τα φίλτρα αυτά ονομάζονται μη-πεπερασμένης παλμικής απόκρισης (infinite impulse response, ΙIR). Εικόνα 2.18: Υλοποίηση φίλτρων. (a) Φίλτρο πεπερασμένης παλμικής απόκρισης. (b) Φίλτρο μη-πεπερασμένης παλμικής απόκρισης Φίλτρα Πεπερασμένης Παλμικής Απόκρισης Ένα απλό χαμηλοπερατό φίλτρο προσθέτει στην τιμή του τρέχοντος δείγματος εισόδου την τιμή του προηγούμενου δείγματος εισόδου και το διαιρεί δια δύο (μέσος όρος των δύο δειγμάτων). Ένα τέτοιο φίλτρο τείνει να εξομαλύνει τις απότομες μεταβολές στο σήμα εισόδου. Τέτοιες απότομες αλλαγές αναπαριστούν συνιστώσες υψηλών συχνοτήτων. Η εξίσωση για σελίδα 31

42 Έλεγχος Μουσικών Παραμέτρων μέσω Video αυτό το φίλτρο είναι ως εξής: y n = (0,5 x n ) + (0,5 x n-1 ) Οι σταθεροί συντελεστές (0,5) σε αυτήν την έκφραση καλούνται συντελεστές φίλτρου. Η εικόνα 2.19 δείχνει το κύκλωμα που υλοποιεί αυτήν την εξίσωση. Στο κύκλωμα αυτό, τα βέλη υποδεικνύουν ροή του σήματος, οι γραμμές χωρίς βέλη υποδεικνύουν εισόδους συντελεστών, ο μικρός μαύρος κύκλος σημαίνει διακλάδωση, όπου ένα σήμα Εικόνα 2.19: Κύκλωμα ενός απλού χαμηλοπερατού φίλτρου. Εικόνα 2.20: Απόκριση συχνότητας ενός απλού χαμηλοπερατού φίλτρου (SR: συχνότητα δειγματοληψίας). σελίδα 32

43 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος διακλαδώνεται σε δύο διαφορετικές κατευθύνσεις, το σήμα Χ υποδεικνύει πολλαπλασιασμό και το σύμβολο Δ υποδεικνύει καθυστέρηση ενός δείγματος. Η εικόνα 2.20 δείχνει την απόκριση συχνότητας του φίλτρου, η οποία μοιάζει με το πρώτο τέταρτο ενός συνημιτονοειδούς σήματος. Αν υπολογίσουμε τον μέσο όρο περισσότερων από δύο δειγμάτων, οι υψηλές συχνότητες εξασθενούν περισσότερο. Ο υπολογισμός του μέσου όρου διάφορων δειγμάτων είναι ισοδύναμος με την σύνδεση δύο ή περισσότερων απλών φίλτρων σε σειρά. Τώρα, ας δούμε ένα απλό υψηλοπερατό φίλτρο που εξασθενεί τις χαμηλές συχνότητες. Αυτό το φίλτρο αφαιρεί δείγματα αντί να τα προσθέτει. Δηλαδή, υπολογίζει τη διαφορά μεταξύ δύο διαδοχικών δειγμάτων: y n = (0,5 x n ) (0,5 x n-1 ) Ένα υψηλοπερατό φίλτρο εξασθενεί τις χαμηλές συχνότητες, όπου η διαφορά μεταξύ των δειγμάτων είναι μικρή και επιτρέπει τη διέλευση στις υψηλές συχνότητες όπου οι διαφορές μεταξύ διαδοχικών δειγμάτων είναι μεγάλες. Η εικόνα 2.21 δείχνει το κύκλωμα που υλοποιεί το φίλτρο και η εικόνα 2.22 την απόκριση συχνότητας του φίλτρου. Εικόνα 2.21: Κύκλωμα ενός απλού υψηλοπερατού φίλτρου. Για να κάνουμε αυτό το φίλτρο (ή το προηγούμενο χαμηλοπερατό φίλτρο) πιο ευέλικτο, μπορούμε να αντικαταστήσουμε τους σταθερούς συντελεστές με μεταβλητές a 0 και a 1 : y n = (a 0 x n ) (a 1 x n-1 ) Ο συντελεστής με δείκτη 0 υποδεικνύει μη-καθυστερημένο σήμα ενώ ο δείκτης 1 υποδεικνύει καθυστέρηση ενός δείγματος. Αλλάζοντας την τιμή των συντελεστών αλλάζει η απόκριση συχνότητας του φίλτρου. Η γενική εξίσωση για ένα φίλτρο πεπερασμένης παλμικής απόκρισης είναι: y n = (a 0 x n ) + (a 1 x n-1 ) (a i x n-i ) σελίδα 33

44 Έλεγχος Μουσικών Παραμέτρων μέσω Video όπου a i είναι ο τελευταίος συντελεστής και x i το τελευταίο αποθηκευμένο δείγμα. Οι συντελεστές μπορεί να είναι θετικοί ή αρνητικοί, για εφαρμογές χαμηλοπερατών ή υψηλοπερατών φίλτρων, αντίστοιχα. Εικόνα 2.22: Απόκριση συχνότητας ενός απλού υψηλοπερατού φίλτρου. Ένα τέτοιο φίλτρο μπορεί να συνδεθεί με μία γραμμή καθυστέρησης (delay line), μία μονάδα μνήμης που καθυστερεί το σήμα εισόδου κατά i δείγματα. Η μνήμη αυτής της καθυστέρησης είναι πεπερασμένη. Έτσι, η απόκριση του φίλτρου σε ένα σύντομο σήμα (όπως ένας παλμός) πηγαίνει στο 0 μετά από ένα χρονικό διάστημα. Για αυτόν το λόγο, τέτοια φίλτρα καλούνται πεπερασμένης παλμικής απόκρισης. Η εικόνα 2.23 δείχνει τη δομή ενός τέτοιου φίλτρου. Το σήμα εισόδου μπαίνει σε μία γραμμή καθυστέρησης n δειγμάτων. Το φίλτρο πολλαπλασιάζει την είσοδο και όλα τα καθυστερημένα δείγματα με κάποιους συντελεστές και προσθέτει τα γινόμενα για να δημιουργήσει την έξοδο. Ρυθμίζοντας τους συντελεστές, η απόκριση του φίλτρου μπορεί να ελεγχθεί μέχρι το κατώτατο όριο που προκύπτει από τον λόγο της συχνότητας δειγματοληψίας προς τον αριθμό των σταδίων. Για παράδειγμα, σε συχνότητα δειγματοληψίας 44,1 KHz, ένα FIR χαμηλοπερατό φίλτρο 10 σταδίων ελέγχει συχνότητες μέχρι τα Hz. Όσο μεγαλύτερο είναι το μήκος ενός φίλτρου, τόσο πιο στενή η ζώνη μετάβασής του και τόσο πιο απότομη η κλίση αποκοπής (εικόνα 2.24). Όμως, ένα μακρύ φίλτρο απαιτεί περισσότερους υπολογισμούς. σελίδα 34

45 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Εικόνα 2.23: Γενική δομή φίλτρου FIR. Εικόνα 2.24: Απόκριση συχνότητας για δύο φίλτρα FIR διαφορετικού μήκους. (α) Φίλτρο 15 σταδίων. (β) φίλτρο 31 σταδίων. σελίδα 35

46 Έλεγχος Μουσικών Παραμέτρων μέσω Video Φίλτρα Μη-Πεπερασμένης Παλμικής Απόκρισης Αν οδηγήσουμε την έξοδο του φίλτρου πίσω στην είσοδό του, το φίλτρο ελέγχει καλύτερα τα προηγούμενα δείγματα του σήματος απ ότι ένα απλό FIR και με λιγότερους συντελεστές. Λιγότεροι συντελεστές σημαίνει λιγότεροι υπολογισμοί. Ένα φίλτρο που χρησιμοποιεί προηγούμενα δείγματα εξόδου λειτουργεί με ανάδραση (feedback). Επειδή αυτό μπορεί να επαναλαμβάνεται έπ αόριστο, ένα τέτοιο φίλτρο καλείται μη-πεπερασμένης παλμικής απόκρισης (IIR) ή αναδρομικό φίλτρο (recursive filter). Ένα απλό φίλτρο IIR προσθέτει την τρέχουσα είσοδο στην τελευταία έξοδο και διαιρεί δια δύο για να δημιουργήσει το σήμα εξόδου: y n = (0,5 x n ) + (0,5 y n-1 ) Η εικόνα 2.25 παρουσιάζει τη ροή του σήματος του φίλτρου με το μονοπάτι ανάδρασης. Εικόνα 2.25: Κύκλωμα ενός απλού χαμηλοπερατού φίλτρου IIR. Η εικόνα 2.26 παρουσιάζει τη συχνότητα απόκρισης του φίλτρου. Ένα τέτοιο φίλτρο είναι ισοδύναμο με ένα αόριστα μακρύ FIR φίλτρο: y n = (1/2 x n ) + (1/4 x n-1 ) + (1/8 x n-2 ) Όπως και με τα φίλτρα FIR, μπορούμε να αντικαταστήσουμε τους σταθερούς συντελεστές με μεταβλητές: y n = (a x n ) + (b y n-1 ) Εδώ χρησιμοποιούμε το συμβολισμό ότι οι συντελεστές b τροποποιούν το μονοπάτι ανάδρασης. Καθώς αυξάνει το b, η συχνότητα αποκοπής του φίλτρου μικραίνει. Η απόλυτη τιμή του b πρέπει να είναι πάντα μικρότερη του 1 αλλιώς το φίλτρο γίνεται ασταθές. Σε ένα ασταθές φίλτρο, οι τιμές της εξόδου y n γίνονται όλο και μεγαλύτερες δημιουργώντας υπερχείλιση σελίδα 36

47 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος (αριθμούς μεγαλύτερους από αυτούς που μπορούν να χειριστούν οι μετατροπείς) και παραμορφωμένο ήχο. Ένα απλό αναδρομικό υψηλοπερατό φίλτρο αφαιρεί το τρέχον δείγμα εισόδου από το προηγούμενο δείγμα εξόδου και τα διαιρεί δια δύο. Η εικόνα 2.27 δείχνει τη συχνότητα απόκρισης του φίλτρου. Εικόνα 2.26: Απόκριση συχνότητας ενός απλού χαμηλοπερατού φίλτρου IIR. Η εξίσωση του φίλτρου είναι η εξής: y n = (a x n ) (b y n-1 ) όπου a = b = 0,5. Σε αυτήν την περίπτωση, αυξάνοντας το b, αυξάνεται η συχνότητα αποκοπής, εξασθενώντας όλο και περισσότερες χαμηλές συχνότητες. Πιο περίπλοκα φίλτρα IIR μπορούν να σχεδιαστούν περιλαμβάνοντας προηγούμενα δείγματα εισόδου και ανάδραση από προηγούμενα δείγματα εξόδου. Η γενική μορφή ενός φίλτρου IIR είναι ως εξής: y n = (a 0 x n ) (a Μ x n Μ ) + (b 1 y n 1 ) + (b Ν y n Ν ) Καθένας από τους δύο τύπους φίλτρων (FIR και IIR) έχει τα πλεονεκτήματα και τα μειονεκτήματά του. Γενικά, είναι εύκολο να σχεδιάσουμε ένα φίλτρο FIR με γραμμική απόκριση. Συνήθως αυτό είναι καλύτερο στα ηχητικά σήματα γιατί αποφεύγεται η παραμόρφωση φάσης (phase distortion). Επίσης, λόγω του ότι τα φίλτρα FIR δεν έχουν ανάδραση, είναι πάντα πιο σταθερά και δεν οδηγούνται ποτέ σε αυτο-ταλάντωση. Ένα μειονέκτημα των φίλτρων σελίδα 37

48 Έλεγχος Μουσικών Παραμέτρων μέσω Video FIR είναι ότι απαιτούν περισσότερους υπολογισμούς και μνήμη από ότι τα φίλτρα IIR με παρόμοια χαρακτηριστικά. Έτσι, ένα φίλτρο FIR μπορεί να είναι πολύ πιο περίπλοκο σε απαιτήσεις υλικού σε σχέση με ένα φίλτρο IIR που κάνει την ίδια δουλειά. Εικόνα 2.27: Απόκριση συχνότητας ενός απλού υψηλοπερατού φίλτρου IIR. Τα φίλτρα IIR μπορούν να δημιουργήσουν απότομες αποκοπές και ενισχύσεις χρησιμοποιώντας λιγότερους υπολογισμούς από τα φίλτρα FIR. Τα φίλτρα IIR όμως εισάγουν παραμόρφωση φάσης και το φαινόμενο ringing, δηλαδή τη μακροχρόνια απόκριση του φίλτρου σε μία απότομη μεταβολή του σήματος εισόδου. Σε ένα φίλτρο το μέγιστο χρονικό διάστημα για τη δημιουργία κάθε δείγματος εξόδου καλείται τάξη (order) του φίλτρου. Ένα φίλτρο πρώτης τάξης, για παράδειγμα, έχει καθυστέρηση μόνο ενός δείγματος ενώ ένα φίλτρο δεύτερης τάξης περιέχει καθυστέρηση δύο δειγμάτων. Στη σχεδίαση περίπλοκων φίλτρων είναι συνήθης τακτική να χρησιμοποιούνται δίκτυα φίλτρων πρώτης και δεύτερης τάξης, το καθένα από τα οποία είναι σταθερό, παρά να υλοποιούνται μεγάλες και περίπλοκες δομές. Μία δομή τμήματος δεύτερης τάξης IIR (second-order section) είναι ιδιαιτέρως δημοφιλής στα ψηφιακά ηχητικά συστήματα (εικόνα 2.28). Ένα φίλτρο δεύτερης τάξης ελέγχει δύο προηγούμενα δείγματα εξόδου. Ο όρος «τμήμα» σημαίνει ότι αυτό το φίλτρο μπορεί να συνδυαστεί με άλλα παρόμοια για το σχηματισμό πιο περίπλοκων φίλτρων. Πραγματοποιεί απόκριση συχνότητας ελεύθερης ζώνης και έτσι χρησιμοποιείται συχνά ως δομικό στοιχείο παραμετρικών και γραφικών ισοσταθμιστών. Θέτοντας κάποιες παραμέτρους στο μηδέν, μπορεί να μετατραπεί σε χαμηλοπερατό ή υψηλοπερατό φίλτρο. σελίδα 38

49 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Εικόνα 2.28: Γενική μορφή ενός φίλτρου δεύτερης τάξης Άλλα Είδη Φίλτρων Φίλτρα Χτένας Ένα φίλτρο χτένας (comb fliter) δημιουργεί μία σειρά επαναλαμβανόμενων κορυφών και κοιλοτήτων στην απόκριση συχνότητας. Στην εικόνα 2.29 φαίνεται η απόκριση συχνότητας ενός φίλτρου χτένας FIR (2.29α) και ενός φίλτρου χτένας IIR (2.29β). Όπως βλέπετε το σχήμα της απόκρισης συχνότητας δικαιολογεί το όνομά του. Ένα απλό φίλτρο χτένας FIR διακλαδώνει το σήμα εισόδου σε δύο μονοπάτια και εισάγει μία καθυστέρηση πολλαπλών δειγμάτων (μήκους D δειγμάτων) σε ένα από τα μονοπάτια, και στη συνέχεια τα αθροίζει (εικόνα 2.30). Η εξίσωση ενός απλού φίλτρου χτένας FIR είναι ως εξής: y n = x n + x n D Η δομή ενός φίλτρου χτένας FIR είναι παρόμοια με αυτή ενός χαμηλοπερατού φίλτρου FIR. Όμως, εδώ ούτε το πρωτότυπο ούτε το καθυστερημένο σήμα πολλαπλασιάζονται με συντελεστές (αν και θα μπορούσαν). Το πιο σημαντικό όμως είναι ο χρόνος καθυστέρησης D ενός φίλτρου χτένας είναι μεγαλύτερος. Σε συχνότητα δειγματοληψίας 48 KHz, μία καθυστέρηση σελίδα 39

50 Έλεγχος Μουσικών Παραμέτρων μέσω Video ενός δείγματος δημιουργεί αποτέλεσμα ενός ήπιου χαμηλοπερατού φίλτρου. Αυτό συμβαίνει επειδή η καθυστέρηση είναι μόνο 0, δευτερόλεπτα ή περίπου 0,02 msec. Μόνο όταν η καθυστέρηση είναι μεγαλύτερη από 0,1 msec αρχίζει το φίλτρο να δημιουργεί πολλαπλά μηδενικά σημεία (σημεία όπου το πλάτος γίνεται μηδέν) στο φάσμα, εξαιτίας φαινομένων ακύρωσης φάσης. Εικόνα 2.29: Απόκριση συχνότητας φίλτρων χτένας. (a) FIR. (b). IIR. Εικόνα 2.30: Κύκλωμα απλού φίλτρου χτένας FIR. Πιο συγκεκριμένα, το αποτέλεσμα της απόκρισης συχνότητας που μοιάζει με χτένα οφείλεται σελίδα 40

51 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος σε διαδοχική ακύρωση και ενίσχυση φάσης μεταξύ του καθυστερημένου και του μη-καθυστερημένου σήματος. Αν το πρωτότυπο και το καθυστερημένο σήμα προστεθούν, το φίλτρο που προκύπτει παρουσιάζει τη πρώτη κορυφή στην απόκριση συχνότητας στη συχνότητα f = (1/ D) f s, όπου το D είναι η καθυστέρηση σε δείγματα και το f s η συχνότητα δειγματοληψίας. Οι επόμενες κορυφές εμφανίζονται στις συχνότητες 2f, 3f, 4f, κτλ. Επομένως, αυτό το φίλτρο θα μπορούσε να χρησιμοποιηθεί για να ενισχύσει μία συγκεκριμένη θεμελιώδη συχνότητα f και όλες τις αρμονικές της. Για παράδειγμα, ας υποθέσουμε ότι η συχνότητα δειγματοληψίας είναι 48 KHz, η καθυστέρηση είναι 12 δείγματα (0,25 msec) και ότι προσθέτουμε το πρωτότυπο με το καθυστερημένο σήμα. Η πρώτη ακουστή κορυφή εμφανίζεται στα (1/12) = 4 ΚΗz και οι επόμενες κορυφές στα 8 KHz, 12 KHz, κ.ο.κ. μέχρι τη συχνότητα Nyquist (24 KHz). Το ίδιο φίλτρο χτένας εμφανίζει μηδενικά στις συχνότητες 2 KHz, 6 KHz, 10 KHz, κ.ο.κ. μέχρι τη συχνότητα Nyquist. Η διαδοχική ακύρωση και ενίσχυση φάσης μπορεί να εξηγηθεί ως εξής. Στις χαμηλές συχνότητες η καθυστέρηση δεν έχει ουσιαστικά κανένα αποτέλεσμα στη φάση του σήματος και τα δύο σήματα (πρωτότυπο και καθυστερημένο) προστίθενται, ενισχύοντας το σήμα εξόδου. Όσο η καθυστέρηση επηρεάζει υψηλότερες συχνότητες, δημιουργούνται όλο και περισσότερο μετατοπίσεις φάσης της τάξης των 180 ο. Όταν αυτό το σήμα προστεθεί στο πρωτότυπο σήμα, προκύπτει ακύρωση φάσης (Εικόνα 2.31). Πέρα από τις 180 ο τα σήματα προστίθενται ξανά, ενισχύοντας το σήμα εξόδου, μέχρι η μετατόπιση φάσης να φτάσει τις 0 ο ή τις 360 ο παράγοντας μία κορυφή ενίσχυσης στα 4 KHz. Στα 6 KHz έχουμε ξανά μετατόπιση φάσης 180 ο, παράγοντας ένα μηδενικό σημείο, κ.ο.κ. Όσο πιο μεγάλη είναι η καθυστέρηση των δειγμάτων τόσο πιο σύντομα είναι τα διαστήματα μεταξύ διαδοχικών δοντιών της χτένας. Για παράδειγμα, όταν η καθυστέρηση είναι 50 msec, το πρώτο μηδενικό σημείο εμφανίζεται στα 10 Hz και τα επόμενα στα 30, 50, 70 Hz κτλ. Μικρές καθυστερήσεις (κάτω από 5 msec) παράγουν τα πιο πλούσια αποτελέσματα, αφού ο χώρος μεταξύ των κορυφών και των μηδενικών αυξάνει, και έτσι τα δόντια της χτένας γίνονται πιο πλατιά και είναι πιο χτυπητά στο άκουσμά τους. Τι γίνεται όταν τα δύο σήματα (πρωτότυπο και καθυστερημένο) αφαιρούνται αντί να προστίθενται; Η εξίσωση για αυτό το απλό αφαιρετικό φίλτρο χτένας FIR είναι: y n = x n x n D όπου το D είναι η καθυστέρηση σε δείγματα. Το πρώτο μηδενικό εμφανίζεται 0 Hz στα και τα επόμενα μηδενικά στις συχνότητες f, 2f, 4f, κ.ο.κ. Σε αυτή τη περίπτωση, το φίλτρο μπορεί να χρησιμοποιηθεί για να απομακρύνει μία θεμελιώδη συχνότητα και τις αρμονικές της. Το σήμα ενισχύεται στις συχνότητες f/2, 3f/2, 5f/2, κ.ο.κ. Ένα αναδρομικό (IIR) φίλτρο χτένας τροφοδοτεί την είσοδό του με ένα καθυστερημένο αντίγραφο (κατά D δείγματα) του σήματος εισόδου. Η εξίσωση για ένα απλό αναδρομικό φίλτρο χτένας είναι: σελίδα 41

52 Έλεγχος Μουσικών Παραμέτρων μέσω Video y n = (a x n ) + (b y n D ) Οι συντελεστές a και b κυμαίνονται μεταξύ 0 και 1. Ανάλογα με την τιμή του συντελεστή b ιδιαίτερα, αυτό το φίλτρο χτένας IIR έχει πιο έντονη επίδραση του αποτελέσματος του «συντονισμού» (resonance) από ότι το αντίστοιχο φίλτρο FIR. Αν το b πάρει πολύ υψηλή τιμή, το φίλτρο προκαλεί αριθμητική υπερχείλιση και επακόλουθη παραμόρφωση του ηχητικού σήματος. Εικόνα 2.31: Ακύρωση και ενίσχυση φάσης. (Αριστερή στήλη) Πάνω: φαίνεται ένας τόνος 4 KHz. Μέση: τόνος 4 KHz χωρίς μετατόπιση φάσης. Κάτω: άθροισμα των δύο παραπάνω κυματομορφών έχει ως αποτέλεσμα ενίσχυση του σήματος. (Δεξιά στήλη) Πάνω: φαίνεται ένας τόνος 2 KHz. Μέση: τόνος 2 KHz με μετατόπιση φάσης κατά 180 ο. Κάτω: άθροισμα των δύο παραπάνω σελίδα 42

53 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος κυματομορφών έχει ως αποτέλεσμα την ακύρωση των δύο σημάτων Φίλτρα Ελεύθερης Διέλευσης Ένα φίλτρο ελεύθερης διέλευσης (allpass filter) είναι ένας ιδιόμορφος επεξεργαστής σήματος. Όταν τροφοδοτείται με σταθερούς τόνους, το φίλτρο ελεύθερης διέλευσης επιτρέπει τη διέλευση σε όλες τις συχνότητες χωρίς αλλαγή στο πλάτος τους. Επομένως, ένα τέτοιο φίλτρο έχει επίπεδη απόκριση συχνότητας σε όλο το ηχητικό εύρος ζώνης. Όμως, το φίλτρο ελεύθερης διέλευσης εισάγει στο σήμα εισόδου μία μετατόπιση φάσης που εξαρτάται από τη συχνότητα. Δηλαδή, καθυστερεί διάφορες συχνοτικές περιοχές με διαφορετικό τρόπο. Αυτός ο τύπος της εξαρτώμενης από συχνότητα καθυστέρησης καλείται διασπορά (dispersion). Η επόμενη εξίσωση περιγράφει ένα απλό φίλτρο ελεύθερης διέλευσης με επίπεδη απόκριση συχνότητας (από το 0 μέχρι το μισό της συχνότητας δειγματοληψίας) που καθυστερεί διάφορες συχνότητες με διαφορετικό τρόπο. y n = ( g x n ) + x n D + (g y n D ) Όταν η καθυστέρηση D σε δείγματα είναι μεγάλη, το φίλτρο δημιουργεί ηχώ και μία σειρά από εξασθενημένα αντίγραφά της, κάτι που βρίσκει εφαρμογή σε συστήματα τεχνητής αντήχησης (reverberators). Η εικόνα 2.32 δείχνει τη δομή ενός τέτοιου φίλτρου. Εικόνα 2.32: Δομή ενός απλού φίλτρου ελεύθερης διέλευσης. Το φίλτρο αυτό αποτελείται από ένα αναδρομικό φίλτρο χτένας (που ελέγχεται από το g) που συνδυάζεται με ένα κύκλωμα που τροφοδοτεί προς τα εμπρός το σήμα εισόδου με απολαβή g. Αυτή η αφαίρεση ακυρώνει τα φασματικά αποτελέσματα του φίλτρου χτένας ενώ διατηρεί την ηχώ και τα χαρακτηριστικά καθυστέρησης. Οι μουσικές εφαρμογές των φίλτρων ελεύθερης διέλευσης είναι ποικίλες. Μία πολύ συνηθισμένη χρήση τους είναι η εξισορρόπηση σελίδα 43

54 Έλεγχος Μουσικών Παραμέτρων μέσω Video της μετατόπισης φάσης που εισάγεται από ένα άλλο φίλτρο. Μια άλλη εφαρμογή τους είναι η δημιουργία effects. Εδώ ένα φίλτρο ελεύθερης διέλευσης δημιουργεί μία χρονικά μεταβαλλόμενη μετατόπιση φάσης που εξαρτάται από τη συχνότητα, η οποία μπορεί να εμπλουτίσει στατικούς ήχους. Αυτός είναι ένας τρόπος για τη δημιουργία του λεγόμενου chorus effect, ένας συνδυασμός καθυστέρησης και μετατόπισης φάσης. Αλλά η πιο σημαντική εφαρμογή των φίλτρων ελεύθερης διέλευσης βρίσκεται στη δημιουργία τεχνητής αντήχησης, όπως αναφέρθηκε ήδη Shelving Φίλτρα Τα φίλτρα shelving ενισχύουν ή αποκόβουν όλες τις συχνότητες πάνω ή κάτω από ένα δεδομένο κατώφλι (εικόνα 2.33). Ένα υψηλό φίλτρο shelving (high shelving filter) όταν ρυθμιστεί να αποκόβει υψηλές συχνότητες ενεργεί όπως ένα χαμηλοπερατό φίλτρο. Ένα χαμηλό φίλτρο shelving (low shelving filter) όταν ρυθμιστεί να αποκόβει χαμηλές συχνότητες ενεργεί όπως ένα υψηλοπερατό φίλτρο. Εικόνα 2.33: Φίλτρα shelving. (a) Υψηλό φίλτρο shelving. Πάνω από το σημείο shelf το σήμα είτε ενισχύεται είτε αποκόβεται. (b) Χαμηλό φίλτρο shelving. Κάτω από το σημείο shelf το σήμα είτε ενισχύεται είτε αποκόβεται. σελίδα 44

55 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος 2.5. Ο Ήχος Στην Java Java Sound API Το Java Sound API (Application Programming Interface) παρέχει υποστήριξη για την ανάπτυξη audio και midi εφαρμογών. Αυτό γίνεται μέσω δύο βασικών πακέτων: το πακέτο javax. sound.sampled το οποίο παρέχει interfaces και κλάσεις για την ανάκτηση, την επεξεργασία και την ηχητική αναπαραγωγή audio πληροφορίας και το πακέτο javax.sound.midi το οποίο παρέχει interfaces και κλάσεις για τη σύνθεση, το sequencing και τη μεταφορά MIDI δεδομένων. Υπάρχουν δύο ακόμα πακέτα τα οποία προορίζονται κυρίως για παροχείς υπηρεσιών (service providers) και υποστηρίζουν την ανάπτυξη εξειδικευμένων audio και midi πόρων (όπως για παράδειγμα plug-ins) επεκτείνοντας τις δυνατότητες του Java Sound API: το javax.sound.sampled.spi και το javax.sound.midi.spi Γενικά το Java Sound API δεν προϋποθέτει κάποια συγκεκριμένη audio ή midi hardware διάταξη. Είναι σχεδιασμένο με τέτοιο τρόπο ώστε να μπορεί να συνεργάζεται με ένα πλήθος από διαφορετικές audio ή midi διατάξεις, Ταυτόχρονα υποστηρίζει τις βασικές λειτουργίες τις οποίες παρέχει μία οποιαδήποτε audio διάταξη, όπως η είσοδος και η έξοδος δεδομένων από μία κάρτα ήχου (η ηχογράφηση και η αναπαραγωγή ήχου δηλαδή αντίστοιχα), ή η μείξη πολλαπλών audio stream (για παράδειγμα, η μείξη κάποιου αρχείου ήχου με δεδομένα που προέρχονται από την κάρτα ήχου, μέσω μιας line in). [7] Η Ροή της Ηχητικής Πληροφορίας Η βασική λειτουργία του πακέτου javax.sound.sampled αφορά στη διαχείριση ροής της audio πληροφορίας, ρυθμίζει δηλαδή τον τρόπο με τον οποίο θα μετακινηθούν τα bytes της ηχητικής πληροφορίας εντός και εκτός συστήματος. Η λειτουργία αυτή περιλαμβάνει διάφορες ενέργειες όπως η προσβασιμότητα σε διατάξεις εισόδου και εξόδου του ήχου, η διαχείριση των buffer όπου θα αποθηκευθεί η πληροφορία του ήχου σε πραγματικό χρόνο, καθώς επίσης και η μείξη πολλαπλών stream ήχου σε ένα, το οποίο μπορεί να αφορά stream εισόδου ή εξόδου. Γενικά, η διαχείριση ροής της ηχητικής πληροφορίας γίνεται με δύο τρόπους: με buffered fashion (streaming), ή με unbuffered fashion (in memory) H έννοια του stream (δίοδος) Γενικά όποτε αναφερόμαστε στον όρο stream εννοούμε μία νοητή αναπαράσταση ροής πληροφορίας. Στην ουσία λοιπόν ένα stream είναι μία ακολουθία από bytes τα οποία εισέρχονται ή εξέρχονται από το πρόγραμμά μας. Έτσι, όταν γράφουμε bytes σε ένα stream αυτό καλείται output stream. Ένα output stream μπορεί να καταλήγει σε οποιαδήποτε διάταξη η οποία δέχεται ακολουθίες από bytes (προσοχή: η διάταξη μπορεί να είναι φυσική ή νοητή). Τέτοιες διατάξεις μπορεί να είναι ένας εκτυπωτής, ένα αρχείο σε έναν σκληρό δίσκο, το line-out μιας κάρτας ήχου. Αντίστοιχα, διαβάζουμε δεδομένα από ένα input stream. Διατάξεις τέτοιες μπορεί να είναι ένα πληκτρολόγιο, ένα αρχείο, το mic μιας κάρτας ήχου κλπ. σελίδα 45

56 Έλεγχος Μουσικών Παραμέτρων μέσω Video Εξετάζοντας ειδικότερα ένα stream ήχου (audio stream), μπορούμε να το φανταστούμε σαν μία ακολουθία από byte τα οποία αφορούν ηχητική πληροφορία (samples). Η ακολουθία αυτή ανανεώνεται με μία σταθερή, πάνω-κάτω, ροή. Προγραμματιστικά επεμβαίνουμε σε αυτήν την ροή πληροφορίας εγγράφοντας ή διαβάζοντας δεδομένα. Επειδή ακριβώς στο προγραμματιστικό επίπεδο δεν είμαστε σε θέση να γνωρίζουμε την ακριβή ροή της πληροφορίας, χρησιμοποιούμε buffer. Ένας buffer είναι ένας προσωρινός αποθηκευτικός χώρος όπου φυλάσσονται προσωρινά τα δεδομένα μας. Αυτό διασφαλίζει την ομαλή ροή της πληροφορίας ανεξάρτητα από όποιες διακυμάνσεις μπορεί αυτή να έχει. Έτσι όταν γράφουμε ήχο από ένα μικρόφωνο στην είσοδο της κάρτας ήχου, καθώς τα δεδομένα εισέρχονται, αποθηκεύονται τμηματικά σε έναν input buffer. Αντίστοιχα όταν στέλνουμε ήχο στην έξοδο μιας κάρτας ήχου, τα δεδομένα αποθηκεύονται τμηματικά σε έναν output buffer πριν σταλούν στην τελική έξοδο. unbuffered fashion Εκτός από τον παραπάνω τρόπο μπορούμε βεβαίως να στείλουμε δεδομένα στην έξοδο χωρίς τη χρήση buffer. Η δυνατότητα αυτή αφορά μόνο την έξοδο (αναπαραγωγή ήχου), με την προϋπόθεση πως τα δεδομένα είναι άμεσα διαθέσιμα και μικρά σε όγκο έτσι ώστε να χωρούν στη μνήμη. Το μοντέλο αυτό έχει το πλεονέκτημα πως ο ήχος μπορεί να αναπαράγεται άμεσα, σε αντίθεση με το streaming μοντέλο που απαιτεί κάποιο χρόνο να φορτωθούν και να γεμίσει ο buffer πριν αρχίσει η αναπαραγωγή τους. Επιπρόσθετα το μοντέλο αυτό επιτρέπει ευκολότερη διαχείριση της κυκλικής επανάληψης του ήχου (loop) καθώς επίσης και επιλογή αναπαραγωγής από διαφορετικά χρονικά σημεία του Ο Ήχος σαν Κωδικοποιημένη Πληροφορία: data format και file format Το Java Sound API διαχειρίζεται ήχο ο οποίος ανήκει σε έναν από δύο τύπους format: data format και file format. Ο πρώτος τύπος αφορά σε δείγματα ήχου (δηλαδή raw δεδομένα) και ο δεύτερος σε δεδομένα ήχου κωδικοποιημένα με βάση έναν τύπο αρχείου ήχου. Πιο αναλυτικά: Data format Η συγκεκριμένη κατηγορία format ήχου αφορά raw δεδομένα ήχου, δηλαδή samples ήχου και μόνο. Το format αυτό το διαχειρίζονται αντικείμενα της κλάσης AudioFormat, η οποία ορίζεται ως εξής: public AudioFormat(AudioFormat.Encoding encoding, float samplerate, int samplesizeinbits, int channels, int framesize, float framerate, boolean bigendian) με παραμέτρους: σελίδα 46

57 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος encoding: Ο τύπος κωδικοποίησης που μπορεί να είναι PCM_SIGNED, PCM_UNSIGNED, ULAW ή MLAW. samplerate: Η συχνότητα δειγματοληψίας. samplesizeinbits: Το πλήθος των bit ανά sample. channels: Το πλήθος των καναλιών. framesize: Το μέγεθος ενός frame σε samples. Ένα frame αντιστοιχεί στο σύνολο των ταυτόχρονων samples που είναι διαθέσιμα από όλα τα κανάλια του ήχου για μία συγκεκριμένη χρονική στιγμή. Έτσι για ένα στερεοφωνικό σήμα 16-bit το framesize ισοδυναμεί με 2, ενώ για ένα τετραφωνικό είναι 4 κ.ο.κ. framerate: Η συχνότητα των frame (συνήθως ισοδύναμη με sample rate) bigendian: Για τιμή 1 έχουμε big endian κωδικοποίηση, ενώ για 0 little endian. Η κωδικοποίηση αυτή αφορά την ακολουθία με την οποία διατάσσονται περισσότερα του ενός byte για την αποτύπωση κάθε sample. File format Η κατηγορία αυτή αφορά δεδομένα ήχου τα οποία είναι κωδικοποιημένα με βάση έναν συγκεκριμένο τύπο αρχείου ήχου. Το format αυτό το διαχειρίζονται αντικείμενα της κλάσης AudioFileFormat, η οποία ορίζεται ως εξής: protected AudioFileFormat(AudioFileFormat.Type type, int bytelength, AudioFormat format, int framelength) ή και με μία δεύτερη μέθοδο constructor ως εξής: public AudioFileFormat(AudioFileFormat.Type type, AudioFormat format, int framelength) με παραμέτρους: type: Ο τύπος του αρχείου ήχου (WAVE, AU, AIFF, AIFC, SND). bytelength: Το μέγεθος του αρχείου σε bytes. format: Το format των raw δεδομένων του αρχείου ως αντικείμενο AudioFormat. framelength: Το πλήθος των sample frames Audio Devices, Mixer, Port και DataLine: Το Μοντέλο Διάταξης Ήχου στην Java Audio Devices Πολλές φορές τα API για ήχο χρησιμοποιούν τον όρο audio device (διάταξη ήχου). Η έννοια αυτή αφορά στο software interface το οποίο αντιστοιχεί σε κάποια φυσική διάταξη εισόδου σελίδα 47

58 Έλεγχος Μουσικών Παραμέτρων μέσω Video ή/και εξόδου ήχου που είναι διαθέσιμες από κάθε σύστημα. Έτσι μία διάταξη ήχου αποτελεί τον τρόπο επικοινωνίας μεταξύ μιας φυσικής συσκευής και του προγράμματός μας. Για παράδειγμα, μία διάταξη εισόδου ήχου (input audio device) μπορεί να αντιστοιχεί στις δυνατότητες εισαγωγής σήματος της διαθέσιμης κάρτας ήχου του συστήματός μας, όπως το mic-in, το line-in ή το digital-in της κάρτας. Αντίστοιχα αναφερόμαστε και στις διατάξεις εξόδου ήχου. Mixer Οι διατάξεις ήχου στο Java Sound API, αντιπροσωπεύονται από αντικείμενα τύπου Mixer. Σκοπός ενός Mixer είναι η διαχείριση ενός ή περισσοτέρων stream εισόδου ήχου και ενός ή περισσοτέρων stream εξόδου ήχου. Στην πιο συνηθισμένη περίπτωση ένα τέτοιο αντικείμενο πραγματοποιεί μείξη πολλαπλών εισερχομένων stream σε ένα εξερχόμενο stream. Μπορούμε λοιπόν να χρησιμοποιήσουμε ένα τέτοιο αντικείμενο προκειμένου να πάρουμε τον ήχο ο οποίος προέρχεται από πολλαπλές εισόδους μιας κάρτας ήχου, ή να στείλουμε ήχο ο οποίος δημιουργείται από διάφορες εφαρμογές, προς την έξοδο της κάρτας ήχου. Εναλλακτικά, ένα αντικείμενο τύπου Mixer μπορεί να κάνει μείξη ηχητικών σημάτων χωρίς να υπάρχει συγκεκριμένη αναφορά σε κάποια φυσική διάταξη. Port Στο περιβάλλον του Java Sound API, τα φυσικά audio ports μιας κάρτας ήχου όπως η είσοδος ενός μικροφώνου σε μία κάρτα ήχου, η έξοδος των ηχείων κλπ. θεωρούνται αντικείμενα τύπου Port. Κάθε Port παρέχει ένα μοναδικό stream ήχου προς ή από ένα Mixer, ακόμη και εάν η πληροφορία που μεταφέρει το stream αφορά πολλαπλά κανάλια (π.χ. stereo σήμα). DataLine Ένα αντικείμενο τύπου Mixer δέχεται ή στέλνει δεδομένα μέσω αντικειμένων που προέρχονται από το interface DataLine. Τα αντικείμενα αυτά χωρίζονται σε τρία υπο-interface: SourceDataLine TargetDataLine Clip Ένα ή περισσότερα αντικείμενα τύπου SourceDataLine δέχονται δεδομένα ήχου τα οποία με τη σειρά τους παρέχουν σε ένα αντικείμενο Mixer. Αντίστοιχα ένα αντικείμενο Mixer στέλνει δεδομένα ήχου σε ένα ή περισσότερα αντικείμενα τύπου TargetDataLine. Με αυτόν τον τρόπο μία audio εφαρμογή στη Java διαβάζει δεδομένα από ένα TargetDataLine και αντίστοιχα γράφει δεδομένα σε ένα SourceDataLine. Η διαφορά των αντικειμένων αυτών από τα αντικείμενα τύπου Clip είναι πως τα SourceDataLine και TargetDataLine αφορούν διόδους δεδομένων, διαχειρίζονται δηλαδή ήχο σε stream (buffered) fashion. Έτσι, από τη στιγμή που ένα αντικείμενο τύπου TargetDataLine ενεργοποιηθεί, εάν δεν διαβάσουμε τα δεδομένα του, αυτά θα χαθούν. Αντίθετα, ένα αντικείμενο τύπου Clip αφορά πληροφορία ήχου η οποία είναι ήδη ομαδοποιημένη -όπως ένα αρχείο ήχου. Έτσι ένα Clip έχει ενσωματωμένα τα δεδομένα του ήχου και μπορούμε να τα ανακτούμε ή να τα αναπαράγουμε όσο συχνά θελήσουμε σελίδα 48

59 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος (unbuffered fashion). Ακολουθεί ένα παράδειγμα ροής πληροφορίας προς ένα Mixer από δύο αντικείμενα SourceDataLine και ένα Clip, αφού πρώτα έχουμε φροντίσει η εφαρμογή να γράψει τα δεδομένα στα SourceDataLine (destination of sound data). Η έξοδος του Mixer στέλνεται σε ένα ή περισσότερα αντικείμενα τύπου Port, όπου έχουμε και την έξοδο του ήχου: Αντίστοιχα, ένα παράδειγμα ροής από ένα ή περισσότερα Port προς ένα Mixer. Ένα TargetDataLine χρησιμοποιείται προκειμένου να πάρει τα δεδομένα από το Mixer και αυτά να γίνουν διαθέσιμα στην εφαρμογή μας (source of sound data): Το υπέρ-interface Line Ένα αντικείμενο Line μπορεί να είναι ένας οποιοσδήποτε πόρος ο οποίος αποτελεί προορισμό ή προέλευση ψηφιακών δειγμάτων ήχου. Με αυτήν την έννοια όλα τα παραπάνω αντικείμενα (Mixer, Port, DataLine) αποτελούν αντικείμενα τύπου Line. Το interface Line αποτελεί την κορυφή της ιεραρχίας των επτά interface από τα οποία αποτελείται το πακέτο javax. sound.sampled: Η Εσωτερική Κλάση Info Υπάρχει μία ακόμη σημαντική κλάση η οποία δεν φαίνεται στο παραπάνω σχήμα. Η Κλάση αυτή είναι η Info και είναι εσωτερική κλάση όλων των παραπάνω interface, δηλαδή των Line, Mixer, Port και DataLine. Έχουμε δηλαδή αντίστοιχα τις Κλάσεις: Line.Info, Mixer.Info, Port. Info και DataLine.Info. Η χρησιμότητα των κλάσεων αυτών είναι πως τα αντικείμενα τους παρέχουν πληροφορίες σχετικά με τα χαρακτηριστικά καθενός από τα παραπάνω interface. Έτσι για παράδειγμα κάθε Mixer.Info αντικείμενο περιγράφει τα χαρακτηριστικά για κάθε Mixer του συστήματός μας (π.χ. name, version, vendor, description), ενώ αντίστοιχα κάθε Port. Info αντικείμενο περιγράφει και ένα διαφορετικό Port που διαθέτει το σύστημα κ.ο.κ. Με αυτόν τον τρόπο, η εσωτερική αυτή κλάση βοηθάει στο να ξεχωρίσουμε τους διαθέσιμους πόρους που παρέχει ένα σύστημα, όπως για παράδειγμα ποιο συγκεκριμένο Mixer ή Port θέλουμε να χρησιμοποιήσουμε στην εφαρμογή μας. Για τον λόγο αυτόν υπάρχουν μέθοδοι οι οποίοι επιστρέφουν τα διαθέσιμα Info αντικείμενα του συστήματός μας και μέθοδοι που μας επιτρέπουν να επιλέξουμε κάποιο από αυτά. Έτσι επιλέγουμε συγκεκριμένους πόρους με βάση τα χαρακτηριστικά τους. Εκτός από τα παραπάνω interface, το πακέτο javax.sound.sampled περιλαμβάνει και ένα όγδοο interface, το LineListener, τα αντικείμενα του οποίου δέχονται μία ειδοποίηση event όταν η κατάσταση ενός Line μεταβληθεί. σελίδα 49

60 Έλεγχος Μουσικών Παραμέτρων μέσω Video Η Κλάση AudioSystem Η Κλάση AudioSystem αποτελεί το σημείο αναφοράς των πόρων ενός συστήματος ψηφιακού ήχου. Μέσω της κλάσης αυτής μπορούμε να αναζητήσουμε τους πόρους που χρησιμοποιεί ένα συγκεκριμένο σύστημα και στη συνέχεια να χρησιμοποιήσουμε κάποιους από αυτούς. Αναφορικά, η κλάση αυτή μπορεί να αναζητήσει πληροφορία για τους ακόλουθους πόρους: Mixers Ένα σύστημα συνήθως έχει εγκαταστημένα ένα πλήθος από διαφορετικά mixers. Υπάρχουν τουλάχιστον ένα για την εισαγωγή του ήχου και ένα για την εξαγωγή του. Μπορεί να υπάρχουν επίσης mixers τα οποία δεν έχουν I/O ports. Αυτού του τύπου τα mixers δέχονται δεδομένα από μία εφαρμογή και αφού τα επεξεργαστούν, τα επιστρέφουν πίσω σε αυτήν. Η AudioSystem παρέχει μία λίστα με όλα τα διαθέσιμα mixer. Lines Αν και τα Line αντικείμενα, όπως είδαμε και στα παραδείγματα ροή της audio πληροφορίας, σχετίζονται συνήθως με ένα mixer, μία εφαρμογή μπορεί να ανακτήσει απ ευθείας μία Line μέσω της AudioSystem χωρίς τη μεσολάβηση κάποιου mixer. Format ήχου Μία εφαρμογή μπορεί να χρησιμοποιήσει τις δυνατότητες μετατροπής format ήχου που παρέχει η AudioSystem. Αρχεία και streams Η AudioSystem παρέχει μεθόδους οι οποίες συσχετίζουν τα δεδομένα ενός αρχείου ήχου με ένα stream ήχου. Επιπλέον, όπως θα δούμε και στην πορεία, η συγκεκριμένη Κλάση θα μας βοηθήσει να δημιουργήσουμε τις ηχητικές μας δομές στο περιβάλλον της Java, γι αυτό και θεωρείται αρκετά σημαντική. Η Κλάση AudioSystem δεν περιέχει κάποια μέθοδο constructor. Αυτό σημαίνει πως δεν χρειάζεται να δημιουργήσουμε κάποιο αντικείμενό της προκειμένου να αρχίσουμε να χρησιμοποιούμε τις μεθόδους της. Για τον ίδιο λόγο όλοι οι μέθοδοι της Κλάσης αυτή είναι static. Ενδεικτικά η Κλάση AudioSystem παρέχει τις παρακάτω μεθόδους: getaudiofileformat public static AudioFileFormat getaudiofileformat(inputstream stream) public static AudioFileFormat getaudiofileformat(url url) public static AudioFileFormat getaudiofileformat(file file) Οι μέθοδοι αυτοί επιστρέφουν αντικείμενα τύπου AudioFileFormat τα οποία αφορούν το format του ήχου που προέρχεται από ένα stream, από ένα URL (Uniform Resource Locator), ή από ένα αρχείο ήχου. σελίδα 50

61 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος getaudiofiletypes public static AudioFileFormat.Type[] getaudiofiletypes() public static AudioFileFormat.Type[] getaudiofiletypes(audioinputstream stream) Οι μέθοδοι αυτοί επιστρέφουν έναν πίνακα με τους τύπους αρχείων ήχου (AIFC, AIFF, AU, SND, WAVE) για τους οποίους υποστηρίζεται η δυνατότητα εγγραφής από το σύστημά μας, ή από ένα συγκεκριμένο audio input stream. Η Κλάση AudioInputStream της δεύτερης μεθόδου αφορά stream εισαγωγής ήχου με συγκεκριμένο format και μέγεθος. getaudioinputstream public static AudioInputStream getaudioinputstream(audioformat.encoding targetencoding,audioinputstream sourcestream) public static AudioInputStream getaudioinputstream(audioformat targetformat, AudioInputStream sourcestream) public static AudioInputStream getaudioinputstream(file file) public static AudioInputStream getaudioinputstream(inputstream stream) public static AudioInputStream getaudioinputstream(url url) Επιστρέφουν ένα audio input stream το οποίο μπορεί, ανάλογα τη μέθοδο να προσδιορισθεί από: -ένα άλλο audio input stream με ταυτόχρονη μετατροπή του ήχου στην κωδικοποίηση που προσδιορίζεται από το targetencoding αντικείμενο -ένα άλλο audio input stream με ταυτόχρονη μετατροπή του ήχου στο targetformat -ένα αρχείο ήχου -ένα άλλο audio input stream -ένα URL getline public static Line getline( info) Επιστρέφει ένα αντικείμενο Line το οποίο αντιστοιχεί στην περιγραφή που προσδιορίζεται από ένα αντικείμενο τύπου Line.Info. getmixer public static Mixer getmixer( info) Επιστρέφει ένα mixer με βάση την περιγραφή του Mixer.Info. getmixerinfo public static Mixer.Info[] getmixerinfo() Επιστρέφει έναν πίνακα από αντικείμενα Mixer.Info τα οποία αφορούν τα mixer που είναι εγκατεστημένα στο σύστημά μας. getsourcelineinfo public static Line.Info[] getsourcelineinfo( info) Επιστρέφει όλες τις διαθέσιμες source lines ενός συγκεκριμένου τύπου Line που προσδιορίζεται από το αντικείμενο Line.Info. gettargetlineinfo public static Line.Info[] gettargetlineinfo( info) Επιστρέφει όλες τις διαθέσιμες target lines ενός συγκεκριμένου τύπου Line που προσδιορίζεται από το αντικείμενο Line.Info. σελίδα 51

62 Έλεγχος Μουσικών Παραμέτρων μέσω Video gettargetencodings public static AudioFormat.Encoding[] gettargetencodings(audioformat.encoding sourceencoding) public static AudioFormat.Encoding[] gettargetencodings(audioformat sourceformat) Επιστρέφουν τους τύπους κωδικοποίησης (PCM_SIGNED, PCM_UNSIGNED, ULAW, MLAW) που είναι επιτρεπτοί για μετατροπή με βάση έναν άλλον τύπο κωδικοποίησης, ή ένα συγκεκριμένο format ήχου. gettargetformats public static AudioFormat[] gettargetformats(audioformat.encoding targetencoding, AudioFormat sourceformat) Επιστρέφει τα format ήχου που μπορούν να μετατραπούν από κάποιο stream με συγκεκριμένο format (sourceformat), με βάση έναν τύπο κωδικοποίησης (targetencoding). gettargetlineinfo public static Line.Info[] gettargetlineinfo( info) Επιστρέφει Info αντικείμενα ενός συγκεκριμένου τύπου Line που δίδεται στην μεταβλητή info, τα οποία είναι διαθέσιμα από τους εγκατεστημένους mixer του συστήματος. isconversionsupported public static boolean isconversionsupported(audioformat.encoding targetencoding, AudioFormat sourceformat) public static boolean isconversionsupported(audioformat targetformat, AudioFormat sourceformat) Επιστρέφει TRUE ή FALSE εάν αντίστοιχα υποστηρίζεται η μετατροπή από ένα συγκεκριμένο AudioFormat (μεταβλητή sourceformat) σε κάποιον συγκεκριμένο τύπο κωδικοποίησης (targetencoding) ή σε κάποιο άλλο AudioFormat (μεταβλητή targetformat). isfiletypesupported public static boolean isfiletypesupported(audiofileformat.type filetype) public static boolean isfiletypesupported(audiofileformat.type filetype, AudioInputStream stream) Επιστρέφουν TRUE ή FALSE εάν αντίστοιχα υποστηρίζεται η εγγραφή ενός συγκεκριμένου τύπου αρχείου ήχου (AIFC, AIFF, AU, SND, WAVE), από το σύστημα ή από ένα συγκεκριμένο stream εισόδου (stream). islinesupported public static boolean islinesupported( info) Επιστρέφει TRUE ή FALSE εάν αντίστοιχα υποστηρίζεται η συγκεκριμένου τύπου Line από το σύστημα. write public static int write(audioinputstream stream, AudioFileFormat.Type filetype, File out) public static int write(audioinputstream stream, AudioFileFormat.Type filetype, OutputStream out) Εγγράφουν από ένα Audio Input Stream (μεταβλητή stream) δεδομένα συγκεκριμένου τύπου (μεταβλητή filetype), σε κάποιο αρχείο ήχου (File out) ή σε κάποιο stream εξόδου (OutputStream out). σελίδα 52

63 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Ενότητα 2: Αλληλεπίδραση Ανθρώπου - Υπολογιστή σελίδα 53

64 Έλεγχος Μουσικών Παραμέτρων μέσω Video 3. Αλληλεπίδραση & Εικονικά Περιβάλλοντα 3.1. Εισαγωγή Η Αλληλεπίδραση Ανθρώπου - Υπολογιστή είναι ένας σχετικά νέος κλάδος της επιστήμης των υπολογιστών. Στοιχεία του υπήρχαν από την αρχή της κατασκευής των πρώτων υπολογιστών, αλλά δεν είχαν θεωρηθεί τόσο σημαντικά ή προέχοντα ώστε να είχε αυτονομηθεί νωρίτερα ως κλάδος. Η νεότητα αυτή, μαζί με την κυρίαρχη θέσμιση της τεχνο-επιστήμης, δημιουργούν συχνά παρεξηγήσεις. Μια εξέταση των όρων Αλληλεπίδραση, Άνθρωπος, Υπολογιστής ξεχωριστά, ίσως να διαυγάσει λίγο την κατάσταση. Αλληλεπίδραση: Ένας καθολικός ορισμός της είναι αδύνατος. Σίγουρα όμως μπορεί να λεχθεί ότι δεν μπορεί να χαρακτηριστεί έτσι οποιαδήποτε μορφή επικοινωνίας (π.χ. μεταξύ δύο router), παρόλο που μπορεί να υπάρχουν αιτήσεις και αποκρίσεις από τους συμμετέχοντες. Πρέπει να υπάρχει κάποια σχέση μεταξύ της n-οστής ερωτοαπόκρισης με την n-1. Αυτή η σχέση δεν πρέπει να είναι μόνο δομική ή γενικά συνολοταυτιστική - πρέπει να υπάρχει σχέση περιεχομένου, σχέση παραστάσεων, σχέση νοήματος. Άνθρωπος: Η συνηθέστερη παρεξήγηση του κλάδου μέχρι τώρα, είναι ότι προσπαθεί να ερμηνεύσει τον άνθρωπο με βάση τα εξωτερικά γνωρίσματα της συμπεριφοράς του (behaviourism). Έτσι, δημιουργείται σωρεία μοντέλων της λειτουργίας του εγκεφάλου ως τεύχειν, ως ντιτερμινιστικής μηχανής (με μερικό τυχαίο θόρυβο, χωρίς όμως βλάβη της γενικότητας). Ο άνθρωπος παρουσιάζεται σαν ανάλογος με τον υπολογιστή, σαν δύο διαφορετικές πηγές αντικειμενικής πραγματικότητας, την οποία επικοινωνούν με την μορφή bit (θυμίζοντας το δι εαυτό του Kant), απλά έχοντας όμως άλλες ιδιαιτερότητες στην έκφραση. Εκμηδενίζεται έτσι, η ανθρώπινη ψυχή η ετερότητα και όχι διαφορά μεταξύ ανθρώπου και υπολογιστή η ανθρώπινη ικανότητα του παριστάνειν - η ανάδυση νοήματος μέσα σε μια μαγματική σχέση συνολοταυτιστικού, φαντασιακού, συμβολικού, φανταστικού συνεπώς εκμηδενίζεται η ανθρώπινη δημιουργία, η κοινωνική αυτοθέσμιση μέσα στον ιστορικό χρόνο με τον οποίο συμβαίνει. Οι λίγες έρευνες [8] [9] [10] [11] που καταφέρνουν και ξεπερνούν ένα μηχανιστικό μοντέλο και μιλάνε για το περιεχόμενο της αλληλεπίδρασης, αντιμετωπίζουν με έκπληξη ότι εκτός από συναισθήματα και ευκολία στην μάθηση, οι συμμετέχοντες άνθρωποι σε αλληλεπιδραστικές εμπειρίες παρουσιάζουν αυξημένη αίσθηση κοινωνικότητας (Την διαπίστωση αυτή έκανε με επιτυχία πράξη η σχολή Bauhaus) [12]. Υπολογιστής: Η αλληλεπίδραση, συνήθως θεωρείται δράση ως προς κάτι εξωτερικό. Η μεταφορά της πλοήγησης που χρησιμοποιείται στη σχεδίαση διεπαφών ανθρώπου-υπολογιστή, απεικονίζει την αντίφαση. Όταν πλοηγούμαστε σε μια εφαρμογή το αντιλαμβανόμαστε με δύο αντίθετους τρόπους. Η Καρτεσιανή όψη του ψηφιακού τοπίου είναι εξωτερική σε σχέση με εμάς, σαν ένας χάρτης που είναι τόσο αυτόνομος όσο και αυθαίρετος, ενώ από την άλλη, η προσωπική μας παρουσία είναι αδιαμφισβήτητο κομμάτι του εικονικού ψηφιακού τοπίου. Αυτή η αντίφαση είναι πολύ παλιά [8]. σελίδα 54

65 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Ο υπολογιστής όμως, κρύβει μέσα του αυτή την αλληλεπιδραστικότητα - έχει κατασκευαστεί γι αυτό. Οι εφαρμογές και το υλικό του είναι κατανοήσιμα ως αλληλεπιδραστικά επειδή είναι οργανωμένα ως τέτοια. Παρόλ αυτά, ο υπολογιστής διαχειρίζεται δεδομένα και όχι πληροφορία - η νοηματοδοσία, ελλείψει ριζικού φαντασιακού, είναι αδύνατη. Αυτό συχνά δεν συνυπολογίζεται στον προγραμματισμό αλληλεπιδραστικών εφαρμογών. Αναπόφευκτα, λοιπόν, πετάμε το μπαλάκι πίσω στον Άνθρωπο και ακόμα περισσότερο αν συνυπολογίσουμε αυτή την ετερότητα. Η διάκριση αυτή είναι λοιπόν ουσιώδης, και την βλέπουμε όσον αφορά την Αλληλεπίδραση Ανθρώπου - Υπολογιστή ως αρχή, και όχι σαν νεο-ανθρωπιστική επιταγή. Η πρόοδος στην Αλληλεπίδραση Ανθρώπου - Υπολογιστή (παρουσιάζεται στο 3.2) είναι τεχνικά αναμφίβολη, λόγω της κατανόησης κάποιων λειτουργικών αρχών αλληλεπιδραστικότητας. Παρόλ αυτά, δεν πρέπει να ξεχνιέται η πρόοδος (ή μάλλον εξέλιξη;) στην Ανθρώπινη Αλληλεπίδραση, όπως με την φροϋδική ψυχανάλυση αρχικά, τις ομαδικές συνεδρίες αργότερα κλπ Αλληλεπιδραστικότητα Υπάρχει μια τάση που συνδέει την αλληλεπιδραστικότητα με τους υπολογιστές, κυρίως από το 1990 που ο Bill Moggridge εφηύρε τον όρο interaction design, αλλά αυτή είναι μια θεώρηση ολοφάνερα ανεπαρκής. Μορφές αλληλεπιδραστικότητας υπήρχαν μέσα σε διαφορετικές περιοχές και εποχές της κοινωνικο-ιστορικής θέσμισης, όπως οι φωτιές του Ομήρου, τα σήματα καπνού των Ινδιάνων ή τα πέτρινα ντολμέν των Κελτών. Αρκετούς αιώνες αργότερα, την δεκαετία του 1830, ο Samuel Morse κατασκεύασε ένα σύστημα αντιστοίχησης των γραμμάτων σε σημεία, και των σημείων σε ηλεκτρομαγνητικούς παλμούς. Έτσι οι λέξεις μπορούν να μεταφερθούν σε μεγάλες αποστάσεις - μέσα σε 50 χρόνια ο κώδικας Morse και ο τηλέγραφος είχαν εξαπλωθεί σε όλον τον κόσμο. Ο Morse εφηύρε όχι μόνο τον τηλέγραφο, αλλά ολόκληρο το σύστημα χρήσης του: τα ηλεκτρικά κυκλώματα, τον μηχανισμό παραγωγής του κώδικα και την εκπαίδευση των χειριστών. Αυτό, φυσικά, δεν συνέβη αυθημερόν, ενώ αποτελεί το πρώτο επικοινωνιακό σύστημα που ήταν υπερβολικά περίπλοκο για τον μέσο χρήστη. Απαίτησε από τους δημιουργούς του ένα ολόκληρο σύστημα χρήσης. Παρομοίως, για άλλα επικοινωνιακά συστήματα, όπως το ραδιόφωνο, το τηλέφωνο ή η τηλεόραση, χρειάστηκε οι μηχανικοί να σχεδιάσουν διεπαφές. Για πρώτη φορά, η διεπαφή του επικοινωνιακού συστήματος δεν ήταν κάποιος άνθρωπος (ο τηλεγραφητής, ο τυπογράφος, ο ταχυδρόμος), αλλά μια μηχανική, και συχνά αυτόματη, συσκευή. Μπορούμε για πρώτη φορά να μιλήσουμε για εικονική διεπαφή. Για πρώτη φορά επίσης, αυτές οι διεπαφές χρησιμοποιήθηκαν όχι μόνο για τους πομπούς και τους δέκτες, αλλά και για την διαχείριση των επικοινωνιακών δεδομένων (τηλεφωνικοί μεταγωγείς, μονταζιέρες κλπ). Μιλάμε πλέον για ολόκληρο εικονικό περιβάλλον. Ο σχεδιασμός της αλληλεπίδρασης εκείνη την εποχή, δεν αποτέλεσε προτεραιότητα. (Θα πρέπει εδώ να σημειωθεί ότι ο όρος εικονικός χρησιμοποιείται με την καθομιλουμένη σελίδα 55

66 Έλεγχος Μουσικών Παραμέτρων μέσω Video (και καταχρηστική) έννοια του μη-πραγματικού, του ιδεατού (ιδεατός είναι και η ορθή μετάφραση του virtual). Σε σχέση με τις διεπαφές εικόνας, θα χρησιμοποιείται ο (επίσης καθιερωμένος - και αστείος) όρος γραφικές διεπαφές.) Οι μηχανές που χρησιμοποιήθηκαν για αυτές τις τεχνολογίες δέχονταν μεν είσοδο από τον (ανθρώπινο) χρήστη, αλλά με απλό, γραμμικό και μη προσαρμόσιμο τρόπο. Αυτό άλλαξε με την χρήση των ηλεκτρονικών υπολογιστών. 1940s s Οι πρώτοι υπολογιστές (ο ENIAC κλπ) κατασκευάστηκαν αποκλειστικά βάσει της λειτουργικότητάς τους. Οι άνθρωποι προσπαθούσαν να προσαρμοστούν κατά το δυνατόν στην γλώσσα μηχανής, ώστε να τους χρησιμοποιήσουν. Η εισαγωγή δεδομένων στον υπολογιστή απαιτούσε πολύωρη προετοιμασία διάτρητων καρτών που διάβαζε ο υπολογιστής - αυτή ήταν η διεπαφή αλληλεπίδρασης. Οι μηχανικοί διέθεταν ελάχιστο χρόνο στο να γίνουν οι υπολγιστές πιο εύχρηστοι. Αντιθέτως, κύριο μέλημα αποτελούσε η ισχύς και η ταχύτητα, ώστε να επιλύονται όλο και συνθετότερα υπολογιστικά προβλήματα. Οι μηχανικοί άρχισαν να δίνουν έμφαση στον άνθρωπο την δεκαετία του 1960, όταν άρχισαν να κατασκευάζουν νέες μεθόδους εισόδου δεδομένων. Προστέθηκαν πίνακες ελέγχου, επιτρέποντας είσοδο δεδομένων μέσω μιας περίπλοκης διαδικασίας χρήσης διακοπτών, συνήθως σε συνδυασμό με διάτρητες κάρτες που επεξεργάζονταν σε ομάδες (batch processing). Εν τω μεταξύ, σε εργαστήρια όπως το Xerox PARC και στο MIT, πειραματίστηκαν με οθόνες για οπτική έξοδο δεδομένων, σχεδίασαν απλά παιχνίδια, και κατασκεύασαν διεπαφές όπως το ποντίκι και η γραφίδα. Αυτομάτως, πολλές περισσότερες εφαρμογές έγιναν δυνατές για τον υπολογιστή. Ερευνητές όπως ο Bob Taylor άρχισαν να σκέφτονται τους υπολογιστές όχι μόνο σαν εργαλεία υπολογισμών, αλλά και σαν συσκευές επικοινωνίας. Την επόμενη δεκαετία, το ενδιαφέρον μετατοπίστηκε από το υλικό, στο λογισμικό του υπολογιστή. Οι σχεδιαστές, οι προγραμματιστές και οι μηχανικοί κατά την δεκαετία του 1970 εισήγαγαν την διεπαφή της γραμμής εντολών (command-line interface) και άλλα καθοριστικά προγράμματα, όπως τα VisiCalc και WordStar. Επίσης, εταιρείες ξεκίνησαν να σχεδιάζουν υπολογιστές για ανθρώπους εκτός των εκπαιδευμένων χρηστών. Από τις αρχές της δεκαετίας του 1980, μπορούσε να χρησιμοποιήσει υπολογιστές ένα ευρύ κοινό, κυρίως με την εισαγωγή γραφικής διεπαφής από την Apple Computer, πρώτα με τον Lisa και μετά με τον Macintosh. Δημιουργήθηκαν συστήματα πίνακα δημοσίευσης (Bulletin boards) όπως το The WELL, όπου οι χρήστες μπορούσαν να αφήσουν και μηνύματα ο ένας στον άλλον, χρησιμοποιώντας dial-up modems. Την ίδια εποχή, διαφορετικοί κλάδοι συνδιαμόρφωσαν την σχεδίαση αλληλεπίδρασης. Σχεδιαστές όπως ο Henry Dreyfuss δημιούργησαν ένα νέο πεδίο, περισσότερο προσαρμοσμένο στον άνθρωπο. Η εργονομία, εστίασε στην ασφάλεια των εργαζομένων, αλλάζοντας μερικές φορές τις παραγωγικές διαδικασίες. Η Γνωσιακή ψυχολογία, μελετώντας την ανθρώπινη μάθηση, νόηση και συνείδηση, έδωσε μοντέλα επίλυσης προβλημάτων εγγύτερα του ανθρώπινου εγκεφάλου. Σημαντική ήταν η συμβολή των Alan Newell και George Miller. σελίδα 56

67 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος 1990s μέχρι το παρόν Η εποχή των δικτύων υπολογιστών και της σχεδίασης αλληλεπίδρασης ως θεσμισμένο πεδίο ξεκίνησε στις αρχές της δεκαετίας του Ο Παγκόσμιος Ιστός (World Wide Web), ο οποίος επιτρέπει σε οποιονδήποτε που έχει modem να δημοσιεύει και να έχει πρόσβαση σε σελίδες υπερκειμένου και η μαζική χρήση του έφεραν στο προσκήνιο την ανάγκη για καλύτερη σχεδίαση αλληλεπίδρασης. Την ίδια εποχή άρχισαν να κατασκευάζονται αισθητήρες και μικροεπεξεργαστές οι οποίοι γίνονταν μικρότεροι, φθηνότεροι, ισχυρότεροι, και εμφυτεύονταν σε μη υπολογιστικές συσκευές. Αυτές πλέον μπορούσαν να εμφανίσουν νέες συμπεριφορές, επιδεικνύοντας γνώση του περιβάλλοντος και της χρήσης τους, γεγονός που μέχρι τότε δεν είχε νόημα. Αυτοκίνητα μπόρεσαν να παρακολουθήσουν μηχανικά τους μέρη και να προειδοποιήσουν για ζημιές. Ηχοσυστήματα μπορούν να ρυθμίσουν τις παραμέτρους ήχου ανάλογα με το είδος της μουσικής που παίζουν. Αυτές οι αλλαγές έπρεπε να γίνουν, μέσω της σχεδίασης, κατανοητές στους χρήστες. Άλλες τεχνολογίες εφάρμοσαν αλληλεπίδραση μεταξύ ατόμων, κυρίως στον τομέα της διασκέδασης. Το Karaoke από την Κίνα και την Ιαπωνία διαδόθηκε και στις ΗΠΑ. Βιντεοπαιχνίδια όπως το Dance Revolution επέτρεψαν την έκφραση μπροστά σε κοινό. Τα Multiplayer παιχνίδια σε υπολογιστές και παιχνιδομηχανές όπως το Sony Playstation ανέδειξαν τον ανταγωνισμό και την συνεργασία, φυσικά μέσα στην μερικότητα που επιτρέπεται κάτι τέτοιο σε μια τεχνική μέθοδο. Online κοινότητες όπως τα Everquest και The Sims Online ανέπτυξαν περίπλοκα μοντέλα εικονικής οικονομίας, πολλές φορές αποδοτικότερα (sic) από τις οικονομίες των offline χωρών. Εκείνη την δεκαετία επίσης, υπήρξε εκρηκτική αύξηση στην χρήση των κινητών τηλεφώνων και συσκευών. Σήμερα, χρησιμοποιούνται από δισεκατομμύρια χρήστες. Ξεκινώντας ως συσκευή κλήσεων εν κινήσει, σήμερα έχουν πολλά χαρακτηριστικά των υπολογιστών. Τα PDA είχαν μέτριο ξεκίνημα με το Newton της Apple το 1995, αλλά μέχρι το τέλος της δεκαετίας είχαν τραβήξει την προσοχή με συσκευές όπως τα Palm Pilot και Blackberry PDAs. Οι υπολογιστές, επίσης, έγιναν κινητές συσκευές με την εισαγωγή των laptop στην αγορά - ήδη το 2003 τα laptop ξεπερνούσαν σε πωλήσεις τους σταθερούς υπολογιστές στις ΗΠΑ. Καθώς το Internet ωρίμασε, άλλαξε και η φύση των εφαρμογών του. Μέχρι το τέλος των 90s, το Internet σήμαινε περισσότερο ενεργητική συμπεριφορά, παρά παθητική ανάγνωση πληροφορίας: κοινή διαμοίραση φωτογραφιών, ανάπτυξη blog, αγορά βιβλίων, ακρόαση live μουσικής, ανάπτυξη προσωπικών σχέσεων (myspace σε αντίθεση με τα συνηθισμένα groups). To Internet παρέχει νέους τρόπους επικοινωνίας, όπως το instant messaging και το Voice over Internet Protocol (VoIP). Έγινε μια πλατφόρμα εφαρμογών, με τον ίδιο τρόπο που ήταν κάποτε το Microsoft DOS, όμως αυτές οι εφαρμογές μπορούν να εκμεταλλευτούν τα χαρακτηριστικά της δικτύωσης: συλλογικές διαδικασίες όπως το project με το οποίο αναζητούνται σήματα εξωγήινης δραστηριότητας, δεδομένα που συλλέγονται παθητικά από μεγάλους αριθμούς ατόμων όπως το χαρακτηριστικό People who bought this also bought... του Amazon, κοινωνικές ομάδες όπως τα Yahoo Groups, παγκόσμια (και συμμετοχική) ενημέρωση εναλλακτικών κινημάτων από δίκτυα όπως το Indymedia, προσωποποιημένη ενημέρω- σελίδα 57

68 Έλεγχος Μουσικών Παραμέτρων μέσω Video ση από πηγές XML και RSS. Σύντομα θα μπορούσαμε να δούμε την ανάπτυξη βαριών εφαρμογών online, κάτι που θα άλλαζε ραγδαία τον τρόπο που χρησιμοποιούνται οι υπολογιστές και το Internet. Στο άκουσμα της δημιουργίας π.χ. του Photoshop Online, ή του Logic Pro Online, ή του OpenOffice Online, μόνο αύξηση της προσβασιμότητας μπορούμε να φανταστούμε, με ό,τι θετικό ή αρνητικό μπορεί να συνεπάγεται μια συνεπής ή πρόχειρη προσέγγιση, αντίστοιχα. Εκτός από το ίδιο το Internet, η ίδια η πρόσβαση σε αυτό, μέσω των broadband συνδέσεων και των WiFi δικτύων, αλλάζει το πώς αλλά και το πού μπορούμε να αλληλεπιδράσουμε μεταξύ μας. [13] [14] Αλλαγή στην αλληλεπίδραση επέρχεται και στα μη δικτυωμένα συστήματα. Ο στιβαρός, αν και μικρός, υπολογιστής των 100 δολλαρίων, ειδικά σχεδιασμένος για παιδιά, παρέχει application-based γραφική διεπαφή με έμφαση στην ευχρηστία, webcam, αδιάβροχο mousepadtablet κλπ. Τα πλεονεκτήματα έγιναν άμεσα φανερά σε ολιγόλεπτη επαφή που είχαμε με αυτόν (ευχαριστούμε τον κο. Σπινέλλη), και σίγουρα αρκετοί χρήστες του θα γαλουχηθούν εξ αρχής (και υπόρρητα) με έννοιες της σχεδίασης αλληλεπίδρασης που λείπουν από τα παρόντα συστήματα. Άλλες βελτιώσεις που αφορούν την εισροή και τον έλεγχο δεδομένων στον υπολογιστή, προήλθαν από την ιατρική και τον κινηματογράφο και παρουσιάζουν αρκετές ομοιότητες. Ο τομέας καταγραφής κίνησης (motion capture), συνήθως χρησιμοποιεί αισθητήρες, ανακλαστικούς ή γυροσκοπικούς για να δημιουργήσει και να ελέγξει εικονικά περιβάλλοντα. Αρκετές προσεγγίσεις συνδυάζουν αισθητήρες διαφορετικών τύπων, όπως αδρανειακής ανίχνευσης και αισθητήρες GPS. Οι πιο πρόσφατες υλοποιήσεις ( ) που ακολούθησαν αυτήν την προσέγγιση, εκτελούνται σε έναν υπολογιστή χειρός (U70), και συνδυάζουν πέντε συστήματα ανίχνευσης: αδρανειακή (XSens MT9), υπέρυθρης όρασης (ARTTrack), μαγνητική (Flock of Birds), οπτική (ARToolKit), και GPS (Garmin GPS18 USB). Στην τρισδιάστατη καταγραφή κίνησης, συνήθως χρησιμοποιείται ένα real-time 3DOF (orientation) σύστημα, βασισμένο σε αδρανειακούς αισθητήρες (ροπή/gyro, επιτάχυνση, και δεδομένα γήινου μαγνητικού πεδίου), από την Xsens Technologies (εικόνα 3.1). Η διεπαφή που απαιτείται μεταξύ του σώματος και του συστήματος δεν είναι ανάγκη να διέρχεται από σταθερούς σταθμούς βάσης στο κοντινό περιβάλλον, οπότε το φορητό αυτό σύστημα εξαρτάται μόνο από την ασύρματη μετάδοση των δεδομένων. Έτσι περιορίζονται οι παρεμβολές και ο θόρυβος, διευρύνοντας την περιοχή λειτουργίας και πιθανά βελτιώνοντας τον ρυθμό ανανέωσης δεδομένων και την ακρίβεια. [15] [16] σελίδα 58

69 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Εικόνα 3.1: XSens MT9 Η συνήθης πλοήγηση σε εικονικά περιβάλλοντα με οθόνες αφής προέρχεται από τις 2D και 3D επιφάνειες των υπολογιστών και η καταλληλότητά της αμφισβητείται. Η συσκευή iorb (εικόνα 3.2) σχεδιάστηκε ειδικά για μετάδοση εντολών και εισαγωγή δεδομένων σε εικονικά περιβάλλοντα. Αποτελείται από έναν 3DOF αδρανειακό ανιχνευτή (XSens MT9) ενσωματωμένο σε ένα κέλυφος δύο ημισφαιρίων διαμέτρου περίπου 8cm. Περιστρέφοντας την σφαίρα και πιέζοντας τα δύο ημισφαίρια μαζί, ο χρήστης μπορεί να εκτελέσει εντολές εφαρμογών χρησιμοποιώντας επιλογές από 1D και 2D pie menus. Παρομοίως, χωρικές επιλογές μπορούν να γίνουν με μια ακτίνα ή κώνο επιλογής. Η αλληλεπίδραση χρησιμοποιεί σχετικές περιστροφικές αποστάσεις και οι μετρήσεις είναι συνεπώς σημαντικά ευαίσθητες σε σφάλματα. [17] σελίδα 59

70 Έλεγχος Μουσικών Παραμέτρων μέσω Video Εικόνα 3.2: iorb 3.3. Video Tracking Οι αισθητήρες έχουν ελκυστική ποιότητα ως αναλογική είσοδος στον υπολογιστή, αλλά σε πραγματικές, μη εργαστηριακές συνθήκες, δημιουργούν αρκετά προβλήματα. Κάποιος θα μπορούσε να αντιληφθεί μια βιντεοκάμερα σαν μία πυκνή ομάδα αισθητήρων, χιλιάδων φωτοκυττάρων, με την οποία (ομάδα) λύνονται αρκετά από τα προβλήματα που έχει ο κάθε αισθητήρας ξεχωριστά. Οι κάμερες μπορούν μέσω του φακού που διαθέτουν να μειώσουν το εύρος του εισρεόμενου φωτός, μέσω της ίριδάς τους να ρυθμίσουν τις συνθήκες φωτισμού, και έχουν την δυνατότητα να διαχωρίζουν το εισερχόμενο φως ανά χρώμα, σε RGB. Αυτές οι ακόμα ελκυστικότερες δυνατότητες κάνουν την μηχανική όραση (machine vision) έναν πολλά υποσχόμενο και γρήγορα αναπτυσσόμενο τομέα. Οι υπολογιστές έχουν γίνει αρκετά γρήγοροι ώστε να χειρίζονται τα βίντεο ανά εικονοστοιχείο (pixel-by-pixel), αντί ανά καρέ (frame-by-frame). Αν θέλουμε να ξέρουμε π.χ. την θέση ενός ατόμου σε ένα δωμάτιο, μπορούμε να τοποθετήσουμε μια κάμερα στο ταβάνι και, μετά, να γράψουμε κάποιο πρόγραμμα που να ελέγχει την θέση Χ και Y όποιων εικονοστοιχείων έχουν διαφορετικό χρώμα από το πάτωμα. Τέτοιες λύσεις είναι συχνά οι βέλτιστες σε μεγάλους χώρους. Για να βελτιωθεί ένας τέτοιος προγραμματισμός, συχνά χρειάζεται να αναθεωρήσουμε την αντίληψή μας για το πώς βλέπουμε. Ένας από τους παράγοντες που κάνει την μηχανική σελίδα 60

71 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος όραση δύσκολη, είναι ότι οι κάμερες και οι υπολογιστές δεν προσαρμόζονται στις συνθήκες αυτόματα, τουλάχιστον με τον τρόπο που προσαρμόζεται ο εγκέφαλος και τα μάτια του ανθρώπου. Τελευταίες έρευνες δείχνουν ότι το ανθρώπινο μάτι είναι αρκετά πιο αυτόνομο απ ό,τι νομιζόταν μέχρι τώρα, καθώς σε ένα χαμηλό επίπεδο αποφασίζει ποια σήματα θα στείλει στον εγκέφαλο (ενδεχομένως, όμως, κάνοντας λάθος). [18] [19] Παρόλ αυτά, ήδη με την μέχρι τώρα αντίληψη που υπήρχε, η δυνατότητα αυτόματης εστίασης του ματιού και η δυνατότητα της αντίληψης του χρώματος κάτω από διαφορετικούς φωτισμούς, είναι δύσκολο να εφαρμοστούν σε μηχανικά μέρη. Η τελευταία δε, είναι η δυσκολότερη, καθώς συνήθως ο υπολογιστής θα αντιληφθεί απλώς διαφορετικά χρώματα, και όχι την ίδια απόχρωση σε άλλες συνθήκες φωτισμού. Ακόμα χειρότερα, όταν χρησιμοποιούνται αναλογικά πρότυπα βίντεο (NTSC, PAL) που έχουν μεγάλα ποσοστά θορύβου, διακυμάνσεις στο σήμα θα κάνουν το χρώμα συγκεκριμένων εικονοστοιχείων να αλλάζει, ακόμα και όταν το πραγματικό του χρώμα δεν αλλάζει. Ακόμα και αν λυθούν τα προβλήματα στο χρώμα με την χρήση καλύτερου εξοπλισμού, παραμένει ακόμα το δυσκολότερο πρόβλημα: η αναγνώριση αντικειμένων. Σαν άνθρωποι, αναγνωρίζουμε αρκετά εύκολα αντικείμενα, υπό ορισμένες συνθήκες, ενώ είναι πολύ δύσκολο να γραφεί ένα πρόγραμμα που συμπεριφέρεται παρομοίως. Συνήθως αναπτύσσονται περιορισμοί σχετικά με το χρώμα του παρασκηνίου (background), οι οποίοι γενικά, όσο περισσότεροι είναι, τόσο λειτουργικότερο αλλά και μη ρεαλιστικό είναι το πρόγραμμα. Ο πρώτος παράγοντας που πρέπει να ληφθεί υπ όψιν, είναι ο φωτισμός. Δυνατός, ομοιόμορφος φωτισμός, θα δώσει καθαρή εικόνα στην κάμερα, με υψηλό contrast, οπότε θα απλοποιηθεί η διαδικασία επιλογής μεταξύ προσκηνίου-παρασκηνίου (βλ. και κεφάλαιο 7. Αξιολόγηση). Συχνά, οι κάμερες προσπαθούν να ενισχύσουν τον φωτισμό αυτόματα, οπότε έχουμε σήμα με υψηλό θόρυβο. Το θάμπωμα (blurring) της εικόνας μέσω του λογισμικού, και όχι από τον φακό της κάμερας, μειώνει τα προβλήματα από τον θόρυβο και τον κακό φωτισμό, αλλά μειώνει την ανάλυση της εικόνας και καθυστερεί την επεξεργασία της. Τα καλύτερα αποτελέσματα επιτυγχάνονται με την χρήση υπέρυθρης κάμερας. Σε υπέρυθρη μπορεί να μετατραπεί οποιαδήποτε κάμερα, αλλά η διαδικασία είναι υπερβολικά λεπτεπίλεπτη και αμφιβόλλου αποτελέσματος. [20] σελίδα 61

72 Έλεγχος Μουσικών Παραμέτρων μέσω Video 4. Ψηφιακή Επεξεργασία & Ανάλυση Εικόνας 4.1. Απεικόνιση Αλγεβρικών Επιφανειών Η τεχνολογία δημιουργίας ρεαλιστικών και οπτικά ενδιαφερουσών εικόνων βελτιώνεται σε πολλούς τομείς. Ένας τέτοιος τομέας είναι η ανάπτυξη αλγορίθμων για την απεικόνιση επιφανειών απ ευθείας από τον μαθηματικό ορισμό τους, αντί της διαμέρισής τους σε μεγάλο αριθμό πολυγώνων. Δύο κλάσεις επιφανειών που θεωρούνται σημαντικές είναι οι τετραδικές, και οι επιφάνειες δυαδικών παραμέτρων. Οι τελευταίες παράγονται από την αλλαγή των τιμών δύο (πολυωνυμικών) μεταβλητών σε τρεις συναρτήσεις. [21] [22] Οι τετραδικές επιφάνειες, αντιθέτως, είναι λύσεις των συναρτήσεων δεύτερης τάξης των συντεταγμένων: ax 2 + bxy + cxz + dx + ey 2 + fyz + gy + hz 2 + iz + j=0. Επίσης, ανήκουν στις λείες επιφάνειες, δηλαδή είναι λύσεις μιας εξίσωσης της μορφής: F(x, y, z) = 0. Μια βελτίωση στην απεικόνισή τους προήλθε από την απεικόνιση των ηλεκτρονίων. Για λόγους αισθητικούς αλλά και επιστημονικής ακρίβειας, αναζητήθηκε ένα μοντέλο που δεν χρησιμοποιεί σφαίρες και ευθείς δεσμούς. Οι δεσμοί μεταξύ των ατόμων ήταν επιθυμητό να φαίνονται πιο ρευστοί. Στην πραγματικότητα, αυτό πλησιάζει περισσότερο την εικόνα της πυκνότητας ενός νέφους ηλεκτρονίων σε έναν δεσμό. Επίσης, όταν κινούνται, οι δεσμοί πρέπει να τεντώνονται και να κινούνται με ρεαλιστικό τρόπο, όπως όταν ένα άτομο απομακρύνεται από το μόριό του. Μια συμβατική προσέγγιση θα ήταν να μοντελοποιηθεί ένα τέτοιο σχήμα με τις ήδη γνωστές δυαδικές ή τετραδικές επιφάνειες. Αυτό είναι εφικτό για έναν δεσμό, αλλά δύσκολο για πολυπλοκότερα μόρια με επικαλυπτόμενους δεσμούς (π.χ. δομές δακτυλίου). Επίσης, οι αλλαγές που προκύπτουν στην τοπολογία όταν ένας δεσμός σπάει είναι δύσκολο να αυτοματοποιηθούν. Για αυτούς τους λόγους, χρησιμοποιήθηκε ένα βασικό μαθηματικό μοντέλο που έχει παρόμοια μορφή με μια πραγματική προσομοίωση χαρτών πυκνότητας ηλεκτρονίων. Η κβαντομηχανική αναπαριστά το ηλεκτρόνιο σε ένα άτομο σαν μια συνάρτηση πυκνότητας στον χώρο. Επί παραδείγματι, μια τέτοια συνάρτηση για το άτομο του υδρογόνου είναι: D(x, y, z) = e -ar όπου r = ( (x- x l ) 2 + (y-y 1 ) 2 + (z - z l ) 2 ) (x l, y l, z l ) = θέση του ατόμου Μπορούμε να αναπαραστήσουμε αυτήν την συνάρτηση για ένα πλήθος ατόμων αθροίζοντας την συνεισφορά του κάθε ατόμου. σελίδα 62

73 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος D(x, y, z) = ( b i exp(-a i r i ) ) όπου r i = η απόσταση από το x, y, z ως το κέντρο του ατόμου i. Μια επιφάνεια μπορεί να οριστεί ως το σύνολο των σημείων εκείνων όπου η πυκνότητα ισούται με κάποια ποσότητα κατωφλίου: F(x, y, z) = D(x, y, z) - T. Όλα τα σημεία στο εσωτερικό της επιφάνειας έχουν πυκνότητα ηλεκτρονίων μεγαλύτερη του Τ. Ως metaball μπορεί να οριστεί μια τέτοια ισοεπιφάνεια πεδίων πυκνότητας στον χώρο, και αυτός ο ορισμός είναι συνεπής για 2D και 3D χώρους. Ο πρωταρχικός σκοπός μιας κανονικής metaball ήταν, όπως είδαμε, να παράγει μια λεία ισοεπιφάνεια, η οποία παράγεται από την κατανομή πυκνότητας. Ωστόσο, όταν μια metaball χρησιμοποιείται σε 2D πεδίο, μπορεί να αναπαραστήσει πολυπλοκότερα σχήματα από ότι σκοπευόταν αρχικά. Η διαδικασία απεικόνισης των metaballs είναι η εξής: 1. Έλεγχος του τρέχοντος pixel σχετικά με το εύρος του πεδίου πυκνότητας της metaball. 2. Αν το τρέχον pixel βρίσκεται εντός του εύρους, υπολόγισε την συνολική τιμή πυκνότητας στο pixel. 3. Έλεγχος κατωφλίου: Αν η συνολική τιμή πυκνότητας ικανοποιεί το επίπεδο κατωφλίου, απεικόνισε το τρέχον pixel ως μέρος της metaball. Εικόνα 4.1: Τιμές πυκνότητας επιφάνειας. Η διαδικασία εκτελείται για όλα τα pixels της οθόνης. Η αλλαγή της τιμής του κατωφλίου επιφέρει αλλαγές στην απεικόνιση. Αφού σε κανονικές metaballs, η τιμή ολικής πυκνότητας σελίδα 63

74 Έλεγχος Μουσικών Παραμέτρων μέσω Video στο τρέχον pixel χρησιμοποιείται για τον υπολογισμό του κατωφλίου, η διαδικασία για κάθε pixel εκτελείται μόνο μία φορά. Εικόνα 4.2: Υπολογισμός 2D metaballs Το αποτέλεσμα μοιάζει με τοπογραφικό ή μετεωρολογικό χάρτη, όπου διαφορετικές λωρίδες απεικονίζουν επιφάνειες που αντιστοιχύν σε ένα ύψος ή σε ένα βαρομετρικό πεδίο. Το ίδιο μπορεί να γίνει για να απεικονιστεί η ισχύς ενός ηλεκτρικού πεδίου, ή οι περιοχές με πολύ μικρή ή μεγάλη φωτεινότητα σε μια ψηφιακή εικόνα. [23] [24] [25] Εικόνα 4.3: Υπολογισμός 3D metaballs σελίδα 64

75 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος 4.2. Ανίχνευση Ακμών Οι ακμές είναι βασικά χαρακτηριστικά της εικόνας, καθώς φέρουν πληροφορία για τα όρια των αντικειμένων, από τα οποία μπορούμε να τα προσδιορίσουμε. Παρά τη θεμελιώδη σημασία τους στην ψηφιακή επεξεργασία και ανάλυση εικόνας, καθολικά αποδεκτός μαθηματικός ορισμός της ακμής δεν υπάρχει ακόμα. Γενικά, μπορεί να οριστεί ότι: Ακμή είναι το σύνορο μεταξύ δύο ομογενών περιοχών μιας εικόνας που έχουν διαφορετικές εντάσεις φωτεινότητας. Αυτός ο ορισμός σημαίνει ότι η ακμή είναι μια τοπική μεταβολή της φωτεινότητας (χωρίς να ισχύει αναγκαστικά και το αντίστροφο). Οι διάφορες μέθοδοι ανίχνευσης ακμών, μπορούν να ομαδοποιηθούν σε δύο κατηγορίες: 1. Τοπικές τεχνικές, που χρησιμοποιούν τελεστές που δρουν σε τοπικές γειτονιές της εικόνας (οι πιο συνήθεις) και, 2. Καθολικές τεχνικές, που χρησιμοποιούν καθολική πληροφορία από όλη την εικόνα και μεθόδους φιλτραρίσματος για την εξαγωγή πληροφορίας για τις ακμές. Όπως έχει δειχθεί, η αναγνώριση κίνησης ενός αντικειμένου από τις ακμές του, ισοδυναμεί με τον υπολογισμό ακμών μιας στατικής εικόνας του. [26] [27] Όμως, υπάρχει διαφορά σε δύο περιπτώσεις: 1. Η περίπτωση στην οποία θέλουμε εξαιρετικά μεγάλη λεπτομέρεια στην αναγνώριση κίνησης ενός αντικειμένου, 2. Εφαρμογές πραγματικού χρόνου (real time), σε αντίθεση με την περίπτωση επεξεργασίας αποθηκευμένου βίντεο. Για την αναγνώριση ακμών σε εικόνες, συνήθως χρησιμοποιείται η συνθήκη f (x) >T, όπου Τ κάποια ποσότητα κατωφλίου. Η κλίση (Gradient): f(x,y) = ( f(x,y) / x ) û x + ( f(x,y) / y ) û y όπου û x, û τα μοναδιαία διανύσματα στην κατεύθυνση του x και του y αντίστοιχα, επεκτείνει y σε δισδιάστατες συναρτήσεις τη συνθήκη. Στη διακριτή περίπτωση μιας ψηφιακής εικόνας f(n,m), οι μερικές παράγωγοι μπορούν να προσεγγισθούν με την χρήση μερικών διαφορών: G R (n,m) [f(n+1,m+1) - f(n-1,m+1)] + 2 [f(n+1,m) - f(n-1,m)] + [f(n+1,m-1) - f(n-1,m-1)] Η παραπάνω σχέση μπορεί να αντιστοιχηθεί και να υλοποιηθεί με τη βοήθεια μιας μάσκας στη γειτονιά του εικονοστοιχείου f(n,m). Έτσι, με την μάσκα: σελίδα 65

76 Έλεγχος Μουσικών Παραμέτρων μέσω Video x 4 x 3 x 2 x 5 x 0 x 1 x 6 x 7 x 8 οι μερικές διαφορές υπολογίζονται ως: G R (n,m) = [1/(k+2)] [ (x 2 + k x 1 + x 8 ) - (x 4 + k x 5 + x 6 )] όπου k R. Ανάλογα με τις διάφορες τιμές και μεγέθη γειτονιάς που δίνονται έχουμε διαφορετικές μάσκες, με πιο γνωστές αυτές των Roberts, Prewitt, Sobel, V3ga και Canny. Άλλες μέθοδοι περιλαμβάνουν είτε χρήση πολλών μασκών για ακμές με διαφορετικές γωνίες (Kirsch), είτε υπολογισμό της 2 f(x,y) (Marr και Hildreth). [28] [29] α) β) γ) Εικόνα 4.4: α) Η πασίγνωστη, πλέον, Lena ( ). β) Με χρήση του Find Edges στο Adobe Photoshop. γ) Εύρεση metaballs και ανίχνευση ακμών με τον αλγόριθμο V3ga (T=0.38). Αυτές οι μέθοδοι, είναι κατάλληλοι για στατικές εικόνες, αλλά δεν χρησιμοποιούν χωρικές σελίδα 66

77 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος πληροφορίες και δεν μοιάζουν καθόλου με την ανθρώπινη οπτική αντίληψη, αλλά χρησιμοποιούν μόνο την στατιστική συμπεριφορά των ακμών. Συνεπώς, δεν αναγνωρίζονται ακμές που αλλοιώνουν την μορφή τους. Ένας τρόπος για να ξεπεραστεί αυτό το πρόβλημα είναι να χρησιμοποιηθούν αντιληπτικές και χωρικές πληροφορίες και, με κατάλληλο πλήθος DCT μετασχηματισμών, να δοθούν ακμές με υψηλή ποσότητα πληροφορίας για το contrast τους. Αυτή η αντίληψη ταιριάζει αρκετά και με την ανθρώπινη όραση, τουλάχιστον με την παρούσα -ελλιπή- γνώση επί του θέματος. Επίσης, η μέθοδος επιτρέπει στους χρήστες να επιλέξουν κατάλληλες λεπτομέρειες ακμών από διαφορετικά επίπεδα ακμών που ανιχνεύθηκαν από την μέθοδο, για διαφορετικές εφαρμογές στης οποίες η ποιότητα της ανθρώπινης όρασης παίζει εξαιρετικά σημαντικό ρόλο. [30] Ένας άλλος τρόπος είναι να προσδιοριστούν πρώτα metaballs στην εικόνα, ώστε να έχουμε ένα περιορισμένο σύνολο επιφανειών και μετά, να εφαρμοστεί κάποια μάσκα τοπικά, ώστε να γίνει ανίχνευση ακμών μόνο σε περιοχές με τιμές ήδη μεγαλύτερες του Τ (ή μικρότερες, αν ενδιαφερόμαστε για φωτεινές περιοχές). Ο αλγόριθμος, τον οποίο θα αναφέρουμε ως αλγόριθμο V3ga, είναι εξαιρετικά κατάλληλος για real time video tracking εφαρμογές. [31] 4.3. QuickTime Video Το QuickTime είναι ένα πακέτο λογισμικού επιπέδου συστήματος ανεξάρτητο πλατφόρμας για Macintosh, Windows και Java το οποίο προσθέτει τη δυνατότητα για προβολή ταινιών και κόσμων εικονικής πραγματικότητας, σύνθεση μουσικής, προβολή κινούμενων σχεδίων και προσθέτει τη δυνατότητα πολυμέσων στην επιφάνεια εργασίας. [32] Το QuickTime ενσωματώνεται ως ένα σύνολο επεκτάσεων στην πλατφόρμα Macintosh και ως μια βιβλιοθήκη δυναμικών συνδέσεων (DLL) στα Windows. Μπορεί να επεξεργαστεί τα δεδομένα βίντεο, στατικές εικόνες, εικόνες κινουμένων σχεδίων (sprites), διανυσματικά γραφικά, πολλαπλά κανάλια ήχου, μουσική MIDI, τρισδιάστατα αντικείμενα, αντικείμενα εικονικής πραγματικότητας, πανοράματα και κείμενο. Ο αριθμός των τύπων δεδομένων που αναγνωρίζει το QuickTime είναι εντυπωσιακός. Μέχρι τώρα, περισσότεροι από 70 διαφορετικοί τύποι δεδομένων μπορούν να εισαχθούν ή να εξαχθούν και, καθώς οι τύποι προστίθενται, οι εφαρμογές που δημιουργούνται σήμερα θα δουλεύουν μαζί τους αυτόματα. Το QuickTime είναι άμεσα επεκτάσιμο. Είναι κατασκευασμένο με αρθρωτό τρόπο αποτελούμενο από πολλά τμήματα λογισμικού εγκατεστημένα και προσβάσιμα μέσω του Component Manager. Αυτά τα ενσωματωμένα τμήματα ασχολούνται με τις πιο κοινές εργασίες πολυμέσων. Οι developers μπορούν να επεκταθούν σ αυτές τις δυνατότητες γράφοντας παραμετροποιημένα τμήματα που προστίθενται ή που αντικαθιστούν ολοκληρωτικά τις δυνατότητες του QuickTime αν επιθυμούν. Μια σημαντική αρχή άξια αναφοράς είναι η ιδέα των «μέσων βασισμένων στο χρονο» και πώς μπορεί κανείς να τα διαχειριστεί. Το QuickTime είναι ένας γενικευμένος τρόπος για να καθοριστούν χρονικές ακολουθίες και να οργανωθούν πληροφορίες πάνω σ αυτές τις ακολουθίες. σελίδα 67

78 Έλεγχος Μουσικών Παραμέτρων μέσω Video Το QuickTime API είναι τουλάχιστον ευρύ, και η πλήρης κατανόησή του είναι αδύνατη. Παρόλα αυτά, η συναρμολογησιμότητα του QuickTime επιτρέπει να γίνουν πολλά πράγματα εύκολα και γρήγορα με λίγες μόνο κλήσεις. Για παράδειγμα, μπορεί κανείς επιλεκτικά να δουλέψει μόνο με το Movie Toolbox ή με τους Graphics Importers χωρίς να χρειαστεί να υλοποιήσει όλα τα υποκείμενα τμήματα ή τις κλήσεις του API. Δεν χρειάζεται να τα καταλάβετε όλα για να ξεκινήσετε να το δουλεύετε Αρχιτεκτονική Το QuickTime περιλαμβάνει δύο κύριους διαχειριστές το Movie Toolbox και το Image Compression Manager και επιπλέον ένα σετ από ενσωματωμένα τμήματα. MOVIE TOOLBOX Οι εφαρμογές αποκτούν πρόσβαση στις ικανότητες του QuickTime καλώντας συναρτήσεις στο Movie Toolbox. Το Movie Toolbox επιτρέπει σε μια εφαρμογή να αποθηκεύσει, να ανακαλέσει και να χειριστεί χρονο-βασισμένα δεδομένα και παρέχει λειτουργίες για να επεξεργαστείτε ταινίες. IMAGE COMPRESSION MANAGER Τα δεδομένα μιας εικόνας μπορεί να απαιτούν μεγάλο αποθηκευτικό χώρο. Μια ακολουθία από εικόνες, όπως αυτές που περιέχονται σε μια QuickTime ταινία μπορεί να απαιτούν πολλαπλάσιο χώρο. Το Image Compression Manager παρέχει μέσα ανεξάρτητα από τη συσκευή και τα προγράμματα οδήγησης (drivers) για συμπίεση και αποσυμπίεση εικόνων και ακολουθιών εικόνων, επομένως ελαχιστοποιώντας τις απαιτήσεις αποθήκευσης για κάθε εφαρμογή που δουλεύει με αυτές τις εικόνες. Στις περισσότερες περιπτώσεις οι εφαρμογές χρησιμοποιούν τον Image Compression Manager έμμεσα, καλώντας τις εφαρμογές του Movie Toolbox ή εμφανίζοντας μια συμπιεσμένη εικόνα. Ωστόσο, αν μια εφαρμογή συμπιέζει εικόνες ή φτιάχνει ταινίες από συμπιεσμένες εικόνες, μπορεί τότε να καλέσει συναρτήσεις του Image Compression Manager άμεσα Τμήματα Η Apple διαθέτει έναν αριθμό από ενσωματωμένα τμήματα με το QuickTime. Αυτά τα ενσωματωμένα τμήματα παρέχουν σημαντικές υπηρεσίες για εφαρμογές και για τους διαχειριστές που αποτελούν την αρχιτεκτονική του QuickTime. Οι προκαθορισμένοι τύποι τμημάτων περιλαμβάνουν επεξεργαστές εικόνας, χειριστές μέσων και διάφορα εργαλεία (utilities). Τα ενσωματωμένα τμήματα επεξεργασίας δεδομένων εκτελούν τις παρακάτω εργασίες: Τα τμήματα ελεγκτών ταινιών (movie controller components) επιτρέπουν εφαρμογές να σελίδα 68

79 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος παίζουν ταινίες μέσω μιας πρότυπης επιφάνειας χρήστη. Τα τμήματα συμπιεστών εικόνας (image compressor components) συμπιέζουν και αποσυμπιέζουν δεδομένα εικόνας. Τα τμήματα διαλόγου συμπίεσης εικόνας (image compression dialog components) αφήνουν το χρήστη να καθορίσει τις παραμέτρους για τις διαδικασίες συμπίεσης. Τα τμήματα μετατροπής εικόνας (image transcoder components) μετατρέπουν τα συμπιεσμένα αρχεία από μια μορφή σε άλλη. Τα τμήματα ψηφιοποίησης βίντεο (video digitizer components) αφήνουν τις εφαρμογές να ελέγχουν την ψηφιοποίηση βίντεο από τις εξωτερικές συσκευές. Τα τμήματα ανταλλαγής δεδομένων ταινιών (movie data-exchange components) (επίσης γνωστά ως Movie Import και Movie Export Components) αφήνουν τις εφαρμογές να μετακινούν διάφορους τύπους δεδομένων μέσα και έξω από τις QuickTime ταινίες. Τα τμήματα εξόδου βίντεο (video output components) μετατρέπουν τις QuickTime ταινίες σε ροές βίντεο. Τα τμήματα εισόδου γραφικών (graphics import components) επιτρέπουν στις εφαρμογές να εργάζονται με αρχεία στατικής εικόνας μέσω παροχής ενός απλού API το οποίο συνεργάζεται με μια ευρύ ποικιλία αρχείων τύπου εικόνας. Τα τμήματα εξαγωγής γραφικών (graphics export components) αφήνουν τις εφαρμογές να εξάγουν στατικά αρχεία εικόνας χρησιμοποιώντας ένα τυποποιημένο εύχρηστο API. Τα τμήματα μουσικής (music components) επεξεργάζονται και συνθέτουν τις διαδρομές μουσικής στις QuickTime ταινίες. Τα τμήματα εφέ και μεταβάσεων (effects and transitions components) εκτελούν την σύνθεση βίντεο, τα βίντεο φίλτρα και τις μεταβάσεις βίντεο, συμπεριλαμβανομένων των 133 τυποποιημένων μεταβάσεων SMPTE. Αυτά τα συστατικά υλοποιούνται ως υποκατηγορία τμημάτων αποσυμπιεστών εικόνας. Τα τμήματα προεπισκόπισης (preview components) χρησιμοποιούνται από τις πρότυπες λειτουργίες προεπισκόπισης αρχείων του Movie Toolbox για να προβάλλουν και να δημιουργούν τις οπτικές προεπισκοπίσεις του περιεχομένου των αρχείων. Τα ενσωματωμένα μέσα διαχείρισης τμημάτων του QuickTime: Τα μέσα διαχείρισης τμημάτων υλοποιούν τη συμπεριφορά διαφορετικών τύπων καναλιών. Ασχολούνται με τις λεπτομέρειες του πώς τα δεδομένα μέσων ενός συγκεκριμένου καναλιού θα έπρεπε να παρουσιαστούν στον θεατή. Τμήμα διαχείρισης μέσων βίντεο (Video media handler Component) υλοποιεί τα κανάλια σελίδα 69

80 Έλεγχος Μουσικών Παραμέτρων μέσω Video βίντεο μέσω της κλήσης του Image Compression Manager για την προβολή δειγμάτων βίντεο. Τμήμα διαχείρισης μέσων ήχου (Sound media handler Component) υλοποιεί τα κανάλια ήχου μέσω κλήσης του Sound Manager για να παίξει τα δείγματα ήχου. Οι ενσωματωμένες εφαρμογές του QuickTime εκτελούν τα παρακάτω καθήκοντα: Τα τμήματα ρολογιού (Clock components) παρέχουν υπηρεσίες συγχρονισμού για τις εφαρμογές που χρησιμοποιούν QuickTime. Το τυποποιημένο τμήμα ήχου (Standard Sound Component) αφήνει μια εφαρμογή να παρουσιάσει στο χρήστη με έναν διάλογο για τη διαμόρφωση των ρυθμίσεων ήχου. Τα τμήματα ακολουθίας συλλέκτη (Sequence grabber components) επιτρέπουν στις εφαρμογές την προεπισκόπιση και καταγραφή δεδομένων βίντεο και ήχου ως ταινίες QuickTime. Τα τμήματα καναλιών ακολουθίας συλλέκτη (Sequence grabber channel components) διαχειρίζονται την απόκτηση μεμονωμένων ροών δεδομένων για τμήματα ακολουθίας συλλέκτη. Παραδείγματος χάριν, το τμήμα βίντεο καναλιού ακολουθίας συλλέκτη αποκτά βίντεο. Τα τμήματα καναλιών κειμένων (Text channel components) είναι τμήματα καναλιών ακολουθίας συλλέκτη για κείμενο. Τα τμήματα πλαισίου ακολουθίας συλλέκτη (Sequence grabber panel component) επιτρέπουν τα τμήματα ακολουθίας συλλέκτη να λάβουν τις πληροφορίες διαμόρφωσης από το χρήστη για ένα συγκεκριμένο τμήμα καναλιού ακολουθίας συλλέκτη Ο Συλλέκτης Ακολουθίας (Sequence Grabber) Τα τμήματα συλλέκτη ακολουθίας επιτρέπουν στις εφαρμογές τη λήψη ψηφιοποιημένων δεδομένων από εξωτερικές πηγές, όπως τη συλλογή ορίων βίντεο. Τα ψηφιοποιημένα δεδομένα μπορούν να προεπισκοπιστούν, εφόσον σωθούν ως ταινία του QuickTime, ή και τα δύο. Τα τμήματα ακολουθίας συλλέκτη επιτρέπουν στις εφαρμογές να συλλέξουν/καταγράψουν εύκολα ήχο και βίντεο, χωρίς ενδοιασμούς για τις λεπτομέρειες του πως θα αποκτηθούν τα δεδομένα. Αυτά τα τμήματα βασίζονται σε υπηρεσίες τμημάτων χαμηλότερων στρωμάτων, τα οποία λέγονται τμήματα καναλιών, για την απόκτηση ψηφιοποιημένων δεδομένων από διαφορετικές πηγές. Για παράδειγμα, ένα απλό τμήμα συλλέκτη ακολουθίας μπορεί να παρέχει σε μια εφαρμογή δεδομένα βίντεο και ήχου, χρησιμοποιώντας τις εφαρμογές από διαφορετικά τμήματα καναλιού για ήχο και βίντεο. Τα τμήματα καναλιού, με τη σειρά τους, μπορεί να βασίζονται στις υπηρεσίες ακίνητων τμημάτων χαμηλότερου επιπέδου, όπως τμήματα ψηφιοποίησης βίντεο. Καθώς η ολοκληρωμένη διαδικασία της συλλογής ψηφιακών δεδομένων από διαφορετικές πηγές είναι λίγο πολύπλοκη ένας QuickTime δημιουργός προστατεύεται από αυτές τις πολυ- σελίδα 70

81 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος πλοκότητες μέσω της χρήσης ενός υψηλού επιπέδου συλλέκτη ακολουθίας API Προεπισκόπηση Προεπισκόπηση σημαίνει η αναπαραγωγή των δεδομένων του χρήστη καθώς καταγράφονται. Για δεδομένα βίντεο, οι εικόνες βίντεο απεικονίζονται στην οθόνη. Για δεδομένα ήχου, γίνεται αναπαραγωγή στο σύστημα ήχου του υπολογιστή Εγγραφή (Recording) Κατά την διάρκεια της εγγραφής, ένας συλλέκτης ακολουθίας συλλέγει τα δεδομένα που καταγράφονται και τα μορφοποιεί σε ταινία QuickTime. Συγχρόνως, μπορεί να αναπαράγονται τα δεδομένα για τον χρήστη. Ωστόσο, ο συλλέκτης ακολουθίας προσπαθεί να εμποδίσει την δημιουργία προβλήματος στην ποιότητα της εγγραφής λόγω της αναπαραγωγής Τμήματα Καναλιού (Channel Components) Χρησιμοποιούνται από τμήματα ανώτερου επιπέδου, και η λειτουργία τους είναι να αποκρύπτουν από τον συλλέκτη ακολουθίας λεπτομέρειες σχετικά με τους πραγματικούς τύπους δεδομένων. Έτσι ο προγραμματιστής μπορεί να λειτουργήσει σε ένα πιο αφηρημένο επίπεδο. Τα τμήματα καναλιών μπορούν, με τη σειρά τους, να επηρεάζονται από τμήματα ακόμα χαμηλότερου επιπέδου, όπως τα τμήματα ψηφιοποίησης βίντεο. Οι προγραμματιστές εφαρμογών QuickTime χρησιμοποιούν αυτές τις υπηρεσίες αλλά δεν χρειάζεται να τις καλούν άμεσα Τμήματα Πλαισίου (Panel Components) Ένα τμήμα πλαισίου δημιουργεί ένα πλαίσιο διαλόγου (settings dialog box) για τις ρυθμίσεις που αφορούν τη συμπεριφορά ενός τμήματος καναλιού. Για παράδειγμα, ένα πλαίσιο μπορεί να επιτρέπει στον χρήστη να ελέγξει το frame rate της καταγραφής από έναν ψηφιοποιητή βίντεο και την ποιότητα από έναν συμπιεστή εικόνας. Τα πλαίσια διαλόγου δεν καλούνται ποτέ άμεσα από μια εφαρμογή. Οι προγραμματιστές QuickTime εφαρμογών χρησιμοποιούν έμμεσα τα πλαίσια καλώντας το τμήμα συλλέκτη ακολουθίας, ο οποίος χρησιμοποιεί ένα τμήμα πλαισίου για να αποκτήσει τις προτιμήσεις του χρήστη και να ρυθμίσει το τμήμα καναλιών Υλοποίηση Το QuickTime είναι πραγματικά ανεξάρτητο πλατφόρμας - η διεπαφή προγραμματισμού εφαρμογών είναι ίδια σε Macintosh και Windows. Κώδικας γραμμένος σε QuickTime APIs σελίδα 71

82 Έλεγχος Μουσικών Παραμέτρων μέσω Video (όπως το Processing - βλ. παρακάτω) θα μεταγλωττιστεί και θα εκτελεστεί σωστά και στις δύο πλατφόρμες. Επίσης. το QuickTime for Java επιτρέπει μέσω κώδικα Java πρόσβαση στο QuickTime σε Macintosh και Windows. Το QuickTime for Java είναι υλοποιημένο σαν ένα σύνολο κλάσεων και μεθόδων που δίνουν πρόσβαση στο QuickTime. Το QuickTime for Java απαιτεί Java Virtual Machine Version 1.1 ή νεότερη και το ίδιο το QuickTime. Ακολουθεί παράδειγμα μεταφοράς δεδομένων από το τμήμα συλλέκτη ακολουθίας στο τμήμα απεικόνισης του QuickTime, γραμμένο σε Java. // // // DataProcTest // // Created by Jochen Broz on // Copyright (c) 2005 Jochen Broz. All rights reserved. // import java.util.*; import quicktime.*; import*; import quicktime.std.*; import quicktime.qd.*; import quicktime.util.*; import*; import quicktime.std.image.*; import quicktime.std.movies.*; import quicktime.std.qtcomponents.*; import*; import java.awt.*; import java.awt.image.*; import javax.swing.*; public class DataProcTest { public static void main (String args[]) { try{; // Setting up the Sequence Grabber final SequenceGrabber sg = new SequenceGrabber(); final SGVideoChannel vc = new SGVideoChannel(sg); final QDRect cameraimagesize = new QDRect(320, 240); // vc.getsrcvideobounds(); final QDGraphics gworld=new QDGraphics(cameraImageSize); sg.setgworld(gworld, null); vc.setbounds(cameraimagesize); vc.setusage(quicktime.std.stdqtconstants.seqgrabrecord ); vc.setframerate(0); final int mycodec = quicktime.std.stdqtconstants.kcomponentvideocodectype ; vc.setcompressortype(mycodec); σελίδα 72

83 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος // Setting up the buffered image int size = gworld.getpixmap().getpixeldata().getsize(); int intsperrow = gworld.getpixmap().getpixeldata ().getrowbytes()/4; size = intsperrow*cameraimagesize.getheight(); final int[] pixeldata = new int[size]; DataBuffer db = new DataBufferInt(pixelData, size); ColorModel colormodel = new DirectColorModel(32, 0x00ff0000, 0x0000ff00, 0x000000ff); int[] masks= {0x00ff0000, 0x0000ff00, 0x000000ff}; WritableRaster raster = Raster.createPackedRaster(db, cameraimagesize. getwidth(), cameraimagesize.getheight(), intsperrow, masks, null); final BufferedImage image = new BufferedImage (colormodel, raster, false, null); // Setting up a component, capable of displaying the image class MyComp extends Component{ public void paint(graphics g){ super.paint(g); g.drawimage(image, 0, 0, this); }; }; final MyComp ret = new MyComp(); Frame myframe = new Frame( Test ); myframe.setbounds(100, 100, cameraimagesize.getwidth(), cameraimagesize. getheight()); myframe.add(ret);; //Defining the data procedure which pushes the data into the image SGDataProc mydataproc = new SGDataProc(){ DSequence ds = null; final Matrix idmatrix=new Matrix(); byte[] rawdata = new byte[ QTImage.getMaxCompressionSize(gWorld, gworld.getbounds(), 0, quicktime.std.stdqtconstants.codeclowquality, mycodec, CodecComponent.anyCodec) ]; RawEncodedImage ri = null; public int execute(sgchannel chan, QTPointerRef datatowrite, int offset, int chrefcon, int time, int writetype){ if (chan instanceof SGVideoChannel) try{ ImageDescription id = vc.getimagedescription (); if(rawdata==null) rawdata = new byte [datatowrite. getsize()]; RawEncodedImage ri = new RawEncodedImage (rawdata); datatowrite.copytoarray(0, rawdata, 0, datatowrite. getsize()); if(ds==null){ ds = new DSequence(id, ri, gworld, cameraimagesize, idmatrix, null, 0, quicktime.std.stdqtconstants.codecnormalquality, CodecComponent.anyCodec); }else{ ds.decompressframes(ri, quicktime.std.stdqtconstants. codecnormalquality); } gworld.getpixmap().getpixeldata ().copytoarray(0, pixeldata, 0, pixeldata.length); ret.repaint(); σελίδα 73

84 Έλεγχος Μουσικών Παραμέτρων μέσω Video return 0; }catch(exception ex){ ex.printstacktrace(); return 1; } } else return 1; }; sg.setdataproc(mydataproc); // Preparing for output sg.setdataoutput(null, quicktime.std.stdqtconstants.seqgrabdontmakemovie); sg.prepare(false, true); sg.startrecord(); // setting up a thread, to idle the sequence grabber Runnable idlecamera = new Runnable(){ public void run(){ try{ while(true){ sg.idlemore(); sg.update(null); } }catch(exception ex){ ex.printstacktrace(); } } }; (new Thread(idleCamera)).start(); } } }catch(exception ex){ ex.printstacktrace(); QTSession.close(); } σελίδα 74

85 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος 4.4. Video Tracking στο Processing Το περιβάλλον του Processing είναι γραμμένο σε Java. Προγράμματα γραμμένα σε Processing μεταφράζονται και εκτελούνται σαν προγράμματα Java. Τα προγράμματα γραμμένα σε Java και Processing συνήθως τρέχουν γρηγορότερα από προγράμματα βασισμένα σε scripting γλώσσες όπως η ActionScript (Flash) και η -ετοιμοθάνατη;- Lingo (Director), γεγονός σημαντικό για πολλές εφαρμογές γραφικών. [20] Εικόνα 4.5: Το περιβάλλον του Processing και το παράθυρο απεικόνισης Το περιβάλλον του Processing (Integrated Development Environment ή IDE), είναι ένας μικρός και εύχρηστος editor για την γραφή και εκτέλεση προγραμμάτων. Όταν γίνει κλικ στο κουμπί run, το πρόγραμμα μεταγλωττίζεται, και ανοίγει ένα παράθυρο απεικόνισης στο οποίο εκτελείται το λογισμικό. Η γραμμή εργαλείων (toolbar) παρέχει επιλογές για την εκτέλεση και το σταμάτημα προγραμμάτων, τη δημιουργία ενός νέου sketch, το άνοιγμα, την αποθήκευση και την εξαγωγή προγραμμάτων σε μορφή κατάλληλη για το web. Επιπλέον εντολές είναι διαθέσιμες από τα μενού. Η περιοχή μηνυμάτων (message area) δίνει feedback κατά την αποθήκευση και εξαγωγή και επίσης δίνει τις τοποθεσίες λαθών κατά την μεταγλώττιση προγραμμάτων. Η περιοχή κειμένου (text area) τυπώνει μηνύματα από τις συναρτήσεις print() και println(). Στο Processing (και στη Java) η εισαγωγή μέσων γίνεται στον κώδικα, παρόμοια με τον τρόπο που δουλεύει η HTML. Επιπροσθέτως, οποιοσδήποτε σύνθετος τύπος δεδομένων ή μέσων σελίδα 75

86 Έλεγχος Μουσικών Παραμέτρων μέσω Video (vectors, δεδομένα DNA, alpha color samples από την ταινία Μπορεί η Διαλεκτική να Σπάσει Τούβλα; ), μπορούν να ενσωματωθούν σαν μέρος του κώδικα σε Java. Δεν είναι αναγκαστικό να υπάρχουν εξωτερικές εικόνες ή ήχοι. Μπορούν όλα να υπάρχουν σε ένα τακτοποιημένο αρχείο - τα pixels μιας εικόνας μπορούν να γίνουν μέρος του κώδικα, ο ήχος μπορεί να αποθηκευτεί ως ένας πίνακας δεδομένων. Ενώ υπάρχει όλη η δύναμη της Java η πολυπλοκότητα της συγγραφής κώδικα για βίντεο (αλλά και γενικότερα) είναι μειωμένη. Εκτός από τα γενικά θέματα που κάποιος πρέπει να έχει υπ όψιν του (βλ Video Tracking), χρειάζεται να είναι εγκατεστημένες οι κλάσεις που συνδέουν το QuickTime με την Java. Οι κλάσεις QuickTime for Java είναι προαιρετικές στην εγκατάσταση του QuickTime, οπότε το Processing έχει επιλογή για εγκατάσταση μαζί με το QuickTime for Java. Σε περίπτωση που γίνει ξεχωριστή εγκατάσταση των QuickTime και Processing, στην εγκατάσταση QuickTime 6 ή προηγούμενου (custom installation), η επιλογή QuickTime for Java πρέπει να επιλεχθεί. Από το QuickTime 7, η εγκατάσταση του QuickTime for Java γίνεται πάντα. [33] Η βιβλιοθήκη βίντεο του Processing μπορεί να απεικονίσει αρχεία βίντεο QuickTime και δεδομένα από βιντεοκάμερα. Βίντεο μπορεί να καταγραφεί από USB Cameras, IEEE 1394 Cameras, ή Video Cards με composite ή S-video είσοδο στον υπολογιστή. Βίντεο μπορεί να φορτωθεί από αρχεία QuickTime που βρίσκονται οπουδήποτε, σε τοπικό δίσκο, ή στο Internet. Επίσης, απαιτούνται οδηγοί (drivers) που θα μεταφράζουν την ιδιωτική μορφή δεδομένων της κάμερας σε κοινώς χρησιμοποιούμενες συναρτήσεις βίντεο. Αν οι κατασκευαστές της κάμερας δεν παρέχουν τέτοιο λογισμικό, ο open-source driver που ονομάζεται macam (έκδοση 0.90, 2006) λειτουργεί με τις περισσότερες USB Cameras σε πλατφόρμα Macintosh. [35] Αν δεν χρησιμοποιείται υπολογιστής της Apple, απαιτείται επιπροσθέτως ο VDIG, ένας -δωρεάν- driver που μεταφράζει δεδομένα από το hardware σε συναρτήσεις QuickTime. [36] Capture Η κλάση Capture της βιβλιοθήκης βίντεο του Processing επιτρέπει την καταγραφή frames από προσαρμοσμένη συσκευή καταγραφής (σχεδόν πάντα κάμερα). Ρυθμίσεις στο μέγεθος και την ταχύτητα του βίντεο μπορούν να γίνουν με τις συναρτήσεις που ορίζονται παρακάτω. [34] import*; Capture mycapture; void setup() { size(200, 200); // The name of the capture device is dependent those // plugged into the computer. To get a list of the // choices, uncomment the following line // println(capture.list()); String s = Logitech QuickCam Messenger-WDM ; σελίδα 76

87 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος } mycapture = new Capture(this, s, width, height, 30); void captureevent(capture mycapture) {; } void draw() { image(mycapture, 0, 0); } Περιγραφή Τύπος δεδομένων για αποθήκευση και χειρισμό frames βίντεο από μια κάμερα. Η Capture. list() δείχνει τα ονόματα των προσαρμοσμένων συσκευών. Αν στον constructor δεν εισαχθεί όνομα, θα επιχειρηθεί η χρήση της τελευταίας συσκευής που χρησιμοποίησε ένα πρόγραμμα QuickTime. Μέθοδοι read() available() list() framerate() stop() Διαβάζει την τρέχουσα εικόνα Επιστρέφει true αν μια νέα εικόνα είναι διαθέσιμη Παραθέτει λίστα των αναμμένων προσαρμοσμένων συσκευών Πόσο συχνά διαβάζονται frames ανά δευτερόλεπτο Σταματάει την καταγραφή Constructors Capture(parent, width, height) Capture(parent, width, height, fps) Capture(parent, name, width, height) Capture(parent, name, width, height, fps) Parameters parent width height fps name PApplet: συνήθως this int: πλάτος του frame int: ύψος του frame int: frames per second String: όνομα της κάμερας captureevent() import*; Capture mycapture; String[] caps; void setup() { σελίδα 77

88 Έλεγχος Μουσικών Παραμέτρων μέσω Video } size(200, 200); caps = Capture.list() mycapture = new Capture(this, caps[0], width, height, 30); mycapture = new Capture(this, caps[1], width, height, 30); void cameraevent(capture c) { if(c == caps[0]) {; } else if (c == caps[1]) {; } } void draw() { image(mycapture, 0, 0); } Περιγραφή Καλείται όταν είναι διαθέσιμο ένα νέο frame. Με την μέθοδο read() καταγράφουμε αυτό το frame. Αν χρησιμοποιούνται πολλές κάμερες στο πρόγραμμα, η captureevent() καλείται κάθε φορά που οποιαδήποτε από τις συσκευές έχει διαθέσιμο ένα νέο frame. Με μια if() μπορούμε να ελέγξουμε ποια συσκευή πυροδοτεί κάθε event. Σύνταξη void cameraevent(capture which) { statements } Παράμετροι statements which οποιοσδήποτε ορθός κώδικας η κάμερα που πυροδοτεί το event σελίδα 78

89 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Eνότητα 3: Έλεγχος Μουσικών Παραμέτρων μέσω Video σελίδα 79

90 Έλεγχος Μουσικών Παραμέτρων μέσω Video Επιλέγω το θέμα της εργασίας μου, καθορίζω τα σύνορά της και δείχνω ότι ξέρω πως είναι αυθαίρετα και διαπερατά με υποσημεώσεις ή με φράσεις όπως «ελπίζω να μπορέσω να επανέλθω σ αυτό αλλού». Κορνήλιος Καστοριάδης, Η Ψυχανάλυση: Πρόταγμα και Διαύγαση, σελίδα 80

91 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος 5. Ανάλυση & Σχεδιασμός του ΠΣ 5.1. Σύλληψη (inception phase) Οι σύγχρονοι synthesizers διαθέτουν πληθώρα παραμέτρων μέσω των οποίων ο χρήστης μπορεί να δημιουργήσει μεγάλη ποικιλία ήχων. Ταυτόχρονα, ο έλεγχος όλων αυτών των παραμέτρων σε πραγματικό χρόνο δημιουργεί συχνά προβλήματα στους χρήστες του οργάνου. Στόχος της εργασίας αυτής είναι η μελέτη του φυσικού και απομακρυσμένου ελέγχου τέτοιων μουσικών παραμέτρων. Για το σκοπό αυτό αναπτύχθηκε ένα σύστημα ικανό να επεξεργάζεται video και να αναγνωρίζει τις κινήσεις του σώματος του χρήστη (κίνηση χεριών, κεφαλιού κτλ.) και να τις ερμηνεύει ως μεταβολή κάποιων μουσικών παραμέτρων ενός ηλεκτρονικού μουσικού οργάνου (τόνος, ηχόχρωμα, κτλ.). Επίσης, μελετήθηκαν οι βασικές τεχνικές ψηφιακής σύνθεσης ήχου και σχεδιάστηκε ένας πρότυπος synth που ελέγχεται φυσικά και εξ αποστάσεως. Η μελέτη δεν περιορίστηκε στα καθαρά τεχνικά μέρη, αλλά έλαβε υπ όψιν της την ανθρώπινη νόηση (human cognition), όσον αφορά το ηχητικό αλλά και το κινησιακό μέρος της υλοποίησης του συστήματος Στόχοι Στόχος είναι η δημιουργία ενός συστήματος φυσικού και απομακρυσμένου ελέγχου των παραμέτρων ενός ηλεκτρονικού μουσικού οργάνου μέσω κινήσεων του σώματος που θα αναγνωρίζονται από video. Το σύστημα αυτό προσπαθεί να δώσει στους χρήστες του μια ολοκληρωμένη οπτικοακουστική εμπειρία, γι αυτό και προτείνει το ανθρώπινο σώμα σαν διεπαφή αλληλεπίδρασης με το εικονικό περιβάλλον του οργάνου Επεξεργασία (elaboration phase) Μοντέλο Σεναρίων Χρήσης Το μοντέλο σεναρίων χρήσης αποτελεί μία άποψη του συστήματος που αποδίδει έμφαση στην λειτουργικότητα ενός συστήματος, όπως αυτή είναι ορατή από τους εξωτερικούς χρήστες του συστήματος. Μια περίπτωση χρήσης διαμερίζει την λειτουργικότητα ενός συστήματος σε συναλλαγές (σενάρια χρήσης) που έχουν νόημα για τους χρήστες του συστήματος (δρώντες). Ακολουθεί το διάγραμμα σεναρίων χρήσης, το οποίο παρουσιάζει μία εξωτερική άποψη του συστήματος - μία άποψη χρησιμότητας. Χρησιμοποιούνται συσχετίσεις για τη περιγραφή του τρόπου με τον οποίο τα σενάρια χρήσης αλληλεπιδρούν μεταξύ τους και με τους δρώντες. σελίδα 81

92 Έλεγχος Μουσικών Παραμέτρων μέσω Video Εικόνα 5.1: Use Case Diagram Σενάρια χρήσης (use cases) Use Case 1: Έλεγχος Παραμέτρων Video Δράστες Περιγραφή Διεργασίες Χρήστης Κίνηση των σωματικών μελών του Χρήστη ώστε να ελεγχθούν οι παράμετροι που ορίζονται στο interface. Υπολογίζονται τα Metaballs των σκοτεινότερων περιοχών, και μετά πραγματοποιείται Edge detection μόνο σε αυτές, σύμφωνα με τον αλγόριθμο V3ga. Use Case 2: Έλεγχος Παραμέτρων Ήχου Δράστες Περιγραφή Διεργασίες Χρήστης Κίνηση των σωματικών μελών του Χρήστη ώστε να ελεγχθούν οι παράμετροι που ορίζονται στο interface. Αν η κίνηση ανιχνευτεί στην κατάλληλη περιοχή, πραγματοποιείται Έλεγχος Tone. Αν η κίνηση ανιχνευτεί στην κατάλληλη περιοχή, πραγματοποιείται Έλεγχος Highpass. Αν η κίνηση ανιχνευτεί στην κατάλληλη περιοχή, πραγματοποιείται Έλεγχος Envelope. Αν η κίνηση δεν ανιχνευτεί, δεν παράγεται ήχος. σελίδα 82

93 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος Use Case 3: Έλεγχος Tone Δράστες Σύστημα - Ξεκινάει από Use Case 2 Περιγραφή Διεργασίες Κίνηση των σωματικών μελών του Χρήστη ώστε να ελεγχθεί η παράμετρος Tone που ορίζεται στο interface. Αν η κίνηση ανιχνευτεί στην κατάλληλη περιοχή, πραγματοποιείται ανάλογη αλλαγή των τιμών της παραμέτρου Tone. Αν η κίνηση δεν ανιχνευτεί, δεν παράγεται ήχος. Use Case 4: Έλεγχος Cutoff Δράστες Σύστημα - Ξεκινάει από Use Case 2 Περιγραφή Διεργασίες Κίνηση των σωματικών μελών του Χρήστη ώστε να ελεγχθεί η παράμετρος Cutoff που ορίζεται στο interface. Αν η κίνηση ανιχνευτεί στην κατάλληλη περιοχή, πραγματοποιείται ανάλογη αλλαγή των τιμών της παραμέτρου Cutoff. Αν η κίνηση δεν ανιχνευτεί, δεν παράγεται ήχος. Use Case 5: Έλεγχος Decay Δράστες Σύστημα - Ξεκινάει από Use Case 2 Περιγραφή Διεργασίες Κίνηση των σωματικών μελών του Χρήστη ώστε να ελεγχθεί η παράμετρος Decay που ορίζεται στο interface. Αν η κίνηση ανιχνευτεί στην κατάλληλη περιοχή, πραγματοποιείται ανάλογη αλλαγή των τιμών της παραμέτρου Decay. Αν η κίνηση δεν ανιχνευτεί, δεν παράγεται ήχος. σελίδα 83

94 Έλεγχος Μουσικών Παραμέτρων μέσω Video 5.4. Περιγραφή αρχιτεκτονικής λογισμικού Διαγράμματα Κλάσεων Οι κλάσεις (classes) αποτελούν την βάση της κατασκευής οποιουδήποτε αντικειμενοστραφούς συστήματος. Ενσωματώνουν (encapsulate) τα δεδομένα και τις λειτουργίες που επενεργούν στα δεδομένα αυτά. Από τις κλάσεις δημιουργούνται αντικείμενα (objects) ή στιγμιότυπα (instances) αυτών των κλάσεων, όταν λειτουργεί το σύστημα. Αυτό που δίνει ζωή σε ένα σύστημα είναι οι αλληλεπιδράσεις μεταξύ των αντικειμένων του. Αυτές οι αλληλεπιδράσεις σε επίπεδο σχεδίασης αποτυπώνονται συνήθως με την χρήση διαγραμμάτων ακολουθίας. Σκοπός του διαγράμματος κλάσεων (class diagram) δεν είναι η απεικόνιση αυτών των αλληλεπιδράσεων, αλλά η απεικόνιση της στατικής δομής του συστήματος. Εικόνα 5.2: Class Diagram Διαγράμματα Ακολουθίας Στα διαγράμματα ακολουθίας (sequence diagram) τα αντικείμενα παριστάνονται με κουτιά ή/και ρόλους τα οποία παρατάσσονται στο χώρο (συνήθως από αριστερά προς τα δεξιά). Τα αντικείμενα ανταλλάσσουν μηνύματα τα οποία παριστάνονται με κατευθυνόμενα βέλη των σελίδα 84

95 Κάπρος Ευάγγελος - Ράπτης Κωνσταντίνος οποίων η φορά δείχνει την κατεύθυνση του μηνύματος (ποιο αντικείμενο κάνει την κλήση και σε ποιο αντικείμενο γίνεται η κλήση). Ο χρόνος παριστάνεται από πάνω προς τα κάτω στο διάγραμμα, δηλαδή τα μηνύματα που βρίσκονται πιο πάνω στο διάγραμμα προηγούνται χρονικά αυτών που βρίσκονται πιο χαμηλά. Τα διαγράμματα ακολουθίας καλούνται να απεικονίσουν με τον προαναφερθέντα τρόπο μία άλλη άποψη των σεναρίων χρήσης. Συγκεκριμένα, τα διαγράμματα ακολουθίας είναι τα παρακάτω: Εικόνα 5.3: Διάγραμμα ακολουθίας του synthesizer στο Reaktor Εικόνα 5.4: Διεπαφή του synthesizer στο Reaktor σελίδα 85



Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής Ονοματεπώνυμο Φοιτητή Πατρώνυμο Σύγκριση σημάτων μουσικής με πρότυπα συμβολικής

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική»

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική» «Μεταπτυχιακή Διατριβή» Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής Ονοματεπώνυμο Φοιτητή Πατρώνυμο Αριθμός Μητρώου Επιβλέπων

Διαβάστε περισσότερα



Διαβάστε περισσότερα

Αυτόματη Καταγραφή Μουσικής. Διπλωματική Εργασία της Ελένης Τζιρίτα Ζαχαράτου. Καθηγητής Ε.Μ.Π.

Αυτόματη Καταγραφή Μουσικής. Διπλωματική Εργασία της Ελένης Τζιρίτα Ζαχαράτου. Καθηγητής Ε.Μ.Π. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Σημάτων, Ελέγχου και Ρομποτικής Εργαστήριο Όρασης Υπολογιστών, Επικοινωνίας Λόγου και Επεξεργασίας Σημάτων Αυτόματη

Διαβάστε περισσότερα

Μελέτη Μουσικών Οργάνων (Κιθάρα) και Software Επεξεργασίας Ήχου με DSP (Digital Signal Processing)

Μελέτη Μουσικών Οργάνων (Κιθάρα) και Software Επεξεργασίας Ήχου με DSP (Digital Signal Processing) ΑΤΕΙ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τμήμα Μηχανικών Πληροφορικής ΤΕ Μελέτη Μουσικών Οργάνων (Κιθάρα) και Software Επεξεργασίας Ήχου με DSP (Digital Signal Processing) ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Λουκάς Αυγερινός

Διαβάστε περισσότερα



Διαβάστε περισσότερα



Διαβάστε περισσότερα



Διαβάστε περισσότερα

Ανάπτυξη Πολυμεσικών Εφαρμογών

Ανάπτυξη Πολυμεσικών Εφαρμογών Τμήμα Πληροφορικής & Τηλεπικοινωνιών Σχολή Διοίκησης και Οικονομίας - ΑΤΕΙ Ηπείρου Ανάπτυξη Πολυμεσικών Εφαρμογών Ακαδημαϊκό Έτος 2008-2009 Σελίδα 1 από 22 Εισαγωγή Τα πολυμέσα είναι μία από τις πιο πολυσυζητημένες

Διαβάστε περισσότερα



Διαβάστε περισσότερα

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: ΕΡΓΑΣΤΗΡΙΟ Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής

Διαβάστε περισσότερα



Διαβάστε περισσότερα

ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΞΕΙΔΙΚΕΥΣΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. «Ολοκληρωµένο Περιβάλλον Μετατροπής Εικόνας και Ζωγραφικής σε Ηχητικά Μοτίβα»


Διαβάστε περισσότερα



Διαβάστε περισσότερα



Διαβάστε περισσότερα



Διαβάστε περισσότερα


Τ.Ε.Ι. ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ Τ.Ε.Ι. ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΜΗΜΑ ΔΗΜΟΣΙΩΝ ΣΧΕΣΕΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Η χρήση των νέων τεχνολογιών για την προβολή μιας πόλης. Δημιουργία πολυμεσικής εφαρμογής για την προβολή

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ. Τμήμα Διδακτικής της Τεχνολογίας και Ψηφιακών Συστημάτων. Μεταπτυχιακό Τμήμα Κατεύθυνση Ψηφιακές Επικοινωνίες και Δίκτυα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ. Τμήμα Διδακτικής της Τεχνολογίας και Ψηφιακών Συστημάτων. Μεταπτυχιακό Τμήμα Κατεύθυνση Ψηφιακές Επικοινωνίες και Δίκτυα ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τμήμα Διδακτικής της Τεχνολογίας και Ψηφιακών Συστημάτων Μεταπτυχιακό Τμήμα Κατεύθυνση Ψηφιακές Επικοινωνίες και Δίκτυα Image - based Perceptual Services for Context- Awareness in

Διαβάστε περισσότερα


Γιαγλής Γεώργιος ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΑΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Γιαγλής Γεώργιος ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΑΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ τίτλος: Αρχές Λειτουργίας και Προγραμματισμού Η/Υ συγγραφέας: Γιαγλής Γεώργιος 2011 Εκδόσεις Δίσιγμα Για την ελληνική γλώσσα σε όλο τον κόσμο.

Διαβάστε περισσότερα



Διαβάστε περισσότερα

«Οδηγίες Σχεδίασης Διαδραστικών Συστημάτων»


Διαβάστε περισσότερα



Διαβάστε περισσότερα

Κωνσταντίνος Σιασιάκος, ρ Πληροφορικής

Κωνσταντίνος Σιασιάκος, ρ Πληροφορικής Επιστηµονική Ευθύνη Κωνσταντίνος Σιασιάκος, ρ Πληροφορικής Συγγραφή Φωτόπουλος Βασίλης, Φαλιέρης Σωτήρης, Νικολόπουλος Γιώργος, Νικολόπουλος Κώστας Το παρόν εκπαιδευτικό υλικό παράχθηκε στο πλαίσιο του

Διαβάστε περισσότερα



Διαβάστε περισσότερα

«Διερεύνηση τεχνικών μίξης ήχου στην σύγχρονη μουσική παραγωγή: η περίπτωση της μουσικής ροκ»

«Διερεύνηση τεχνικών μίξης ήχου στην σύγχρονη μουσική παραγωγή: η περίπτωση της μουσικής ροκ» ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΙΑΠΑΝΕΠΙΣΤΗΜΙΑΚΟ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ» «Διερεύνηση τεχνικών μίξης ήχου στην σύγχρονη μουσική

Διαβάστε περισσότερα



Διαβάστε περισσότερα

Ανάπτυξη διαδραστικού εκπαιδευτικού λογισμικού για τη διδασκαλία του μαθήματος "Σχεδίαση με χρήση Η/Υ" στην τεχνική εκπαίδευση

Ανάπτυξη διαδραστικού εκπαιδευτικού λογισμικού για τη διδασκαλία του μαθήματος Σχεδίαση με χρήση Η/Υ στην τεχνική εκπαίδευση ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ (ΤΕΙ) ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη διαδραστικού εκπαιδευτικού λογισμικού για τη διδασκαλία του μαθήματος

Διαβάστε περισσότερα

Σχεδιασμός και κατασκευή εφαρμογής ταξινόμησης αντικειμένων σε γραμμή μεταφοράς προϊόντων με χρήση όρασης μηχανής

Σχεδιασμός και κατασκευή εφαρμογής ταξινόμησης αντικειμένων σε γραμμή μεταφοράς προϊόντων με χρήση όρασης μηχανής ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Διπλωματική Εργασία της Λοΐζου Κωνσταντίνας Σχεδιασμός και κατασκευή εφαρμογής ταξινόμησης αντικειμένων

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής»

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής Ονοματεπώνυμο Φοιτητή Αριθμός Μητρώου Κατεύθυνση Επιβλέπων

Διαβάστε περισσότερα