Η Μουσική των Υπολογιστών

Page 1


Ο Ταξιάρχης Διαµαντόπουλος είναι Μηχανικός Πληροφορικής (1989, τµήµα Πληροφορικής, ΤΕΙ Αθήνας), µε µεταπτυχιακές σπουδές στη Μουσική Τεχνολογία (1990, MSc in Music Technology, University of York, UK). Έχει διδάξει “Σύνθεση Ήχου” και “Προγραµµατισµό για Μουσικές Εφαρµογές” στο τµήµα Μουσικής Τεχνολογίας & Ακουστικής του ΤΕΙ Κρήτης (2000-2008). Από το 2007 διδάσκει “Ψηφιακές Εφαρµογές Ήχου” στην Ανωτάτη Σχολή Καλών Τεχνών, στο εργαστήριο Πολυµέσων/Υπερµέσων καθώς και στο Πρόγραµµα Μεταπτυχιακών Σπουδών “Ψηφιακές Μορφές Τέχνης”. Από το 201213 διδάσκει επίσης στο ΠΜΣ “Τέχνη, Εικονική Πραγµατικότητα και Πολυχρηστικά Συστήµατα Καλλιτεχνικής Έκφρασης”, το οποίο πραγµατοποιείται από κοινού από την ΑΣΚΤ και το Πανεπιστήµιο Paris VIII (UFR Arts, Philosophie, Esthétique – Arts et Technologies de l’Image). Είναι συγγραφέας του βιβλίου Προγραµµατισµός & Σύνθεση Ήχου (Αθήνα, εκδ. Έλλην, 2004).


Ταξιάρχης Διαµαντόπουλος

Η Μουσική των Υπολογιστών Ο Ήχος, Τα Βασικά Χαρακτηριστικά του & η Γέννησή του Από τον Υπολογιστή


Περιεχόµενα 01. Ταλαντώσεις Ήχου..........................................................................17 02. Ηµιτονοειδείς Ταλαντώσεις............................................................31 Η Ηµιτονοειδής Ταλάντωση ................................................................................ 33 Χαρακτηριστικά της Ταλάντωσης ....................................................................... 38 α. περίοδος........................................................................................................ 38 β. συχνότητα...................................................................................................... 38 γ. φάση .............................................................................................................. 39 δ. γωνιακή ταχύτητα ........................................................................................ 41 ε. κυµατική συνάρτηση .................................................................................... 42 στ. κυµατοµορφή .............................................................................................. 43 ΆDροιση Ηµιτονοειδών ........................................................................................ 44 Πριονωτή Κυµατοµορφή (sawtooth)................................................................... 54 Τετραγωνική Κυµατοµορφή (squarewave)......................................................... 55 Τριγωνική Κυµατοµορφή (triangle) .................................................................... 55

03. Η ΑντίληPη του Ήχου ....................................................................57 Η Φυσιολογία του ΑνDρώπινου Αυτιού ............................................................. 59 α. Το εξωτερικό αυτί ....................................................................................... 60 β. Το µέσο αυτί ................................................................................................. 61 γ. Το εσωτερικό αυτί........................................................................................ 62 Η ΑίσDηση του Τονικού ΎPους ......................................................................... 66 ΛογαριDµικές Κλίµακες ....................................................................................... 71 Πίεση Ηχητικού Κύµατος..................................................................................... 78 Η Κλίµακα των decibel (dB SPL)........................................................................ 82 Υποκειµενική Ένταση (Loudness): η Κλίµακα των phons .............................. 85

04. Ο Ήχος ως Πληροφορία.................................................................89 Μηχανικά Συστήµατα Καταγραφής - Αναπαραγωγής Ήχου.......................... 91 Ηλεκτροµαγνητική Επαγωγή............................................................................... 93 Ηλεκτροµηχανικά Συστήµατα Καταγραφής Ήχου: Μικρόφωνα ................... 94 Ηλεκτροµηχανικά Συστήµατα Αναπαραγωγής Ήχου: Ηχεία......................... 95 Ηλεκτροµαγνητικά Συστήµατα ΑποDήκευσης Ήχου: Μαγνητικές Ταινίες .. 97 Wηφιακός Ήχος – Rείγµατα.............................................................................. 101 PCM Κωδικοποίηση ........................................................................................... 103 Εύρος Rυναµικής – Dynamic Range ................................................................. 106 Wηφιακά Συστήµατα Ήχου ............................................................................... 110 Λογισµικό Ήχου ................................................................................................. 113


12

Η Μουσική των Υπολογιστών

05. Computer Music: Μουσική µέσω Υπολογιστή ...........................115 Η Νέα Μουσική: Ο Ήχος στο Επίκεντρο της Μουσικής............................... 117 Οι Γλώσσες Προγραµµατισµού MUSIC-N ...................................................... 121 Οι Επόµενες Γενεές: Csound, Cmix και cmusic .............................................. 125 Τα Πρώτα Visual, Real-Time Περιβάλλοντα: MAX & Pd ............................ 128 Γλώσσες Εκτέλεσης Κώδικα σε Πραγµατικό Χρόνο – Live Coding: το SuperCollider .................................................................................................. 132 Προγραµµατιστικά Περιβάλλοντα Ηχητικής ΣύνDεσης: Μία ΣύνοPη ......... 133

06. ΑλγόριDµοι Ηχητικής ΣύνDεσης...................................................137 Rοµικές Μονάδες – Ηχητικές Rοµές ................................................................ 139 Η Μονάδα του Ταλαντωτή – Oscillator Unit ................................................... 141 Πίνακες Κυµατοµορφής – Wavetables ............................................................. 141 Η Πληροφορία της Αρχικής Φάσης .................................................................. 148 Συχνότητα Ταλαντωτή – Συχνότητα Ταλάντωσης ........................................... 150 Πολλαπλασιασµός Rειγµάτων µε ΣταDερή Τιµή – Πλάτος Ταλάντωσης ..... 154 Η Μονάδα Εξόδου – Output Unit .................................................................... 156 ΡυDµός Μεταβολής Rειγµάτων – Audio Rate ΡυDµός Μεταβολής ΡυDµίσεων – Control Rate ............................................... 159 Πίνακες ΣύνDετων Κυµατοµορφών .................................................................. 165 ΆDροιση Κυµατοµορφών.................................................................................... 167 ΆDροιση Rειγµάτων µε ΣταDερή Τιµή.............................................................. 170 Πολλαπλασιασµός Rειγµάτων µε Μεταβαλλόµενη Τιµή ............................... 171 Γεννήτριες Σύζευξης Τιµών ............................................................................... 174 Περιβάλλουσες Πλάτους – Amplitude Envelopes........................................... 177 Κίνηση Ήχου – Panning..................................................................................... 180 Cross-fade (Rιασταυρούµενη Κίνηση).............................................................. 181 Απλή Rιαµόρφωση Πλάτους (AM) – Tremolo ................................................ 182 Απλή Rιαµόρφωση Συχνότητας (FM) – Vibrato ............................................. 187

07. Το Περιβάλλον της Csound ..........................................................191 Γενικά Στοιχεία ................................................................................................... 193 Το Αρχείο Ορχήστρας (Orchestra File) ........................................................... 194 Το Αρχείο Παρτιτούρας (Score File)................................................................ 195 Rηµιουργία Πίνακα Κυµατοµορφής ................................................................. 197 Σύνδεση Αρχείων Ορχήστρας και Παρτιτούρας............................................. 199 Rοµικές Μονάδες Ήχου: Συναρτήσεις (Opcodes) ......................................... 200 Η Μονάδα του Ταλαντωτή: η Συνάρτηση oscil ............................................ 202 Η Μονάδα Εξόδου: η Συνάρτηση out ............................................................. 203 Μία Βασική Ηχητική Rοµή: oscil και out .................................................... 204 Παραµετροποιώντας Συναρτήσεις – Μεταβλητές Παρτιτούρας p ................ 206 ΆDροιση Κυµατοµορφών.................................................................................... 209 Συναρτήσεις Σύζευξης Rύο Τιµών: line, expon ........................................... 211


Περιεχόµενα

13

Συναρτήσεις Σύζευξης Πολλαπλών Τιµών: linseg, expseg ....................... 216 Στερεοφωνική Έξοδος: η Συνάρτηση outs .................................................... 221 Panning................................................................................................................. 222 Cross-fade ............................................................................................................ 224 Tremolo ................................................................................................................ 226 Vibrato.................................................................................................................. 228

08. Το Περιβάλλον του Pd...................................................................231 Γενικά στοιχεία ................................................................................................... 233 Το Περιβάλλον Χρήσης...................................................................................... 234 Ο Πρώτος ΑλγόριDµος: Hello Pd World!......................................................... 235 Oι Rύο Καταστάσεις Λειτουργίας: Edit και Run Mode................................. 237 Οι Βασικοί Τύποι Αντικειµένων Comment, Message, Atom και Object ... 238 α. αντικείµενα τύπου Comment .................................................................... 238 β. αντικείµενα τύπου Message..................................................................... 238 γ. αντικείµενα τύπου Atom: Number & Symbol ........................................ 240 δ. αντικείµενα τύπου Object ....................................................................... 241 Ο Πρώτος ΑλγόριDµος Ήχου: Ταλάντωση Ηµιτονοειδούς Κυµατοµορφής ..................................................... 242 Ενεργοποίηση του Audio Engine ...................................................................... 245 Χρήση Slider ........................................................................................................ 246 Απεικονιστικά Αντικείµενα ............................................................................... 248 Περιβάλλουσες Πλάτους.................................................................................... 252 MIDI νότες .......................................................................................................... 254 ΆDροιση Ηµιτονοειδών ...................................................................................... 257 Subpatches ........................................................................................................... 258 Rιαµόρφωση Πλάτους & Συχνότητας ............................................................... 259 Πίνακες Rεδοµένων............................................................................................ 261 Μετρητές .............................................................................................................. 264 Sequencer ............................................................................................................. 265 Έλεγχος µέσω MIDI Controller ....................................................................... 266

09. Το Περιβάλλον του SuperCollider ...............................................271 Γενικά Στοιχεία ................................................................................................... 273 Η Αρχιτεκτονική του SC3 (Client vs Server).................................................... 274 Το Περιβάλλον Χρήσης...................................................................................... 277 Κλάσεις και Αντικείµενα στο SuperCollider ................................................... 279 Εκτέλεση Κώδικα................................................................................................ 281 Τρία Απλά Βήµατα για την Παραγωγή Ήχου................................................. 284 βήµα 1ο: Ενεργοποίηση local ή internal server................................................ 284 (εναλλακτικό) βήµα 1ο: Ενεργοποίηση remote server ................................... 287 βήµα 2ο: Rηµιουργία Ηχητικών Rοµών – Synthesis Definitions.................... 288 βήµα 3ο: Ενεργοποίηση και Rιαχείριση ενός Synthesis Definition .............. 292


14

Η Μουσική των Υπολογιστών

Κόµβοι (Nodes) ................................................................................................... 295 Ενεργοποίηση και Rιαχείριση Synthesis Definition µέσω osc Μηνυµάτων.......................................................................................... 297 α. δηµιουργία ενός νέου Synth: /s_new ..................................................... 297 β. τερµατισµός ενός κόµβου: /n_free ....................................................... 299 γ. πέρασµα τιµών σε ένα Synth: /n_set ..................................................... 299 δ. ανάκτηση τιµών ενός ορίσµατος: /s_get ............................................... 300 Μονάδες Ηµιτονοειδούς Ταλάντωσης ............................................................. 300 Rίαυλοι Rεδοµένων: Audio & Control Buses .................................................. 301 Οι Μονάδες Out και In ..................................................................................... 303 Χρήση Effect σε Σήµα ........................................................................................ 307 Περιγράµµατα Rυναµικής.................................................................................. 309 Rηµιουργία Περιγραµµάτων Rυναµικής – Η Κλάση Env .............................. 310 α. ελεύDερα περιγράµµατα ........................................................................... 310 β. καDορισµένα περιγράµµατα συγκεκριµένης χρονικής διάρκειας........ 312 γ. καDορισµένα περιγράµµατα ανοικτής διάρκειας (sustained envelopes)..................................................................................... 313 Χρήση Περιγραµµάτων Rυναµικής – Η Κλάση EnvGen ................................ 314 Ο Κύκλος Ζωής ενός Synth – Η Μεταβλητή doneAction ............................ 315 Ηµιτονοειδείς Ταλαντώσεις............................................................................... 317 Παλµικές Ταλαντώσεις....................................................................................... 319 Rοµές ΑκολουDιακής Εκτέλεσης Κώδικα ........................................................ 323 Functions .............................................................................................................. 323 Streams ................................................................................................................. 324 Routines ............................................................................................................... 325 Η ΜέDοδος play ................................................................................................ 328 Αναπαραγωγή Ηχητικών Rοµών µέσω Routine ............................................. 330 Task: Επανεκτελέσιµες Rοµές........................................................................... 335

Παράρτηµα Α': Bits και Bytes ............................................................337 Rυαδική AριDµητική ........................................................................................... 338 Μέγιστη-Eλάχιστη Tιµή – Mη Προσηµασµένοι Ακέραιοι (Unsigned Integers) ............................................................................................ 341 Προσηµασµένοι Ακέραιοι (Signed Integers) – Συµπλήρωµα ως προς Rύο (Two’s Complement) .......................................................................................... 342 Το Μηδέν ............................................................................................................. 344 Ένας ‘Παράξενος’ ΑριDµός .............................................................................. 345

Παράρτηµα Β': Το Πρωτόκολλο Open Sound Control....................349 Τα Rύο Μέρη: το Μοντέλο Client-Server......................................................... 349 Οι Βασικοί Τύποι Rεδοµένων του OSC ........................................................... 351 OSC-timetag ........................................................................................................ 351 Πακέτα OSC ........................................................................................................ 352


Περιεχόµενα

15

Rοµή Μηνύµατος OSC (OSC Message) ........................................................... 353 OSC address pattern ........................................................................................... 354 OSC type tag string ............................................................................................. 354 Rοµή Rέσµης OSC (OSC Bundle)..................................................................... 355 Εκτέλεση OSC Μηνυµάτων ............................................................................... 356 1η Περίπτωση: SC client, Pd server................................................................... 357 α. SC client...................................................................................................... 357 β. Pd server...................................................................................................... 358 2η Περίπτωση: Pd client, SC server................................................................... 359 α. Pd client ...................................................................................................... 359 β. SC server ..................................................................................................... 361

Παράρτηµα Γ': Προγραµµατιστικά Μοντέλα ...................................369 Γλώσσα Μηχανής ................................................................................................ 369 Γλώσσες Χαµηλού Επιπέδου - Assembly ......................................................... 371 Γλώσσες ΥPηλού Επιπέδου - Compilers.......................................................... 372 Το Μοντέλο Κλήσης Συναρτήσεων................................................................... 374 Κλάσεις & Αντικείµενα: Γενικά Χαρακτηριστικά .......................................... 376 Κλάσεις & Αντικείµενα: Βασικές Ιδιότητες .................................................... 381 Προγραµµατιστικά Μοντέλα Περιβαλλόντων Ηχητικής ΣύνDεσης: Μία ΣύνοPη ......................................................................................................... 386

Αναφορές–α’: προτεινόµενη εργογραφία.........................................389 Αναφορές–β’: προτεινόµενη βιβλιογραφία.......................................397 Ευρετήριο..............................................................................................407


Πρόλογος Γιατί ο Ήχος αναφέρεται µε τόση έµφαση στον υπότιτλο αυτού του βιβλίου που ως κύριο Dέµα του είναι η Μουσική των Υπολογιστών; Η αλήDεια είναι πως όσες φορές προσπαDώ να εξηγήσω την αλληλένδετη σχέση των δύο αυτών κόσµων διακρίνω, αρχικά τουλάχιστον, µία δυσπιστία. Εάν κανείς ακούσει για πρώτη φορά έναν συνDέτη που ακολουDεί αυτήν την προσέγγιση, του γεννιέται πάντοτε η ίδια απορία: µα, είναι αυτό µουσική; Και εάν όχι, τότε τι ακριβώς προσδιορίζουµε ως µουσική; Ακούστε, για παράδειγµα, το δεύτερο µέρος της 4ης Συµφωνίας του Charles Ives η οποία ολοκληρώDηκε το 1916. Έχοντας δύο διευDυντές ορχήστρας οι οποίοι διευDύνουν µε διαφορετικό τρόπο ρυDµικά, τονικά και δυναµικά, µία πολύ µεγάλη σε πλήDος µουσικών οργάνων ορχήστρα µοιρασµένη σε δύο υποσύνολα, το µέρος αυτό εξελίσσεται σε ένα ηχητικό πανδαιµόνιο: ένα νέφος ήχων πάλλεται µε ασυγκράτητη ορµή στον συναυλιακό χώρο. Το πολύ ενδιαφέρον µάλιστα στοιχείο είναι πως πολλά από τα µουσικά Dέµατα των δύο αυτών ξεχωριστών ορχηστρικών συνόλων αφορούν µελωδίες από Dρησκευτικούς ύµνους και γνωστά εµβατήρια της εποχής. Το αποτέλεσµα είναι πραγµατικά συνταρακτικό. Μάλιστα ο Ives δεν είχε την ευκαιρία να το ακούσει ποτέ, αφού η πρώτη ολοκληρωµένη παρουσίαση του έργου του πραγµατοποιήDηκε έντεκα χρόνια µετά τον Dάνατό του, το 1965. Μια άλλη εµβληµατική µορφή του 20ού αιώνα, ο Edgar Varèse, υπεραµύνDηκε της νέας αυτής αντίληPης για το τι είναι µουσική προσδιορίζοντάς την ως “οργάνωση των ήχων”. Επιπλέον, αντιπαρατίDεται στην επικρατούσα αντίληPη της εποχής για το τι είναι µουσική µε τον πλέον κατηγορηµατικό τρόπο: “[...] εάν για κάποια επίµονα αυτιά, κά=ε τι νέο στη µουσική αποτελεί =όρυβο, τότε τί άλλο µπορεί να είναι η µουσική παρά η οργάνωση αυτού του =ορύβου;” Ο Varèse, αν και συνέDεσε λιγοστά έργα, Dεωρείται ο µεγάλος οραµατιστής και πρωτοπόρος της νέας αυτής µουσικής, καDώς δηµιούργησε µία ιδιαίτερη µουσική γλώσσα η οποία στην πορεία επηρέασε ένα πλήDος από συνDέτες διαφορετικών µουσικών ιδιωµάτων, ανάµεσα στους οποίους και οι πολύ διάσηµοι John Cage, Iannis Xenakis, Karlheinz Stockhausen, Olivier Messiaen αλλά και ο Frank Zappa. Η νέα αυτή Μουσική των Ήχων γίνεται τελικά πραγµατικότητα µε την Musique Concrète στα τέλη της δεκαετίας του 1940: οι συνDέτες ηχογραφούν ήχους από το φυσικό περιβάλλον και τους επεξεργάζονται µε ειδικά µαγνητόφωνα επεµβαίνοντας σε αυτούς και δηµιουργώντας νέα ηχητικά µορφώµατα. Το ίδιο συµβαίνει και µε την Elektronische Musik στις αρχές της δεκαετίας του 1950, όταν για πρώτη


8

Η Μουσική των Υπολογιστών

φορά χρησιµοποιούνται ηλεκτρικές γεννήτριες για την παραγωγή ήχων και τη διαµόρφωσή τους. Εκτός λοιπόν από τις πολύ σηµαντικές ανατροπές που πραγµατοποιήDηκαν στην παραδοσιακή δυτική αρµονία στις αρχές του περασµένου αιώνα – ατονική µουσική - δωδεκαφDογγισµός/σειραϊσµός - αλεατορισµός, στο δεύτερο µισό του 20ού αιώνα ο ίδιος ο Ήχος οργανωµένος ως µόρφωµα µε συγκεκριµένες ιδιότητες και συµπεριφορές µπαίνει ορµητικά στο προσκήνιο σαν αισDητικό και µορφολογικό ζητούµενο σε µία σειρά έργων νέων συνDετών. Πρόκειται για µία εξαιρετικά γόνιµη περίοδο: τo 1952 ο John Cage παρουσιάζει το εµβληµατικό 4’33’'⋅ νέοι συνDέτες όπως ο Karlheinz Stockhausen πειραµατίζονται µε γεννήτριες ήχου συνDέτοντας τα πρώτα έργα ηλεκτρονικής µουσικής (Studie I και Studie II)⋅ άλλοι πάλι ανάµεσα στους οποίους και ο Iannis Xenakis (Concret PH), καταλύουν εντελώς την παραδοσιακή µουσική οργάνωση και φόρµα, όταν στις συνDέσεις τους χρησιµοποιούν αποκλειστικά ηχογραφηµένους ήχους, τους οποίους έχουν κατάλληλα επεξεργαστεί σε ειδικά διαµορφωµένα µαγνητόφωνα. Ο Cage µιλάει πολύ εύγλωττα για τους ήχους που µας περιβάλλουν και τη µουσικότητά τους: “Ο ήχος ενός φορτηγού κα=ώς κινείται µε 50 µίλια την ώρα, τα ραδιοφωνικά παράσιτα, η βροχή...”, και για τους οποίους, [...] [ζητούµενο είναι] “να µπορέσουµε να τους καταγράBουµε, να τους επεξεργαστούµε και να τους χρησιµοποιήσουµε όχι απλώς ως ήχους, αλλά ως µουσικά όργανα”. Και επίσης: “Εάν ο όρος ‘µουσική’ =εωρείται απαράβατος και ταυτίζεται αποκλειστικά µε τη χρήση των µουσικών οργάνων του 18ου και 19ου αιώνα, τότε µπορούµε να τον υποκαταστήσουµε µε έναν πιο ουσιώδη όρο: την οργάνωση των ήχων”. Μαζί µε τις νέες αυτές αντιλήPεις καλλιτεχνικής έκφρασης και δηµιουργίας, την ίδια δεκαετία του 1950 κάνει την εµφάνισή του ένα µηχάνηµα για το οποίο κανείς δεν ήταν τότε σε Dέση να προβλέPει πόσο ραγδαία Dα εξελισσόταν στις επόµενες δεκαετίες. Αν και η χρήση του αρχικά περιορίζεται σε λίγες µεγάλες εταιρείες και σε ακόµη λιγότερα ακαδηµαϊκά ιδρύµατα, ο ηλεκτρονικός υπολογιστής είναι πλέον γεγονός. Μέσα σε αυτό το περιβάλλον, όπου δυνητικά όλα ήταν επιτρεπτά, µπαίνει το ερώτηµα κατά πόσον ο ηλεκτρονικός υπολογιστής µπορεί να αποτελέσει ένα εργαλείο για τη µουσική σύν=εση. Rηµιουργείται έτσι η πρώτη γλώσσα προγραµµατισµού για µουσική και καDώς οι συνDέτες της εποχής πειραµατίζονται µε το νέο αυτό µέσο και δηµιουργούν τα πρώτα έργα µουσικής από υπολογιστή, καDιερώνεται ο όρος Computer Music. ΑκολουDεί έτσι στις δεκαετίες του 1960 και 1970 µία γόνιµη περίοδος µουσικής έκφρασης, όπου νέες σχολές και τεχνικές σύνDεσης δηµιουργούνται, ενώ µία νέα γενιά συνDετών εµφανίζεται στο προσκήνιο. Οι τεχνολογικές εξελίξεις στις επόµενες δεκαετίες είναι καταιγιστικές, αρχικά µε την έλευση των µικρο-υπολογιστών και ακολούDως µε την εξάπλωση του διαδικτύου. Ο υπολογιστής γίνεται πλέον ένα φDηνό οικιακό µηχάνηµα, προσιτό στους πολλούς. Οι τεχνοτροπίες και οι τεχνικές σύνDεσης που αναπτύχDηκαν αρχικά στα κλειστά ακαδηµαϊκά ιδρύµατα µπαίνουν τώρα σε εκατοµµύρια σπίτια και η


Πρόλογος

9

µουσική αυτή γίνεται κτήµα των πολλών, µπολιάζεται µε την popular πλευρά της, δηµιουργώντας έτσι µία νέα σειρά µουσικών ρευµάτων: noise, glitch, electronica. Στη σηµερινή εποχή της άυλης πληροφορίας που τρέχει στα παγκόσµια δίκτυα ένα πλήDος από προσιτές Pηφιακές τεχνολογίες τόσο από πλευράς λογισµικού (sound editors, sequencers, sound generators, πολυκάναλα περιβάλλοντα), όσο και από πλευράς υλικού (πολυκάναλες κάρτες ήχου, controllers, sensors), αλλά και νέες αυτόνοµες δικτυωµένες φορητές µονάδες (tablets και smart phones), παρέχουν ευρείες τεχνικές και εκφραστικές δυνατότητες οι οποίες µπορούν να σταDούν είτε ως αυτόνοµα µουσικά έργα, είτε σε συνδυασµό µε αλλοειδείς εκφάνσεις (σκηνικές ή οπτικές), είτε σε διαδραστικές εγκαταστάσεις (human-computer interaction). Η κεντρική όµως δοµή της µουσικής πληροφορίας και οι τεχνικές οργάνωσής της σε µουσική φόρµα µέσα από αλγοριDµικές διαδικασίες παραµένουν ίδιες: αυτές δηλαδή που πρωτο-αναπτύχDηκαν στις µακρινές µεταπολεµικές δεκαετίες του 20ού αιώνα. Το παρόν βιβλίο παρουσιάζει αυτήν ακριβώς τη λογική της µουσικής δηµιουργίας µέσα από τον υπολογιστή, ή εν γένει τις µηχανές που φιλοξενούν εφαρµογές µουσικής και ηχητικής σύνDεσης. Ξεκινώντας στα πρώτα κεφάλαια από τις πολύ βασικές έννοιες του ήχου και των κύριων χαρακτηριστικών του, εξετάζει στη συνέχεια τον τρόπο µε τον οποίο ο άνDρωπος προσλαµβάνει και αντιλαµβάνεται τα ιδιαίτερα χαρακτηριστικά του. Στη συνέχεια γίνεται µία γενική αναδροµή στις αναλογικές συσκευές ηχογράφησης, επεξεργασίας και αναπαραγωγής του, για να καταλήξει στην Pηφιακή πληροφορία του ήχου και την οργάνωση του σε µουσική φόρµα µέσα από αλγοριDµικές δοµές και διαδικασίες. Στο δεύτερο µέρος εστιάζοντας στις εφαρµογές µουσικής και ηχητικής σύνDεσης, παρουσιάζονται τρία χαρακτηριστικά προγραµµατιστικά περιβάλλοντα για µουσική σύνDεση µέσω υπολογιστή, καDένα από τα οποία αποτελεί και µία διαφορετική κατηγορία λογικής οργάνωσης και ανάπτυξης κώδικα:

Η Csound, µία γλώσσα επίγονος των πρώτων γλωσσών προγραµµατισµού για µουσική, αποτελεί ένα ολοκληρωµένο εργαλείο διαδικασιακού προγραµµατισµού για µουσική σύνDεση σε µη πραγµατικό χρόνο.

Το Pd, ένα χαρακτηριστικό περιβάλλον προγραµµατισµού visual programming για µουσική και ηχητική σύνDεση σε πραγµατικό χρόνο.

Το SuperCollider, µία γλώσσα live coding µε πλήρη αντικειµενοστρεφή λογική οργάνωσης του κώδικα.

Παρ' ότι σήµερα µπορεί κανείς να συναντήσει µία πληDώρα αντίστοιχων εφαρµο-


10

Η Μουσική των Υπολογιστών

γών, τα τρία αυτά προγραµµατιστικά περιβάλλοντα αποτελούν χαρακτηριστικούς εκπροσώπους τριών ξεχωριστών σχολών ανάπτυξης κώδικα για µουσική: non realtime synthesis ή αλλιώς tape music, real-time visual programming και live coding. Επιπλέον, τα περιβάλλοντα αυτά είναι ελεύDερης διανοµής και ανοικτού κώδικα, υποστηρίζονται από µία µεγάλη κοινότητα προγραµµατιστών και συνDετών, ενώ χρησιµοποιούνται από ένα πλήDος ακαδηµαϊκών και εκπαιδευτικών ιδρυµάτων. Ελπίζω πως µέσα από την παρούσα έκδοση, ο αναγνώστης Dα έρDει σε επαφή µε τη Μουσική των Ήχων και τη δηµιουργία της µέσω υπολογιστή, και Dα κατανοήσει σε βάDος τις ιδιαιτερότητες και τα χαρακτηριστικά γνωρίσµατα αυτής δηµιουργίας που την κάνουν τόσο µοναδική και υπέροχη.


ακολουθούν δείγματα σελίδων από τα κεφάλαια του βιβλίου


20

Η Μουσική των Υπολογιστών

Εικ.1.3. Τα σηµεία d και e κα6ώς µετατοπίζονται ασκούν πίεση στα γειτονικά τους σηµεία c και f, αντίστοιχα, µεταβιβάζοντας τους ταυτόχρονα µέρος από την κινητική τους ενέργεια.

Εικ.1.4. Τα d και e τείνουν να επανέλ6ουν στην αρχική τους 6έση, ενώ ταυτόχρονα τα c και f αποµακρύνονται προς τα γειτονικά τους σηµεία b και g αντίστοιχα.

Εικ.1.5.-1.7. Η ίδια διαδικασία επαναλαµβάνεται σε κά6ε ζευγάρι γειτονικών µορίων έως ότου η αρχική ενέργεια τελικά αποσβεστεί.

Εάν τώρα προβάλλουµε τα παραπάνω χρονικά στιγµιότυπα µε διαδοχική χρονική σειρά ξεκινώντας από το χρονικό στιγµιότυπο της κατάστασης ισορροπίας t0 έως τη χρονική στιγµή t6, 6α διαπιστώσουµε µε πιο ξεκά6αρο τρόπο πως ο ήχος είναι µία µετάδοση µιας αρχικής διαταραχής. Η διαταραχή αυτή µεταφέρεται µέσω ταλαντώσεων των µορίων του µέσου στο οποίο ταξιδεύει ο ήχος, όπως για παράδειγµα στον αέρα, γύρω από την 6έση ισορροπίας τους:


Ταλαντώσεις Ήχου

21

Εικ.1.8.

Τα σηµεία λοιπόν κα6ώς πάλλονται γύρω από τον άξονα ισορροπίας τους ουσιαστικά καταλήγουν να δηµιουργήσουν ένα κύµα, το οποίο ταξιδεύει εντός του µέσου διάδοσης του ήχου1. Για την ακρίβεια µάλιστα η παραπάνω αναπαράσταση απεικονίζει τη µετάδοση του ήχου σε µονοδιάστατο περιβάλλον, αφού αφορά σηµεία σε µία ευ6εία γραµµή. Στην πραγµατικότητα αυτή η διαταραχή της ατµοσφαιρικής πίεσης του αέρα συµβαίνει και στις τρεις διαστάσεις, αφορά δηλαδή µία σφαιρική µετατόπιση.

Εικ.1.9. Σχηµατική αναπαράσταση µετατόπισης των µορίων του αέρα στον τρισδιάστατο χώρο από µία αρχική διαταραχή στο σηµείο a. Μπορούµε να φανταστούµε την ίδια µετατόπιση προς όλες τις δυνατές κατευ6ύνσεις -εδώ για απλούστευση απεικονίζεται σε τρεις κά6ετους άξονες, µε αποτέλεσµα τη δηµιουργία ενός σφαιρικού ηχητικού κύµατος. 1

Ο συγκεκριµένος τύπος κύµατος όπου τα σωµατίδια του µέσου προκαλούν πυκνώσεις και αραιώσεις καλείται διαµήκες κύµα.


28

Η Μουσική των Υπολογιστών

Ας δούµε τώρα τι 6α συµβεί στα µόρια του αέρα σε δύο διαφορετικές περιπτώσεις όπου η αρχική διαταραχή είναι διαφορετική σε µέγε?ος. Όσο µεγαλύτερη είναι η αρχική πίεση που ασκείται από την ηχητική πηγή τόσο µεγαλύτερη 6α είναι και η απόκλιση των µορίων του µέσου από την κατάσταση ισορροπίας τους. Nα ταλαντώνονται δηλαδή µε µεγαλύτερο πλάτος ταλάντωσης.

Εικ.1.19.-1.20. Στη δεύτερη περίπτωση η αρχική διαταραχή είναι µεγαλύτερη µε αποτέλεσµα η πίεση που ασκείται στα µόρια του µέσου να είναι επίσης µεγαλύτερη. Τα µόρια 6α ταλαντώνονται σε µεγαλύτερες αποστάσεις από την κατάσταση ισορροπίας τους, σε µεγαλύτερα δηλαδή πλάτη.

Εικ.1.21. Περίπτωση δύο ταλαντώσεων µε ίδια συχνότητα ταλάντωσης αλλά διαφορετικά πλάτη. Στη δεύτερη µάλιστα ταλάντωση τα µόρια ταλαντώνονται µε διπλάσιο πλάτος σε σχέση µε την πρώτη, στις αντίστοιχες χρονικές στιγµές.


Ταλαντώσεις Ήχου

29

Συνη6ίζεται να καλούµε πλάτος ταλάντωσης τη µέγιστη απόκλιση της ταλάντωσης από τη 6έση ισορροπίας. Επειδή µάλιστα αυτή συµβαίνει τόσο προς τη µία όσο και προς την άλλη κατεύ6υνση, τόσο δηλαδή ως προς τις 6ετικές όσο και ως προς τις αρνητικές τιµές του άξονα y, το πλάτος αφορά την απόλυτη αυτή τιµή.

Εικ.1.22. Το πλάτος µιας ταλάντωσης αφορά τη µέγιστη 6ετική ή αρνητική µετατόπιση που 6α λάβει η ταλάντωση στον άξονα y.

Εικ.1.23.-1.24. Iύο ταλαντώσεις µε την ίδια ακριβώς συχνότητα, αλλά µε διαφορετικά πλάτη. Ισχύει µάλιστα α= 3β.


34

Η Μουσική των Υπολογιστών

Εικ.2.3.

Η ίδια διαδικασία επαναλαµβάνεται για τις τέσσερις επόµενες στιγµές:

Εικ.2.4.-2.7.


Ηµιτονοειδείς Ταλαντώσεις

35

Στο σηµείο αυτό, ο δείκτης δείχνει ‘ακριβώς’ και το ίχνος του λαµβάνει τη µέγιστη Aετική τιµή (Εικ.2.7). ΑκολουAούµε την ίδια διαδικασία για τις πέντε επόµενες τιµές, µέχρι δηλαδή λίγο πριν ο δείκτης δείξει ‘παρά τέταρτο’, και παρατηρούµε πως οι τιµές αυτές ακολουAούν µία σταδιακά φAίνουσα πορεία:

Εικ.2.8.

Ενώ στην επόµενη στιγµή που ο δείκτης δείχνει ‘παρά τέταρτο’ το ίχνος του µηδενίζεται ξανά:

Εικ.2.9.

Από το σηµείο αυτό και µετά, όσο κινείται ο δείκτης οι τιµές που παίρνουµε είναι αρνητικές. Τη στιγµή µάλιστα που ο δείκτης δείξει ‘και µισή’ το ίχνος του Aα λάβει τη µέγιστη αρνητική τιµή:

Εικ.2.10.


46

Η Μουσική των Υπολογιστών

αφού ισχύει f2 = 2f1. Επίσης παρατηρούµε πως το ύNος της δεύτερης ράβδου είναι µιάµιση φορά µεγαλύτερο από αυτό της πρώτης, αφού το πλάτος ταλάντωσης της δεύτερης ηµιτονοειδούς ισοδυναµεί µε a*1.5. Όπως Aα διαπιστώσουµε η συγκεκριµένη απεικόνιση η οποία καλείται και φασµατική απεικόνιση, είναι αρκετά χρήσιµη σε µία σειρά από περιπτώσεις αποτύπωσης ενός ήχου. Ας δούµε στη συνέχεια τι Aα συµβεί εάν α/ροίσουµε τις δύο αυτές ταλαντώσεις. Εάν δηλαδή διαιρέσουµε το συνολικό χρόνο t σε µικρά χρονικά στιγµιότυπα και για κάAε ένα τέτοιο στιγµιότυπο αAροίζουµε την τιµή πλάτους που έχει η πρώτη ταλάντωση τη στιγµή εκείνη, µε την τιµή πλάτους της δεύτερης ταλάντωσης την ίδια χρονική στιγµή. Ας επισηµάνουµε δε, πως η άAροιση αυτή Aα είναι αλγεβρική: όπου δηλαδή υπάρχει αρνητική τιµή πλάτους, αυτή ουσιαστικά Aα αφαιρείται. Όπως φαίνεται και από το παρακάτω σχήµα Aα προκύNει µία νέα τρίτη ταλάντωση:

Εικ.2.25.

Η ταλάντωση αυτή έχει τα εξής χαρακτηριστικά: α. Από τη µορφή της προκύπτει πως η ταλάντωση αυτή παύει να είναι ηµιτονοειδής. Σε αντίAεση δηλαδή µε την απλή ηµιτονοειδή κυµατοµορφή παρουσιάζεται τώρα µία νέα σύν9ετη κυµατοµορφή.


Ηµιτονοειδείς Ταλαντώσεις

47

β. Η νέα αυτή σύνAετη κυµατοµορφή είναι περιοδική, παρουσιάζει δηλαδή µία επαναληNιµότητα. Παρατηρούµε µάλιστα πως η περίοδος της επανάληNης Τ, ταυτίζεται µε αυτήν της πρώτης ταλάντωσης. Ισχύει δηλαδή Τ = Τ1. γ. Το πλάτος της c αντιστοιχεί στο µέγιστο άAροισµα που Aα προκύNει από τις διαρκείς αAροίσεις των πλατών των δύο ταλαντώσεων στα διαδοχικά χρονικά στιγµιότυπα. Lεν ισχύει απαραίτητα πως c = a + 1.5*a, αφού κάτι τέτοιο Aα συνέβαινε µόνο εάν τα µέγιστα πλάτη των δύο ηµιτονοειδών συνέπιπταν χρονικά. δ. Η κυµατική συνάρτηση της νέας αυτής σύνAετης κυµατοµορφής Aα αποτελεί το άAροισµα των συναρτήσεων των δύο ηµιτονοειδών. Ισχύει δηλαδή: y(t) = a x sin(2πf t) + 1.5a x sin(2π2f t) ή y(t) = a x [ sin(2πf t) + 1.5 x sin(4πf t)] Από δύο λοιπόν απλές ηµιτονοειδείς συνιστώσες καταφέραµε και κατασκευάσαµε µία σύνAετη κυµατοµορφή. Με µία αντίστροφη διαδικασία µπορούµε να πούµε πως µία σύνAετη κυµατοµορφή µπορεί να αναλυAεί στις αντίστοιχες ηµιτονοειδείς συνιστώσες από τις οποίες αποτελείται. Αυτό φαίνεται καλύτερα στο παρακάτω σχήµα:

Εικ.2.26.

Από το σχήµα παρατηρούµε επίσης πως η φασµατική απεικόνιση της σύνAετης κυµατοµορφής περιέχει πλέον και τις δύο συνιστώσες. Με τον ίδιο τρόπο µπορούµε να δηµιουργήσουµε µία οποιαδήποτε άλλη σύνAετη κυµατοµορφή. Αρκεί πάλι να


Η Μουσική των Υπολογιστών

60

α. Το εξωτερικό αυτί Το εξωτερικό αυτί, το οποίο κατά ένα µεγάλο µέρος είναι ορατό, αποτελείται από το πτερύγιο του αυτιού, τον έξω ακουστικό πόρο και τον τυµπανικό υµένα ή τύµπανο.

Εικ.3.2. Το εξωτερικό αυτί.

Το πτερύγιο του αυτιού είναι µία κατασκευή από χόνδρο που καλύπτεται από δέρµα, στο δε κάτω άκρο του υπάρχει µόνο λίπος που ονοµάζεται λοβίο. Οι διάφορες κοιλότητες και πτυχώσεις που υπάρχουν στο πτερύγιο (έλιξ, σκάφος, κόγχη) παίζουν έναν πολύ σηµαντικό ρόλο στην πρόσλη(η του ήχου, κα2ώς αυτές επιφέρουν χρονικές µικρο-διαφοροποιήσεις στην άφιξη της ηχητικής πηγής, της τάξης κάποιων εκατοντάδων εκατοµµυριοστών του δευτερολέπτου. Οι διαφοροποιήσεις αυτές οφείλονται στο γεγονός της ανοµοιογένειας των πτυχώσεων αυτών. Έτσι κα2ώς η ηχητική πηγή ανακλάται στα εξωτερικά τοιχώµατα του πτερυγίου η πληροφορία του ήχου φτάνει σε διαφορετικούς χρόνους από πολλαπλά διαφορετι-


Η Αντίλη(η του Ήχου

61

κά σηµεία, σε διαφορετικές δηλαδή φάσεις. Εάν η ίδια πηγή µεταφερ2εί σε διαφορετικό ύ(ος σε σχέση µε το αυτί, η ά2ροιση αυτών των χρονικών κα2υστερήσεων 2α διαφέρει. Κατ’ αυτόν τον τρόπο οι κατασκευαστικές αυτές διαφοροποιήσεις των διαφόρων µερών του πτερυγίου συµβάλλουν στον προσδιορισµό της αντίλη(ης του ύ(ους από το οποίο εκπέµπεται η πηγή. Ο έξω ακουστικός πόρος είναι ένας σωλήνας µήκους περίπου 25 χιλιοστών που ξεκινάει από το πτερύγιο του αυτιού και ακολου2ώντας ελαφρώς τοξοειδή πορεία καταλήγει στον τυµπανικό υµένα. Ο τυµπανικός υµένας αποτελεί µια λεπτή µεµβράνη που χωρίζει το εξωτερικό από το µέσο αυτί. Κα2ώς τα µόρια του αέρα ταλαντώνονται αυξοµειώνοντας την πίεση του αέρα, η αυξοµείωση αυτή προκαλεί ταλαντώσεις αντίστοιχης συχνότητας και πλάτους στην µεµβράνη του τυµπάνου.

Εικ.3.3. Στο πρώτο από τα δύο διαφορετικά χρονικά στιγµιότυπα τα µόρια του αέρα στο επίπεδο της τυµπανικής µεµβράνης πυκνώνουν µε αποτέλεσµα τη δηµιουργία πίεσης και την ταλάντωση της µεµβράνης προς τα µέσα. Στο επόµενο στιγµιότυπο τα µόρια αραιώνουν µε αποτέλεσµα τη δηµιουργία υπο-πίεσης και την ταλάντωση της µεµβράνης προς τα έξω.

β. Το µέσο αυτί Οι ταλαντώσεις της µεµβράνης µεταφέρονται στη συνέχεια σε τρία µικρά οστάρια τα οποία αποτελούν το µέσο αυτί: τη σφύρα, τον άκµονα και τον αναβολέα. Αυτό το σύστηµα των οστών κα2ώς εφάπτεται µε τη µεµβράνη αφενός µεταφέρει τις δονήσεις της µεµβράνης από το ένα άκρο του στο άλλο, και αφετέρου δρα υποστηρικτικά προς αυτήν περιορίζοντας τις πιέσεις που δέχεται το τύµπανο, για µεγάλα πλάτη ταλάντωσης. Επιπρόσ2ετα, η διάταξη αυτή λειτουργεί ενισχυτικά ως προς τις


Η Μουσική των Υπολογιστών

72

πρέπει να βρίσκεται στη διπλάσια τιµή, δηλαδή στα 440 Hz, µία οκτάβα επάνω από τα 440 Hz 2α πρέπει να βρίσκεται στα 880 Hz κ.ο.κ.

Εικ.3.13.

Αυτό λοιπόν που κάνουµε κά2ε φορά είναι να διπλασιάζουµε την αµέσως προηγούµενη τιµή συχνότητας. Έτσι, εάν τώρα 2ελήσουµε να βρούµε τον τρόπο υπολογισµού των οκτάβων ξεκινώντας από τα 110 Hz 2α έχουµε:

πρώτη οκτάβα: 2 x 110 = 220 = 21 x 110 δεύτερη οκτάβα: 2 x (2 x 110) = 440 = 22 x 110 τρίτη οκτάβα: 2 x (2 x (2 x 110)) = 880 = 23 x 110 τέταρτη οκτάβα: 2 x (2 x (2 x (2 x 110))) = 1760 = 24 x 110, κ.ο.κ.

Παρατηρούµε λοιπόν πως κά2ε φορά πολλαπλασιάζουµε τη βασική συχνότητα µε την αντίστοιχη δύναµη του 2. Γενικεύοντας, για να ανέβουµε n οκτάβες από µία βασική συχνότητα B: n-οστή οκτάβα: B x 2n Το γεγονός αυτό δηµιουργεί ένα µικρό παράδοξο. Ενώ προκειµένου να παίξουµε ένα διάστηµα οκτάβας στο πιάνο µετράµε την ίδια ακριβώς απόσταση σε αρι2µό πλήκτρων κά2ε φορά (12 άσπρα και µαύρα πλήκτρα, τα 12 δηλαδή ηµιτόνια), δεν ισχύει το ίδιο και για τις συχνότητες. Mεν αυξάνονται δηλαδή µε στα2ερό βήµα και αυτές, αλλά µε βάση µία επόµενη δύναµη του δύο. Αυξάνονται δηλαδή µε εκCετικό ρυCµό αύξησης.


Η Αντίλη(η του Ήχου

73

Εικ.3.14. Ενώ το διάστηµα πλήκτρων στο πιάνο που µεσολαβεί ανάµεσα σε κά2ε επόµενη οκτάβα του Λα παραµένει στα2ερό, η αύξηση στη συχνότητα είναι εκ2ετική.

Το πρώτο λοιπόν συµπέρασµα από τα παραπάνω είναι πως το ανCρώπινο αυτί αντιλαµβάνεται την αύξηση σε τονικά διαστήµατα µε εκCετικό τρόπο. Ας σχεδιάσουµε ξανά την κλίµακα αύξησης των Hz σε σχέση µε τις οκτάβες του λα, απεικονίζοντας σε έναν οριζόντιο άξονα (άξονας x) τις νότες και σε έναν κά2ετο άξονα (άξονας y) τις αντίστοιχες τιµές σε Hz:


98

Η Μουσική των Υπολογιστών

Εικ.4.11. Όταν τροφοδοτη?εί µε ηλεκτρικό ρεύµα το καλώδιο ενός πηνίου δηµιουργείται µαγνητικό πεδίο, οι γραµµές του οποίου διαπερνούν τις σπείρες του. Η ένταση του πεδίου είναι ανάλογη της έντασης του ρεύµατος. Η φορά µαγνήτισης (N-S) εξαρτάται από την φορά του ρεύµατος στο καλώδιο, εάν δηλαδή έχει κατεύ?υνση από το άκρο α προς το άκρο β ή αντίστροφα.

Η επίστρωση µιας µαγνητικής ταινίας αποτελείται από ένα πλή?ος από µικροσκοπικά Lήγµατα µαγνητικών στοιχείων. Τα µαγνητικά αυτά στοιχεία σε µία αρχική κατάσταση δεν είναι µαγνητισµένα, η φορά δηλαδή µαγνήτισής τους βρίσκεται σε τυχαίες κατευ?ύνσεις:

Εικ.4.12. Μαγνητική επίστρωση µιας µαγνητοταινίας. Τα µαγνητικά στοιχεία είναι τυχαία προσανατολισµένα.

Όταν µία τέτοια ταινία περάσει µέσα από ένα ηλεκτροµαγνητικό πεδίο τα σωµατίδια αυτά µαγνητίζονται αντίστοιχα. Αναλόγως µάλιστα την τάση του ρεύµατος έχουµε µεγαλύτερες ή µικρότερες συγκεντρώσεις στοιχείων:

Εικ.4.13. Η παραπάνω περίπτωση όταν πλέον η ταινία έχει µαγνητιστεί (διαδικασία εγγραφής).


Ο Ήχος ως Πληροφορία

99

Η µαγνήτιση της επίστρωσης γίνεται από µία ειδική κεφαλή εγγραφής η οποία τροφοδοτείται µε ρεύµα. Αναλόγως την τάση του ρεύµατος η κεφαλή παράγει µαγνητικό πεδίο αντίστοιχης φοράς και δυναµικής. Τα σωµατίδια της επίστρωσης µαγνητίζονται κα?ώς η ταινία κινείται µε στα?ερή ταχύτητα µπροστά από την κεφαλή:

Εικ.4.14. Κα?ώς η ταινία κινείται κάτω από την κεφαλή εγγραφής τα σωµατίδια της επίστρωσης µαγνητίζονται αντίστοιχα µε την φορά και την τάση του ρεύµατος (i) που διατρέχει το πηνίο.

Μία δεύτερη κεφαλή, η κεφαλή ανάγνωσης, χρησιµοποιείται για να διαβαστεί µία ταινία. Κα?ώς η ταινία κινείται µπροστά από την κεφαλή τα µαγνητικά σωµατίδια δηµιουργούν ένα ηλεκτροµαγνητικό πεδίο µεταβλητής φοράς και έντασης, µε αποτέλεσµα να άγεται ρεύµα αντίστοιχης φoράς και τάσης µέσα από το καλώδιο του πηνίου:

Εικ.4.15. Κα?ώς η ταινία κινείται κάτω από την κεφαλή ανάγνωσης, τα µαγνητισµένα σωµατίδια δηµιουργούν µαγνητικό πεδίο, το οποίο σαν αποτέλεσµα έχει να άγεται ρεύµα (i) αντίστοιχης τάσης και φοράς µέσα από το καλώδιο του πηνίου.


Η Μουσική των Υπολογιστών

102

ανά δευτερόλεπτο σε ένα Lηφιακό µέσο καλείται συχνότητα δειγµατολη9ίας (sampling rate). Επιπρόσ?ετα, υπάρχει µία σχέση ανάµεσα στη συχνότητα δειγµατοληLίας -στο πλή?ος δηλαδή δειγµάτων που λαµβάνονται ανά δευτερόλεπτο- και στη µέγιστη συχνότητα ήχου που µπορεί να αποτυπω?εί σε ένα Lηφιακό µέσο. Η σχέση αυτή είναι: µέγιστη συχνότητα αποτύπωσης = συχνότητα δειγµατοληLίας / 2 Με απλά λόγια, εάν η µέγιστη συχνότητα ήχου που υπάρχει σε ένα αναλογικό σήµα είναι για παράδειγµα 4000 Hz, χρειάζονται τουλάχιστον 8000 δείγµατα ανά δευτερόλεπτο για να αποτυπω?εί σωστά η συχνότητα αυτή Lηφιακά. Λαµβάνοντας υπόLη πως ?εωρητικά το αν?ρώπινο αυτί αντιλαµβάνεται συχνότητες έως περίπου 20000 Hz, µία τυποποιηµένη συχνότητα δειγµατοληLίας είναι αυτή των 44100 Hz. Για να αντιληφ?ούµε καλύτερα πόσο µεγάλο πλή?ος είναι τα 44100 δείγµατα ανά δευτερόλεπτο, µπορούµε να υπολογίσουµε την περίοδο δειγµατολη9ίας (sampling period ή sampling interval), το χρονικό δηλαδή διάστηµα που µεσολαβεί ανάµεσα σε δύο διαδοχικά δείγµατα:

Εικ.4.19. Το χρονικό διάστηµα ανάµεσα σε δύο διαδοχικά δείγµατα ήχου καλείται περίοδος δειγµατοληLίας (sampling period ή sampling interval).

Ισχύει: περίοδος δειγµατοληLίας = 1 / συχνότητα δειγµατοληLίας ή, για συχνότητα δειγµατοληLίας = 44100 δείγµατα / sec:


Ο Ήχος ως Πληροφορία

103

περίοδος δειγµατοληLίας = 1 / 44100 = 22.6 x 10-6 sec = 22.6 µsec ή µε µία άλλη διατύπωση: για συχνότητα δειγµατοληLίας ίση προς 44100 δείγµατα/sec, κά?ε 22.6 εκατοµµυριοστά του δευτερολέπτου λαµβάνεται και ένα δείγµα ήχου.

PCM Κωδικοποίηση Με ποιόν τρόπο ένα Lηφιακό µέσο απο?ηκεύει τα δείγµατα ενός ήχου; Γενικά, ο Lηφιακός ήχος έχει διάφορους τύπους κωδικοποίησης. Από τους πιο διαδεδοµένους είναι αυτός της PCM κωδικοποίησης. Η κωδικοποίηση αυτή χρησιµοποιεί ένα συγκεκριµένο πλή?ος bit1 προκειµένου να µοιράσει σε διακριτές τιµές τις διαφορετικές στά6µες πλάτους που µπορεί να έχει µία κυµατοµορφή. Για να καταλάβουµε καλύτερα την κωδικοποίηση αυτή ας δούµε µία περίπτωση όπου χρησιµοποιείται ένα σύστηµα τριών bit. Γνωρίζουµε πως οι τιµές που µπορούν να αποτυπω?ούν σε τρία bit είναι από 0 (000) έως 7 (111), οκτώ δηλαδή διαφορετικές καταστάσεις. Όταν λοιπόν Lηφιοποιούµε µία κυµατοµορφή, για κά?ε χρονικό στιγµιότυπο-δείγµα που λαµβάνουµε από την κυµατοµορφή αντιστοιχούµε σε αυτό και µία από τις οκτώ αυτές διαφορετικές στά?µες πλάτους:

Εικ.4.20. Τα πρώτα εννέα δείγµατα κατά την Lηφιοποίηση µιας κυµατοµορφής και τα αντίστοιχα επίπεδα στά?µης ανά δείγµα (προβολή στον κά?ετο άξονα). Παρατηρούµε την αναντιστοιχία των προβολών αυτών σε σχέση µε τα οκτώ δια?έσιµα επίπεδα στά?µης του συστήµατος. 1

Περισσότερα για τα bit και byte βλ. και στο Παράρτηµα A’.


122

Η Μουσική των Υπολογιστών

συνή>ως ένα µεγάλων διαστάσεων δωµάτιο, είχαν µικρή επεξεργαστική ισχύ και το κόστος τους ήταν απαγορευτικό. Λίγες µόνο µεγάλες εταιρίες και κάποια ελάχιστα ακαδηµαϊκά ιδρύµατα είχαν τη δυνατότητα απόκτησής τους. Επίσης, δεν είχαν πληκτρολόγιο -οι εντολές δίδονταν µε ένα σύστηµα διάτρητων καρτών που διάβαζε ο υπολογιστής, δεν είχαν σκληρούς δίσκους -η απο>ήκευση των αρχείων γινόταν σε µποµπίνες από µαγνητικές ταινίες και φυσικά δεν είχαν κάρτες ήχου.

Εικ.5.1. ΆποDη του IBM-704, του υπολογιστή που γράφτηκε η γλώσσα προγραµµατισµού MUSIC I. Ο υπολογιστής αυτός µπορούσε να εκτελεί µέχρι 40000 εντολές το δευτερόλεπτο. Ενδεικτικά ένα απλό σηµερινό tablet του εµπορίου εκτελεί κάποια δισεκατοµµύρια εντολές το δευτερόλεπτο.

Η πρώτη σύν>εση µε τη γλώσσα MUSIC I γράφτηκε από τον Newman Guttman, η διάρκεια της ήταν 17 µόλις δευτερόλεπτα, και είχε τίτλο ‘In the Silver Scale’. Η γλώσσα που έφτιαξε ο Max Mathews, ήταν η πρώτη µιας σειράς γλωσσών προγραµµατισµού για µουσική -ακολού>ησαν η MUSIC II, III, IV κ.λπ., και οι οποίες γενικότερα αναφέρονται ως σειρά γλωσσών MUSIC-N. Στην ανάπτυξή τους, εκτός απ΄τα εργαστήρια Bell Labs, συνέβαλαν στην πορεία και µεγάλα ακαδηµαϊκά ιδρύµατα των Η.Π.Α., µεταξύ των οποίων, τα Πανεπιστήµια του Stanford, του Princeton κα>ώς και το MIT. Η δοµή των γλωσσών αυτών από τη MUSIC III και έπειτα ακολου>εί την ίδια λογική, ενώ η τελική της µορφή ουσιαστικά στα>εροποιείται µε την έκδοση της MUSIC V. Ο κώδικας αποτελείται από δύο τµήµατα: το αρχείο ορχήστρας (orchestra file) και το αρχείο παρτιτούρας (score file). Στο αρχείο ορχήστρας γράφονται οι εντολές οι οποίες αφορούν τις δοµές ήχου. Κά>ε τέτοια δοµή η οποία ονοµάζεται όργανο (instrument) µπορεί να περιλαµβάνει µία σειρά από παραµέτρους όπως για παράδειγµα το τονικό ύDος ή το πλάτος µε το οποίο >α ηχήσει. Αντίστοιχα, στο αρχείο παρτιτούρας γράφονται οι εντολές που ενεργοποιούν τις δοµές αυτές. Πότε δηλαδή ένα όργανο >α ηχήσει, µε ποια διάρκεια και µε ποιες


Computer Music: Μουσική µέσω Υπολογιστή

123

συγκεκριµένες τιµές στις παραµέτρους του. Κά>ε τέτοια εντολή του αρχείου παρτιτούρας καλείται νότα.

Εικ.5.2. Οι γλώσσες MUSIC-N και τα αντίστοιχα ιδρύµατα στα οποία αναπτύχ>ηκαν. Μαζί µε τη χρονολογία δηµιουργίας τους αναφέρεται και ο τύπος υπολογιστή για τον οποίο ήταν κωδικοποιηµένες, εκτός των MUSIC IV BF και MUSIC V, ο κώδικας των οποίων γράφτηκε στη γλώσσα προγραµµατισµού FORTRAN.

Κύριο χαρακτηριστικό των πρώτων αυτών γλωσσών ήταν πως είχαν φτιαχτεί ειδικά για συγκεκριµένους τύπους υπολογιστών. Αυτό σηµαίνει πως τα προγράµµατα αυτά µεταφράζονταν απ’ ευ<είας στη γλώσσα µηχανής του υπολογιστή που τα φιλοξενούσε18. Προκειµένου λοιπόν κάποιος να χρησιµοποιήσει µία τέτοια γλώσσα έπρεπε να είχε στην κατοχή του τον αντίστοιχο υπολογιστή για τον οποίο ήταν κωδικοποιηµένη. Η συν>ήκη αυτή περιόριζε ακόµη περισσότερο τους εν δυνάµει χρήστες των γλωσσών αυτών, στον ήδη µικρό αρι>µό ιδρυµάτων που είχαν στην κατοχή τους ηλεκτρονικούς υπολογιστές. Επιπρόσ>ετα, για κά>ε αλλαγή που συνέβαινε στον εξοπλισµό τα προγράµµατα αυτά έπρεπε να ξαναγραφούν από την αρχή. Προκειµένου να παρακαµφ>ούν αυτές οι δυσκολίες, σε δύο διαφορετικές εκδόσεις των γλωσσών αυτών, στην MUSIC IV BF και στην MUSIC V, ακολου>ή>ηκε µία διαφορετική προσέγγιση: ο κώδικας του προγράµµατος γράφτηκε εξ ολοκλήρου µε τη γλώσσα προγραµµατισµού FORTRAN. Με αυτόν τον τρόπο οι γλώσσες πλέον ανεξαρτητοποιή>ηκαν από τα µηχανήµατα και ένα ειδικό πρόγραµµα, το οποίο καλείται compiler, αναλαµβάνει πλέον να µεταφράζει τις 18 Για µία εισαγωγική παρουσίαση των βασικών εννοιών των γλωσσών προγραµµατισµού και της εξέλιξης τους, βλ. Παράρτηµα Γ’: ‘Προγραµµατιστικά Μοντέλα’.


130

Η Μουσική των Υπολογιστών

αρχικά το 4X, ενεργώντας έτσι σαν ένα ενδιάµεσο προγραµµατιστικό περιβάλλον (interface) ανάµεσα στον χρήστη και σε κάποια εξειδικευµένη µονάδα ήχου. Το σηµαντικό µε το περιβάλλον αυτό ήταν πως ο χρήστης µπορούσε να επεµβαίνει στα γραφιστικά αντικείµενα της ηχητικής δοµής κατά τη διάρκεια αναπαραγωγής της και να τροποποιεί τα χαρακτηριστικά της σε πραγµατικό χρόνο. Την εµπορική εκµετάλλευση της εφαρµογής ανέλαβε αρχικά η εταιρεία Opcode Systems µε την προσ>ήκη επιπλέον δυνατοτήτων από τον David Zicarelli, εγχείρηµα το οποίο όµως τελικά εγκαταλείφ>ηκε κα>ώς δεν είχε την αναµενόµενη εµπορική επιτυχία. Μία επόµενη έκδοση της MAX, η Max/FTS και µία καινούργια πλατφόρµα η οποία αντικατέστησε την 4Χ, η ISPW -η οποία λειτουργούσε σαν επέκταση κυκλωµάτων ήχου για τον υπολογιστή NeXT, αναπτύχ>ηκε από το IRCAM στα τέλη της δεκαετίας του 1980.

Εικ.5.7. Ανάπτυξη ηχητικής δοµής σε visual programming περιβάλλον - εδώ στο Pd. Kα>ένα από τα γραφιστικά αντικείµενα αναλαµβάνει να εκτελέσει µία εξειδικευµένη λειτουργία ενώ µέσω των patch chord διαφορετικά αντικείµενα µπορούν να συνδε>ούν µεταξύ τους, υλοποιώντας έτσι µία συγκεκριµένη ηχητική δοµή η οποία καλείται patch. Ο χρήστης µπορεί να επέµβει στα αντικείµενα του patch τροποποιώντας τα χαρακτηριστικά του ήχου σε πραγµατικό χρόνο.

Το κύριο πρόβληµα για την MAX ήταν πως παρέµενε ένα MIDI interface ανάµεσα στο Patcher και σε µία εξωτερική µονάδα. Αυτό σήµαινε πως το περιβάλλον αυτό δεν είχε ακόµη τη δυνατότητα να παράγει αυτόνοµα ήχο χωρίς δηλαδή τη χρήση µιας εξειδικευµένης εξωτερικής πλατφόρµας, η οποία για την εποχή εκείνη είχε υDηλό κόστος απόκτησης. Το εµπόδιο αυτό ξεπεράστηκε στα µέσα της δεκαετίας του 1990 όταν ο Miller Puckette αναπτύσσει για δεύτερη φορά ένα καινούργιο visual programming περιβάλλον αρκετά κοντινό σε αυτό της MAX. Το ονόµασε Pd


Computer Music: Μουσική µέσω Υπολογιστή

131

(Pure Data). Η καινοτοµία του συγκεκριµένου περιβάλλοντος αφορά στο γεγονός πως, σε αντί>εση µε την MAX, το Pd χρησιµοποιεί τα κυκλώµατα του ίδιου του υπολογιστή προκειµένου να παράγει ήχο. Ουσιαστικά λοιπόν το Pd αποτελεί την πρώτη ολοκληρωµένη εφαρµογή µε την οποία ο ίδιος ο υπολογιστής αυτονοµείται από εξωτερικές πλατφόρµες και παράγει πλέον ήχο σε πραγµατικό χρόνο, µέσα από ένα visual programming περιβάλλον. Το Pd υπήρξε η βάση για να ενσωµατω>ούν πρόσ>ετες ρουτίνες παραγωγής ήχου στην επόµενη εµπορική έκδοση της MAX, η οποία πλέον είχε περιέλ>ει στην κυριότητα της εταιρείας Cycling 74. Οι επιπλέον αυτές ρουτίνες παραγωγής και διαχείρισης ήχου ονοµάστηκαν MSP, από τα αρχικά Max Signal Processing και έτσι η τελική ολοκληρωµένη έκδοση ονοµάστηκε Max/MSP. Σε αντί>εση µε το Pd το οποίο είναι λογισµικό ελεύ>ερης διανοµής/ανοικτού κώδικα (free distribution/open source), η Max/MSP αποτελεί εµπορικό προϊόν. Αντίστοιχα µε τα περιβάλλοντα του Pd και της Max/MSP, το IRCAM παρουσιάζει την ίδια περίοδο µία νέα ελεύ>ερης διανοµής έκδοση της MAX, την jMax, η οποία είναι εξ ολοκλήρου γραµµένη σε κώδικα java. Σε αντί>εση µε άλλες γλώσσες προγραµµατισµού, όπως για παράδειγµα η C, η java δεν χρειάζεται ειδικό πρόγραµµα µεταγλώττισης στον αντίστοιχο κώδικα µηχανής στον οποίο φιλοξενείται, αφού έχει ενσωµατωµένες ρουτίνες οι οποίες διαχειρίζονται τη λειτουργία αυτή. Αυτό το χαρακτηριστικό, αν και επιβαρύνει τον υπολογιστή µε επιπλέον υπολογιστικό χρόνο, την κάνει εξαιρετικά ευέλικτη αφού πρακτικά η ίδια έκδοση µπορεί να εκτελεστεί σε µία σειρά από διαφορετικές πλατφόρµες. Με την ίδια λογική πρόσφατα αναπτύχ>ηκε και η jMax Phoenix, µια νεότερη έκδοση της jMax ανοικτού επίσης κώδικα.

Εικ.5.8. Oιαγραµµατική απεικόνιση των διαφόρων εκδόσεων της οικογένειας MAX.


142

Η Μουσική των Υπολογιστών

Εικ.6.4. Πίνακας ηµιτονοειδούς κυµατοµορφής δεκαέξι 'έσεων (0-15). Σε κά'ε 'έση του πίνακα είναι απο'ηκευµένη και µία τιµή, η οποία αντιστοιχεί στο πλάτος της κυµατοµορφής την αντίστοιχη χρονική στιγµή. Το σύνολο των τιµών περιγράφει µία πλήρη περίοδο ταλάντωσης της κυµατοµορφής.

Από το σχήµα παρατηρούµε πως οι τιµές του πίνακα αφορούν ταλάντωση µε πλάτος ισοδύναµο µε τη µονάδα. Έτσι, τα δύο µέγιστα της ταλάντωσης -'ετικό και αρνητικό- έχουν τιµές +1 και -1 ('έσεις 4 και 12, αντίστοιχα). Ένας ταλαντωτής χρησιµοποιεί τέτοιους πίνακες κυµατοµορφής προκειµένου να παράγει στην έξοδό του τιµές που να αντιστοιχούν στα δείγµατα µιας περιοδικής ταλάντωσης. Ουσιαστικά, µια µονάδα ταλαντωτή 'α µπορούσε να σχεδιαστεί και ως εξής:

Εικ.6.5.


Aλγόρι&µοι Ηχητικής Σύν&εσης

143

Κά'ε φορά που ο ταλαντωτής χρειάζεται να παράγει µια νέα τιµή ανατρέχει στην τρέχουσα 'έση του πίνακα και εξάγει την αντίστοιχη τιµή. Πόσο συχνά όµως συµβαίνει αυτό; Κά'ε πότε δηλαδή ο ταλαντωτής χρειάζεται να στέλνει στην έξοδό του µία νέα τιµή; Γνωρίζουµε πως οι τιµές αυτές αφορούν δείγµατα ήχου. Γνωρίζουµε επίσης πως το πλή'ος των δειγµάτων στον Hηφιακό ήχο κα'ορίζεται από τη συχνότητα δειγµατοληHίας (sampling rate). Ισχύει δηλαδή πως: συχνότητα δειγµατοληHίας = πλή'ος δειγµάτων / δευτερόλεπτο Έτσι όταν η συχνότητα δειγµατοληHίας είναι 44100 ορίζουµε πως ο ήχος που παράγεται αποτελείται από 44100 δείγµατα ανά δευτερόλεπτο. Με βάση αυτήν την τιµή µπορούµε να υπολογίσουµε και την περίοδο δειγµατολη:ίας (sampling period ή sampling interval)⋅ κά'ε πότε δηλαδή πρέπει να παράγεται ένα νέο δείγµα. Ισχύει: περίοδος δειγµατοληHίας = 1 / συχνότητα δειγµατοληHίας Όπως έχουµε δει, για sr = 44100, η τιµή αυτή ισοδυναµεί περίπου µε 22,6 µSec ή 10-6 sec (εκατοµµυριοστά του δευτερολέπτου). Για ευκολία, η τιµή αυτή 'α αναφέρεται σαν 1/sr, όπου sr η συχνότητα δειγµατοληHίας που χρησιµοποιούµε. Καταλήγουµε λοιπόν πως ανά 1/sr δευτερόλεπτα, ο ταλαντωτής πρέπει να παράγει και µία νέα τιµή. Ας υπο'έσουµε τώρα πως υπάρχει ένα εσωτερικό ρολόι το οποίο χτυπάει ανά 1/sr δευτερόλεπτα και το οποίο υποδιαιρείται σε 16 τµήµατα, όσες δηλαδή και οι 'έσεις του παραπάνω πίνακα. Όταν το ρολόι δείχνει ‘ακριβώς’, ο ταλαντωτής διαβάζει την πρώτη 'έση του πίνακα -τη 'έση δηλαδή 0- και εξάγει την τιµή που βρίσκεται στη 'έση αυτή, την τιµή δηλαδή 0.000000:

Εικ.6.6.


172

Η Μουσική των Υπολογιστών

Ας υπο'έσουµε τώρα πως µία άλλη µεταβλητή k1 µεταβάλλει τις τιµές της διαδοχικά από 1 σε 0.75, στη συνέχεια σε 0.5, έπειτα σε 0.25 και τέλος σε 0. Η µεταβλητή αυτή είναι µία k-rate µεταβλητή και επειδή έχουµε 'έσει sr/kr = 10, σε κά'ε χτύπο του k-rate ρολογιού αντιστοιχούν 10 δείγµατα ήχου. Εάν δηλαδή σχεδιάσουµε τις δύο αυτές µεταβλητές παράλληλα, η κίνησή τους 'α έχει ως εξής:

Εικ.6.54.

Στο χρονικό λοιπόν διάστηµα που η a1 περιγράφει µία ηµιτονοειδή κίνηση, ταυτόχρονα, η k1 µεταβάλλεται διαδοχικά από το 1 στο 0 σε πέντε διαδοχικές κινήσεις. Επειδή µάλιστα sr/kr= 10, η k1 κρατάει την ίδια τιµή ανά 10 δείγµατα της a1. Το ερώτηµα που προκύπτει στη συνέχεια, είναι τι 'α συµβεί εάν πολλαπλασιάσουµε τις δύο αυτές µεταβλητές µεταξύ τους. Το αποτέλεσµα το απο'ηκεύουµε σε µία τρίτη µεταβλητή a2, και σχηµατικά έχει ως εξής:


Aλγόρι&µοι Ηχητικής Σύν&εσης

173

Εικ.6.55.

Αρχικά, τα πρώτα 10 δείγµατα της a1 πολλαπλασιάζονται µε την τιµή 1, στη συνέχεια τα επόµενα 10 µε την τιµή 0.75, κ.ο.κ. έως ότου να πολλαπλασιαστούν µε την τιµή 0. Κά'ε φορά το αποτέλεσµα του πολλαπλασιασµού απο'ηκεύεται στην arate µεταβλητή a2. Αυτό έχει σαν αποτέλεσµα τα δείγµατα της µεταβλητής a2 να ηχούν σαν να συµβαίνει ένα σταδιακό σβήσιµο στον ήχο. Με αυτόν λοιπόν τον τρόπο πραγµατοποιείται ένα fade-out, µία δηλαδή σταδιακή µείωση στην ένταση του ήχου. Αντίστοιχα, εάν η µεταβλητή k1 µεταβαλλόταν αντίστροφα, από το 0 δηλαδή σταδιακά στο 1 'α είχαµε το αντίστροφο φαινόµενο, µία δηλαδή σταδιακή αύξηση στην ένταση του ήχου ή ένα fade-in. Προκειµένου λοιπόν να αναπαράγονται τέτοια


Η Μουσική των Υπολογιστών

196

τιµή αυτή προτάσσουµε πάντα το γράµµα i. Οι επόµενες δύο τιµές (χρόνος έναρξης και διάρκεια) αφορούν δευτερόλεπτα. Έτσι οι παρακάτω δηλώσεις ενός αρχείου παρτιτούρας: i25 i144 i9 i144

0 0.27 3 2.80

1.324 2 3.33 1.00

δηλώνουν πως αρχικά =α ενεργοποιη=εί η ηχητική δοµή που αντιστοιχεί στο όργανο 25 στο χρόνο 0 για διάρκεια ίση προς 1.324 δευτερόλεπτα⋅ στη συνέχεια η δοµή του οργάνου 144 στο χρόνο 0.27 για 2 δευτερόλεπτα⋅ έπειτα η δοµή του οργάνου 9 στο χρόνο 3 για 3.33 δευτερόλεπτα⋅ τέλος ξανά το όργανο 144 στο χρόνο 2.80 για 1 δευτερόλεπτο. Έχει µεγάλη σηµασία να κατανοήσουµε πως, κα=ώς η Csound παράγει ένα αρχείο ήχου, οι χρόνοι αυτοί αφορούν τη ?έση των δειγµάτων που παράγει κά=ε ηχητική δοµή στο τελικό αρχείο ήχου. Έτσι, εάν για παράδειγµα το όργανο 25 παράγει µία ηµιτονοειδή, το όργανο 144 παράγει µία πριονωτή κυµατοµορφή, και το όργανο 9 µία τετραγωνική, η =έση τους στο αρχείο ήχου σύµφωνα µε την παραπάνω παρτιτούρα, σχηµατικά =α έχει ως εξής:

Εικ.7.3.

Από το παραπάνω σχήµα παρατηρούµε πρώτα απ’ όλα πως το τρίτο πεδίο στο αρχείο παρτιτούρας αφορά τη διάρκεια της νότας και όχι τη χρονική στιγµή που αυτή =α τελειώσει. Έτσι, προκειµένου να βρε=εί η τιµή αυτή α=ροίζουµε στο χρόνο


Το Περιβάλλον της Csound

197

έναρξης τη διάρκεια της. Από το ίδιο σχήµα παρατηρούµε επίσης πως σε κάποια χρονικά διαστήµατα οι νότες επικαλύπτονται: το i25 µε το i144 από το 0.27 έως το 1.324 κα=ώς και το i144 µε το i9 από το 3.00 έως το 3.80. Στις περιπτώσεις αυτές έχουµε σύν?εση κυµατοµορφών, τα δείγµατα δηλαδή που παράγονται από κά=ε διαφορετικό όργανο α?ροίζονται. Παρατηρούµε τέλος πως από το δευτερόλεπτο 2.27 µέχρι το 2.80 έχουµε απουσία σήµατος. Στο χρονικό αυτό διάστηµα στο αρχείο ήχου =α εγγραφούν µηδενικές τιµές δειγµάτων, =α υπάρχει δηλαδή µία µουσική παύση.

Aηµιουργία Πίνακα Κυµατοµορφής Η Csound περιλαµβάνει ένα πλή=ος µονάδων ήχου οι οποίες χρησιµοποιούν πίνακες κυµατοµορφής, όπως οι ταλαντωτές. Στο περιβάλλον της Csound οι πίνακες αυτοί δηλώνονται στην αρχή του αρχείου παρτιτούρας, αµέσως δηλαδή πριν ξεκινήσουν οι νότες. Προκειµένου ένας πίνακας κυµατοµορφής να γεµίσει µε τιµές χρειάζεται να χρησιµοποιη=εί µία γεννήτρια τιµών (GEN). Μία γεννήτρια τιµών αποτελεί στην ουσία µία συνάρτηση η οποία µε βάση κάποια ορίσµατα παράγει µια ακολου=ία τιµών. Η Csound παρέχει ένα πλή=ος από διάφορες τέτοιες γεννήτριες. Αναλόγως τη γεννήτρια που χρησιµοποιούµε, οι τιµές που παράγονται µπορεί να αφορούν είτε τιµές κυµατοµορφής, είτε τιµές δεδοµένων. Έτσι, για παράδειγµα, οι γεννήτριες GEN09, GEN10 και GEN19 παράγουν τιµές µιας περιόδου κυµατοµορφής µε ά=ροιση ηµιτονοειδών, οι GEN13 και GEN14 παράγουν τιµές πολυωνύµων Chebyshev, η GEN20 παράγει τιµές παρα=υρικών συναρτήσεων (window functions) κ.ο.κ. Μία αρκετά συνη=ισµένη γεννήτρια η οποία χρησιµοποιείται προκειµένου να συν=έσουµε µία κυµατοµορφή από ακέραια πολλαπλάσια ηµιτονοειδών, είναι η γεννήτρια 10 η οποία συντάσσεται ως εξής: 10

str1

str2

str3

Η γεννήτρια 10 δέχεται ένα ή περισσότερα ορίσµατα (str1, str2, str3, …), τα οποία αντιστοιχούν στα σχετικά πλάτη της 1ης, 2ης, 3ης κ.ο.κ. ηµιτονοειδούς αρµονικής, που =α συν=έσουν α=ροιστικά την περίοδο µιας σύν=ετης κυµατοµορφής. Εάν για παράδειγµα γράKουµε: 10

0.7

0.8

0.3

0.4

δηλώνουµε πως η GEN10 =α παράγει τις τιµές µιας περιόδου µιας σύν=ετης κυµατοµορφής από την ά=ροιση της 1ης, 2ης, 3ης και 4ης αρµονικής µε σχετικά πλάτη 0.7, 0.8, 0.3 και 0.4 αντίστοιχα. Ενώ η παρακάτω σύνταξη: 10

1

0

0.333

0

0.20

0

0.142

0

0.111


Η Μουσική των Υπολογιστών

228

i42 i42

4 6

2 2

0.50 0.70

7 15

10000 440 10000 440

Vibrato Ο αλγόρι=µος του vibrato έχει µία αντίστοιχη λογική: η έξοδος του ταλαντωτή διαµόρφωσης α=ροίζεται στη συχνότητα του φορέα: kenv kmod a2

instr 43 linseg oscil oscil out endin

0, 0.05*p3, 1, 0.90*p3, 1, 0.05*p3, 0 p4, p5, 58 p6, p7+kmod, 58 a2*kenv

Εικ.7.33.

Γενικά, για το φαινόµενο του vibrato οι τιµές συχνότητας διαµόρφωσης κυµαίνονται από 1 έως 15 περίπου Hz. Ενδιαφέροντα ηχητικά φαινόµενα παρουσιάζονται όσο αυξάνεται η συχνότητα αλλά και το βά=ος διαµόρφωσης: f58

0

1024

;p1 p2 p3 ;inst start dur

10 p4 p5 width Rate

1 p6 amp

p7 freq


Το Περιβάλλον της Csound

i43 i43 i43 i43

0 2 4 6

2 2 2 2

22 44 88 110

229

2 4 8 16

10000 10000 10000 10000

440 440 440 440

Τόσο το βά=ος όσο και η συχνότητα διαµόρφωσης, σε κάποιους αλγόρι=µους συνη=ίζεται να δίνονται ως ποσοστά επί της συχνότητας του φορέα.

Εικ.7.34.

kenv kmod a2

f58

instr 44 linseg oscil oscil out endin 0

0, 0.05*p3, 1, 0.90*p3, 1, 0.05*p3, 0 p4*p7, p5*p7, 58 p6, p7+kmod, 58 a2*kenv

1024

10

;p1 p2 p3 ;inst start dur

p4 %width

i44 i44 i44 i44

0.05 0.1 0.2 0.25

0 2 4 6

2 2 2 2

1 p5 %Rate 0.004 0.008 0.016 0.032

p6 amp

p7 freq

10000 10000 10000 10000

440 440 440 440


234

Η Μουσική των Υπολογιστών

Το Pd είναι εφαρµογή ελεύ=ερης διανοµής. Είναι επίσης ανοικτού κώδικα µε αποτέλεσµα τον διαρκή εµπλουτισµό του µε πρόσ=ετες βιβλιο=ήκες και αντικείµενα από µία µεγάλη κοινότητα προγραµµατιστών.

Το Περιβάλλον Χρήσης Ξεκινώντας την εφαρµογή εµφανίζεται το παρά=υρο µηνυµάτων της εφαρµογής:

Εικ.8.2.

Το παρά=υρο αυτό παραµένει διαρκώς ανοικτό και εµφανίζει µηνύµατα που αφορούν τη λειτουργία της εφαρµογής κα=ώς και µηνύµατα που παράγονται µετά από κά=ε ενέργειά µας. Προκειµένου στη συνέχεια να ξεκινήσουµε να φτιάξουµε το πρώτο patch επιλέγουµε από το κεντρικό menu: File > New

Αυτό έχει σαν αποτέλεσµα να ανοίξει ένα patch window ένα δηλαδή κενό αρχικά παρά=υρο µε ονοµασία Untitled-1, εντός του οποίου µπορούµε να σχεδιάσουµε ένα patch έναν συγκεκριµένο δηλαδή ηχητικό αλγόρι=µο, τοπο=ετώντας και συνδέοντας κατάλληλα τα γραφιστικά αντικείµενα που =α επιλέξουµε να χρησιµοποιήσουµε. Για κά=ε νέο patch που =έλουµε να δηµιουργήσουµε ανοίγουµε κά=ε φορά και ένα νέο τέτοιο παρά=υρο.


Το Περιβάλλον του Pd

235

Προκειµένου στη συνέχεια να εισάγουµε ένα οποιοδήποτε αντικείµενο εντός του patch επιλέγουµε από το κεντρικό menu την επιλογή Put . Η επιλογή αυτή εµφανίζει ένα πλή=ος από διαφορετικές κατηγορίες αντικειµένων που µπορούµε να τοπο=ετήσουµε εντός του patch window.

Εικ.8.3.

Οι επιλογές που έχουµε, όπως φαίνονται και από την Εικ.8.3, αφορούν: −

πέντε βασικούς τύπους αντικειµένων: Object, Message, Number, Symbol και Comment.

εννέα γραφιστικά βοη=ητικά αντικείµενα: Bang, Toggle, Number2, Vslider, Hslider, Vradio, Hradio, VU και Canvas.

− δύο απεικονιστικά αντικείµενα: Graph και Array.

Ο Πρώτος Αλγόρι=µος: Hello Pd World! Ας φτιάξουµε ένα απλό patch το οποίο όταν εκτελείται =α εµφανίζει τη φράση Hello Pd World!


254

Η Μουσική των Υπολογιστών

Άνοδος στην τιµή 1 σε διάρκεια ενός δευτερολέπτου (attack), κά=οδος στην τιµή 0.7 σε διάρκεια ενός δευτερολέπτου (decay) και τελικά κά=οδος στην τιµή 0 σε διάρκεια ενός δευτερολέπτου (release) µετά από αναµονή τριών δευτερολέπτων (sustain). Το αντίστοιχο patch:

Εικ.8.12.

MIDI νότες Εναλλακτικά, στο slider που έχουµε ορίσει να παράγει τιµές Hz για τη συχνότητα µιας ταλάντωσης, µπορούµε να δίνουµε τιµές που αντιστοιχούν σε MIDI νότες: µία ειδική δηλαδή κλίµακα αρί=µησης η οποία αποτελείται από 128 ακέραιες τιµές (0127), κά=ε µία από τις οποίες έχει προκα=οριστεί να αντιστοιχεί σε µία διαφορετική νότα του δωδεκαφ=ογγικού συστήµατος. Έτσι, ξεκινώντας µε midi τιµή 0 αυτή αντιστοιχεί στη νότα C-1, µία νότα που ουσιαστικά δεν βρίσκεται στο ακουστικό φάσµα αφού πάλλεται µε συχνότητα µόλις 8.1758 Hz και καταλήγουµε στη midi τιµή 127 η οποία αντιστοιχεί σε µία πολύ υPηλή τονικά νότα, η G9 στα 12543.85 Hz. Τοπο=ετώντας εντός ενός patch ένα οριζόντιο slider και επιλέγοντας µε το δεξί πλήκτρο του ποντικιού Properties, παρατηρούµε πως το εύρος τιµών που =α παράγει το slider είναι εξ ορισµού από 0 (αριστερό άκρο) έως 127 (δεξιό άκρο). Παράγει δηλαδή midi τιµές. Οι τιµές αυτές στη συνέχεια πρέπει να µετατραπούν σε τιµές Hz προκειµένου να χρησιµοποιη=ούν ως συχνότητα σε έναν ταλαντωτή. Τη µετατροπή αυτή από τη midi κλίµακα σε τιµές Hz αναλαµβάνει να πραγµατοποιήσει το αντικείµενο που συνδέεται η έξοδος του slider, το [mtof]. Τις τιµές αυτές µάλιστα µπορούµε να τις παρακολου=ούµε µε δύο number box αντικείµενα τα οποία συνδέουµε στις εξόδους του slider και του αντικειµένου [mtof].


Το Περιβάλλον του Pd

255

Εικ.8.13.

Έτσι, όπως φαίνεται και από το σχεδιάγραµµα του patch, όταν το slider στην έξοδό του παράγει τιµή 81 αυτή µετατρέπεται σε τιµή συχνότητας 880 Hz η οποία αντιστοιχεί στη νότα A5. Το αντικείµενο [mtof] συνδέεται στη συνέχεια µε την αριστερή είσοδο του [osc~], έτσι ώστε οι παραγόµενες τιµές Hz να αφορούν τις τιµές συχνότητας της ταλάντωσης. Στους παρακάτω πίνακες φαίνονται ανά τριάδες, οι τιµές σε midi αρί=µηση (από 0 έως 127) , η αντίστοιχη νότα, κα=ώς και η αντίστοιχη συχνότητα σε Hz: 0

C-1

8.175

12 C0

16.351

24

C1

32.703

36 C2

65.406

1

Db-1

8.661

13 Db0

17.323

25

Db1

34.647

37 Db2

69.295

2

D-1

9.177

14 D0

18.354

26

D1

36.708

38 D2

73.416

3

Eb-1

9.722

15 Eb0

19445

27

Eb1

38.89

39 Eb2

77.781

4

E-1

10.300

16 E0

20.601

28

E1

41.203

40 E2

82.406

5

F-1

10.913

17 F0

21.826

29

F1

43.653

41 F2

87.307

6

Gb-1 11.562

18 Gb0

23.124

30

Gb1

46.249

42 Gb2

92.498

7

G-1

12.249

19 G0

24.449

31

G1

48.999

43 G2

97.998

8

Ab-1

12.978

20 Ab0

25.956

32

Ab1

51.91

44 Ab2

103.826

9

A-1

13.750

21 A0

27.5

33

A1

55

45 A2

110

10 Bb-1

14.567

22 Bb0

29.135

34

Bb1

58.270

46 Bb2

116.54

11 B--1

15.433

23 B0

30.867

35

B1

61.735

47 B2

123.407!


Η Μουσική των Υπολογιστών

288

Εικ.9.8. Μία εφαρµογή η οποία τρέχει στον υπολογιστή host 1 µπορεί να αποστείλει πακέτα δεδοµένων σε έναν αποµακρυσµένο υπολογιστή (host 2). Αναλόγως το port number, µία συγκεκριµένη εφαρµογή του host 2 αναλαµβάνει τα πακέτα αυτά. Sίνοντας port number 57110 τα πακέτα στέλνονται σε µία εφαρµογή SCserver, ενώ βλέπουµε και δύο άλλα ενδεικτικά port number για τις εφαρµογές του Pd και της Processing.

Γενικά λοιπόν η NetAddr συντάσσεται ως εξής: a = NetAddr(IP-address, port);

όπου, IP-address: το IP address του αποµακρυσµένου µηχανήµατος port: το port number της εφαρµογής

Στη συνέχεια χρησιµοποιούµε το αντικείµενο a ως δεύτερο όρισµα στην παρακάτω µέ9οδο constructor της κλάσης Server: s = Server.new('somewhere there', a);

Το αντικείµενο s 9α αφορά πλέον µία εφαρµογή server η οποία φιλοξενείται σε κάποιο αποµακρυσµένο µηχάνηµα, στη διεύ9υνση και στο port number που προσδιορίζεται από το αντικείµενο a.

βήµα 2ο: Sηµιουργία Ηχητικών Sοµών – Synthesis Definitions Οι ηχητικές δοµές στο περιβάλλον του SC καλούνται Synthesis Definitions. Μία ηχητική δοµή ξεκινάει πάντοτε µε τη δήλωση SynthDef ακολου9ούµενη από µία παρέν9εση, εντός της οποίας υπάρχουν δύο µέρη τα οποία ξεχωρίζουν µεταξύ τους µε ένα κόµµα: • •

στο πρώτο µέρος, εντός διπλών εισαγωγικών, γράφουµε το όνοµα της δοµής στο δεύτερο µέρος, εντός αγκυλών, γράφουµε τον κώδικα από τον οποίο αποτελείται η δοµή


Το Περιβάλλον του SuperCollider

289

Παράδειγµα ηχητικής δοµής: SynthDef("saw_wave", { arg out = 0, freq = 100; var wave; wave = Saw.ar(freq, 0.5); Out.ar(out, wave); } )

Στο παραπάνω παράδειγµα η δοµή καλείται saw_wave και αµέσως µετά το κόµµα και εντός των αγκυλών {}, ακολου9εί ο κώδικας που την απαρτίζει. Ο κώδικας αποτελείται σε γενικές γραµµές από τα εξής στοιχεία: Ορίσµατα (Arguments) Sηλώνονται στην αρχή της δοµής σε µία γραµµή η οποία ξεκινάει µε το λεκτικό arg, ενώ µπορεί να λαµβάνουν και κάποιες αρχικές τιµές: arg out = 0, freq = 100;

Ένα όρισµα µπορεί να χρησιµοποιη9εί στη συνέχεια προκειµένου να παραµετροποιη9ούν κάποιες τιµές, όπως για παράδειγµα οι τιµές συχνότητας που λαµβάνει η Γεννήτρια Μονάδας (UGen) Saw: Saw.ar(freq, 0.5);

Μεταβλητές (Variables) Sηλώνονται αµέσως µετά τα ορίσµατα σε µία ξεχωριστή γραµµή η οποία ξεκινάει µε το λεκτικό var: var wave;

Μία µεταβλητή χρησιµοποιείται για να απο9ηκεύσει κάποιες ενδιάµεσες τιµές στον κώδικα, όπως για παράδειγµα αυτές που παράγει µία Γεννήτρια Μονάδας: wave = Saw.ar(freq, 0.5);


Η Μουσική των Υπολογιστών

306

bus– ένας ακέραιος αρι9µός ο οποίος σηµατοδοτεί τη ?έση του

πίνακα (index) από την οποία 9α ξεκινούν να διαβάζονται δεδοµένα numChannels– το πλή9ος διαδοχικών 9έσεων του πίνακα που 9α διαβαστούν, ξεκινώντας από τη 9έση bus

Ο τύπος των διαύλων, εάν δηλαδή αυτοί 9α αφορούν audio ή control δεδοµένα, σηµατοδοτείται από τη µέ9οδο ar ή kr που αντίστοιχα χρησιµοποιούµε. Ας δούµε τώρα ένα παράδειγµα συνδυασµένης χρήσης των δύο αυτών κλάσεων: SynthDef("audioThru-example", { arg out=0, in=8; var input; input = In.ar(in, 1); Out.ar(out, input); }).send(s);

Στην παραπάνω δοµή, µέσω της κλάσης In.ar και του αντικειµένου της input διαβάζουµε τα δεδοµένα που προέρχονται από τον δίαυλο 8. Ταυτόχρονα στον ίδιο κύκλο του a-rate ρολογιού, µέσω της κλάσης Out.ar, στέλνουµε την τιµή αυτή στη 9έση 0 του πίνακα. Επειδή στη 9έση 8 του πίνακα από την οποία διαβάζουµε τα δεδοµένα εγγράφονται οι τιµές των δειγµάτων που προέρχονται από το µικρόφωνο και η 9έση 0 του πίνακα στην οποία στέλνονται στη συνέχεια αφορά το αριστερό κανάλι εξόδου, η παραπάνω δοµή ουσιαστικά παράγει ένα audio-through: ό,τι ακριβώς καταγράφεται στο µικρόφωνο ταυτόχρονα αναπαράγεται στο αριστερό κανάλι (Εικ.9.15). Η ενεργοποίηση της δοµής γίνεται µε τον κα9ορισµένο τρόπο µέσω osc µηνυµάτων: s.sendMsg("/s_new", "audioThru-example", 1001, 0, 1);

ενώ αντίστοιχα απελευ9ερώνουµε τον κόµβο: s.sendMsg("/n_free", 1001);

Σηµειώνεται πως κατά την ενεργοποίηση της παραπάνω δοµής, απαραίτητο είναι να χρησιµοποιούµε ακουστικά, κα9ώς η διαδικασία αυτή δηµιουργεί ανατροφοδότηση στον ήχο (feedback).


Το Περιβάλλον του SuperCollider

307

Εικ.9.15. Sιάγραµµα ροής δεδοµένων ήχου κατά τη διαδικασία ενός audio-through: δείγµατα ήχου προερχόµενα από το µικρόφωνο (mic-in) εγγράφονται στη 9έση 8 του πίνακα διαύλων ήχου, ανακτώνται µέσω της In.ar στη µεταβλητή input, τα περιεχόµενα της οποίας στη συνέχεια µέσω της Out.ar εγγράφονται στη 9έση 0 του πίνακα και κατ’ αυτόν τον τρόπο εξάγονται στο αριστερό κανάλι της κάρτας ήχου (Left-out).

Χρήση Effect σε Σήµα Στον παραπάνω αλγόρι9µο µπορούµε να συµπεριλάβουµε µία επιπλέον δοµή η οποία παρεµβάλει µία επεξεργασία (effect) στον ήχο που προέρχεται από το µικρόφωνο, όπως για παράδειγµα µία σειρά κα9υστέρησης στα δείγµατα του ήχου, µέσω της µονάδας DelayL. Η κλάση που υλοποιεί τη µονάδα αυτή συντάσσεται ως εξής: DelayL.ar(in, maxDelayTime, delayTime, mul, add); in: το σήµα εισόδου maxDelayTime: µέγιστος χρόνος κα9υστέρησης (µέγε9ος buffer) delayTime: χρόνος κα9υστέρησης στο σήµα εισόδου mul: πολλαπλασιαστικός συντελεστής επί των δειγµάτων (amp) add: α9ροιστική µετατόπιση των δειγµάτων (offset)

Οι δύο τώρα δοµές έχουν ως εξής:


Η Μουσική των Υπολογιστών

340

3785 = 3 x 1000 + 7 x 100 + 8 x 10 + 5 x 1 ή: 3785 = 3 x (10x10x10) + 7 x (10x10) + 8 x (10) + 5 x 1 ή, γράφοντας τα παραπάνω πολλαπλάσια σαν δυνάµεις του 10: 3785 = 3 x 103 + 7 x 102 + 8 x 101 + 5 x 100 Όπως λοιπόν τα ?ηφία ενός αρι;µού στο δεκαδικό σύστηµα αντιστοιχούν σε µονάδες, δεκάδες, εκατοντάδες, χιλιάδες κ.λπ. ή αλλιώς δυνάµεις του δέκα, έτσι και τα ?ηφία ενός αρι;µού στο δυαδικό σύστηµα αντιστοιχούν σε δυνάµεις του δύο, δηλαδή σε µονάδες, δυάδες, τετράδες, οκτάδες κ.ο.κ. Γράφουµε για παράδειγµα: 10101110 = 1 x 27 + 0 x 26 + 1 x 25 + 0 x 24 + 1 x 23 + 1 x 22 + 1 x 21 + 0 x 20 ή: 10101110 = 1 x 128 + 0 x 64 + 1 x 32 + 0 x 16 + 1 x 8 + 1 x 4 + 1 x 2 + 0 x 1 και τελικά: 10101110 = 174 Το bit στο οποίο αντιστοιχεί η µεγαλύτερη δύναµη του δύο καλείται και πλέον σηµαντικό bit (MSB – Most Significant Bit).

Αντίστοιχα το bit στο οποίο αντιστοιχεί η ελάχιστη αρι;µητική τιµή καλείται και ελάχιστο σηµαντικό bit (LSB – Least Significant Bit).


Παράρτηµα Α' – Bits και Bytes

341

Μέγιστη-Eλάχιστη Tιµή – Μη Προσηµασµένοι Ακέραιοι (Unsigned Integers) Η µέγιστη τιµή που µπορεί να αντιστοιχη;εί σε ένα byte, προφανώς ισούται µε:

ή, σε δεκαδική τιµή:

= =

1 x 27 + 1 x 26 + 1 x 25 + 1 x 24 + 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 255

=

Γενικά, προκειµένου να βρούµε τη µέγιστη τιµή που µπορεί να λάβει ένα πλή;ος nbit, αντί να α;ροίζουµε κά;ε φορά όλες αυτές τις δυνάµεις του δύο, υπάρχει ένας απλούστερος τρόπος: µέγιστη τιµή πλή;ους n-bit = 2n - 1 Στο παραπάνω παράδειγµα (πλή;ος 8-bit) ισχύει λοιπόν: µέγιστη τιµή πλή;ους 8-bit = 28 - 1 = 256 -1 = 255 Αντίστοιχα η ελάχιστη τιµή ισούται µε:

δηλαδή µε µηδέν. Όλες οι παραπάνω περιπτώσεις αφορούν µη προσηµασµένους ακέραιους, (unsigned integers) τα byte δηλαδή δεν φέρουν την πληροφορία του προσήµου. Στην περίπτωση όµως που ;έλουµε οι τιµές ενός byte να φέρουν και πρόσηµο (signed), ακολου;είται µία διαφορετική κωδικοποίηση.


352

Η Μουσική των Υπολογιστών

point), ο οποίος κα<ορίζεται ως εξής:

Τα πρώτα 32-bit αφορούν έναν αρι<µό σε δευτερόλεπτα, τα οποία αντιστοιχούν στη χρονική απόσταση από τις 00:00 της 1ης Ιανουαρίου του 1900, ενώ τα επόµενα 32-bit αφορούν έναν αρι<µό ο οποίος αντιστοιχεί σε υποδιαίρεση του δευτερολέπτου, δίνοντας έτσι µία ακρίβεια των περίπου 200 picoseconds. Η συγκεκριµένη δοµή είναι η ίδια µε αυτήν που ακολου<είται από τα time-stamps του πρωτοκόλλου NTP στο Internet (Network Time Protocol, http://www.ntp.org/). Σε περίπτωση τέλος, που ένα time tag περιέχει 63 µηδενικά bit ακολου<ούµενα από τη µονάδα, σηµαίνει: ‘άµεση εκτέλεση’.

Πακέτα OSC Η βασική δοµή µε την οποία µεταφέρονται δεδοµένα στο πρωτόκολλο OSC είναι το πακέτο OSC (OSC package). Η πλευρά η οποία στέλνει πακέτα OSC ονοµάζεται OSC client, ενώ η πλευρά η οποία δέχεται OSC πακέτα ονοµάζεται OSC server:

Κά<ε πακέτο µπορεί να ποικίλλει σε µέγε<ος. Σε κά<ε περίπτωση το µέγε;ος ενός πακέτου OSC πρέπει να είναι πάντα πολλαπλάσιο των 4 byte. Προκειµένου να συµβαίνει αυτό, κά<ε OSC πακέτο συµπληρώνεται αναλόγως από 0 έως 3 byte µηδενικού περιεχοµένου.


Παράρτηµα Β' – Το Πρωτόκολλο OSC

353

Σε γενικές γραµµές, κάθε πακέτο OSC περιέχει: •

τα δεδοµένα του πακέτου, δηλαδή ένα block από διαδοχικούς δυαδικούς αρι<µούς

το µέγε;ός του πακέτου, το πλή<ος δηλαδή των byte που αντιστοιχεί στα δεδοµένα που περιέχονται στο συγκεκριµένο πακέτο

Τα δεδοµένα ενός πακέτου αφορούν τα αιτήµατα του client προς τον server. Μπορεί δηλαδή να αφορούν ενέργειες που πρέπει να φέρει σε πέρας ο server, όπως κλήσεις µε<όδων ή εντολές, αρι<µητικά δεδοµένα, όπως τιµές µεταβλητών, µηνύµατα ή γενικότερα οποιαδήποτε άλλη µορφή πληροφορίας υποστηρίζει το περιβάλλον του server. Αυτό δηλαδή σηµαίνει πως το ίδιο το πρωτόκολλο δεν περιορίζει τo είδος πληροφορίας που περιέχει ένα πακέτο. Κά<ε πακέτο το οποίο στέλνεται από τον OSC client προς τον OSC server, ακολου<εί υποχρεωτικά έναν από τους παρακάτω δύο τύπους δοµής:

τη δοµή ενός Μηνύµατος OSC (OSC Message)

• τη δοµή µιας :έσµης OSC (OSC Bundle)

Fοµή Μηνύµατος OSC (OSC Message) Ένα µήνυµα OSC αποτελείται από τα εξής πεδία, µε την ακόλου<η σειρά: -

ένα OSC address pattern ένα OSC type tag string (κανένα ή) πλή<ος από OSC arguments


380

Η Μουσική των Υπολογιστών

φορά και ένα νέο αντικείµενο της κλάσης αυτής. Οι µέGοδοι αυτοί καλούνται constructors και όπως είδαµε και παραπάνω, η κλήση τους γίνεται µε τη χρήση της ειδικής εντολής new, µε γενική σύνταξη: όνοµα_αντικειµένου = new όνοµα_κλάσης(ορίσµατα) Εκτός των µεGόδων, µία κλάση µπορεί να παρέχει και µεταβλητές. Οι µεταβλητές γενικά καλούνται και fields ή data members, και ακριβώς όπως και µε τις µεGόδους υπάρχουν δύο κατηγορίες µεταβλητών: -

µεταβλητές αντικειµένου (instance variables), µεταβλητές δηλαδή οι οποίες σχετίζονται αποκλειστικά µε ένα συγκεκριµένο αντικείµενο

-

µεταβλητές κλάσης (class variables), µεταβλητές δηλαδή οι οποίες µοιράζονται µεταξύ των αντικειµένων και οι οποίες µπορούν να χρησιµοποιηGούν ανεξάρτητα από το εάν έχουν δηµιουργηGεί αντικείµενα της συγκεκριµένης κλάσης ή όχι

Στο παραπάνω παράδειγµα της κλάσης Cone, οι µεταβλητές radius, height, color και brightness οι οποίες αντιστοιχούν στην ακτίνα βάσης, στο ύLος, στη χρωµατική διαβάGµιση και στη φωτεινότητα κάGε διαφορετικού αντικειµένου που παράγεται, αφορούν µεταβλητές αντικειµένου. Έτσι, για παράδειγµα, η µεταβλητή αντικειµένου aNewCone.radius είναι εντελώς διαφορετική από τη µεταβλητή anotherNewCone.radius αφού αντιστοιχούν σε διαφορετικά αντικείµενα. Αντίστοιχα, µία µεταβλητή κλάσης Gα µπορούσε να είναι µία µεταβλητή µε όνοµα count η οποία αντιστοιχεί στο πλήGος των αντικειµένων που έχουν δηµιουργηGεί από την κλάση Cone. Η µεταβλητή αυτή, προφανώς δεν σχετίζεται µε κάποιο συγκεκριµένο αντικείµενο και αυξάνεται κατά µία µονάδα κάGε φορά που δηµιουργείται ένα νέο αντικείµενο. Για να τονιστεί µάλιστα πως αφορά µία µεταβλητή κλάσης, όποτε αναφερόµαστε σε αυτήν την καλούµε ως Cone.count. ΣυνοLίζοντας, µία κλάση αποτελεί µία προγραµµατιστική δοµή η οποία µπορεί να περιέχει τα εξής: α. µεταβλητές κλάσης β. µεταβλητές αντικειµένου γ. µεGόδους constructor δ. µεGόδους κλάσης ε. µεGόδους αντικειµένου


Παράρτηµα Γ’ – Προγραµµατιστικά Μοντέλα

381

Εικ. Γ-12. Σχηµατική αναπαράσταση της κλάσης Cone, των µεGόδων και των µεταβλητών της, καGώς και τριών αντικειµένων της. Η σύνταξη του κώδικα είναι ενδεικτική και αφορά τη γλώσσα προγραµµατισµού Java.

Όπως φαίνεται και από το σχήµα (Εικ. Γ-12), η κλάση Cone περιλαµβάνει µία µέGοδο constructor (γ) µε βάση την οποία έχουν δηµιουργηGεί τρία αντικείµενα, τα aNewCone, anotherNewCone, και anotherCone. ΚάGε αντικείµενο έχει τα δικά του επιµέρους χαρακτηριστικά, τα οποία αποτυπώνονται στις µεταβλητές αντικειµένου, radius, height, color και brightness (β). ΕπιπρόσGετα υπάρχει µία µεταβλητή κλάσης η µεταβλητή count (α), στην οποία έχουν πρόσβαση όλα τα αντικείµενα. Η µέGοδος conesCount() µετράει το πλήGος των αντικείµενων που έχουν δηµιουργηGεί από την κλάση ανά πάσα στιγµή, αποτελεί δηλαδή µία µέGοδο κλάσης (δ). Τέλος, η µέGοδος changeBrightness() αποτελεί µία µέGοδο αντικειµένου (ε), αφορά δηλαδή µία µέGοδο την οποία χρησιµοποιεί κάGε αντικείµενο ξεχωριστά.

Κλάσεις & Αντικείµενα: Βασικές Ιδιότητες Με αντίστοιχο τρόπο, όπως ορίσαµε την κλάση Cone ή την κλάση Cube, µπορούµε να δοµήσουµε και άλλες κλάσεις όπως την κλάση Pyramid, την κλάση Sphere κ.ο.κ. ΚάGε µία από αυτές τις κλάσεις έχει µία τουλάχιστο µέGοδο constructor, για να δηµιουργεί τα αντικείµενά της καGώς και µεGόδους και µεταβλητές οι οποίες αφορούν είτε την ίδια την κλάση είτε τα αντικείµενα που παράγει.


Η Μουσική των Υπολογιστών

390

Imaginary Landscape No. 2 (1942) tin cans, conch shell, ratchet, bass drum, buzzers, water gong, metal wastebasket, lion's roar and amplified coil of wire Imaginary Landscape No. 3 (1942) tin cans, muted gongs, audio frequency oscillators, variable speed turntables with frequency recordings and recordings of generator whines, amplified coil of wire, amplified marimbula and electric buzzer Sonatas and Interludes for Prepared Piano (1946-48) prepared piano In A Landscape (1948) solo piano Music of Changes (1951) piano Imaginary Landscape No. 4 (1951) 24 performers at 12 radios Imaginary Landscape No. 5 (1952) magnetic tape recording of any 42 phonograph records 4’33’’ (1952) solo piano Variations I (1958) any number of performers on any kind and number of instruments Variations II (1961) any number of players and any sound producing means Roaratorio (1979) tapes, voice and Irish folk musicians Chowning John, Stria (1977) computer (FM synthesis) Davidovsky Mario, Electronic Study No. 1 (1961) electronics (Columbia–Princeton Electronic Music Center) Derbyshire Delia, Doctor Who theme [after Ron Grainer] (1963) generators, tape Dodge Charles, He Destroyed her Image (1972) computer (formant synthesis) Eimert Herbert, Klangstudie II (1952)


εργογραφία - βιβλιογραφία

electronics - WDR Eno Brian, [lp] Music for Films (1978) electronics, tape Ferrari Luc, Visage V (1958-59) tape Petite Symphonie Intuitive pour un Paysage de Printemps (1973-74) wind instrument, recordings, tape Fennesz Christian, [lp] Venice (2004) guitar, effects, computer (Max/MSP) & Ryuichi Sakamoto [lp] Cendre (2007) piano, computer Glass Philip, Music With Changing Parts (1970) woodwinds, brass, electric violin, voice, electronics, electric organ, electric piano Glassworks (1982) piano, electric organ, bass synthesizer, woodwinds, brass, violas, cellos Hiller Lejaren, Illiac Suite (1956) string quartet Computer Cantata (1963) voice, woodwinds, brass, percussion, guitar, theremin, tape Hindemith Paul, Langsames stück und Rondo, für Trautonium (1935) Trautonium Ikeda Ryoji, [lp] Mort Aux Vaches (1999) computer Ives Charles, Three Places in New England (1903-14) orchestral set Central Park in the Dark (1906) chamber orchestra

391


398

Η Μουσική των Υπολογιστών

Kirk, R., Hunt, A., Digital Sound Processing for Music and Multimedia, Focal Press, 1999. Leider, C. N., Digital Audio Workstation, McGraw-Hill/TAB Electronics, 2004. Pohlmann, K., Principles of Digital Audio, McGraw-Hill/TAB Electronics, 6th edition, 2010. Rumsey, F., McCormick, T., Sound and Recording, Focal Press, 6th edition, 2009.

H Νέα Μουσική Austin, L., Source: Music of the Avant-garde, 1966-1973, University of California Press, 2011. Busoni, F., Sketch of A New Esthetic of Music, University of California Libraries, reprint, 2011. Cage, J., Silence: Lectures and Writings, 50th Anniversary Edition, Wesleyan U.P., 2013. Chadabe, J., Electric Sound: The Past & Promise of Electronic Music, Prentice Hall, 1997. Collins, N., Schedel, M., Wilson, S., Electronic Music (Cambridge Introductions to Music), Cambridge University Press, 2013. Copland, A., Μουσική και Φαντασία, Νεφέλη, 1980. Dean, R. T., (ed.) The Oxford Handbook of Computer Music, Oxford University Press, USA, 2011. Griffiths, P., Modern Music and After, Oxford University Press, USA, 3rd edition, 2011. Holmes, T.,


εργογραφία - βιβλιογραφία

399

Electronic and Experimental Music: Foundations of New Music and New Listening (Media and Popularculture), Routledge, 2nd edition, 2002. Manning, P., Electronic and Computer Music, Oxford University Press USA, 4th edition, 2013. Reich, S., Hiller, P. (ed.), Writings in Music. 1965-2000, Oxford University Press USA, 2004. Schaeffer, P., In Search of a Concrete Music, University of California Press, 2012. [µετάφραση από την πρώτη έκδοση:] À la Recherche d'une Musique Concrète, Éditions du Seuil, 1952. Schafer, R.M., The Soundscape. Our Sonic Environment and the Tuning of the World, Destiny Books, 1993. Schoenberg, A., Strang, G. (ed.), Stein, L. (ed.), Fundamentals of Musical Composition, Faber & Faber, 1999. Stockhausen, K., Maconie, R., Stockhausen on Music, Marion Boyars Publishers, reprint edition, 2000. Smalley D., Spectromorphology: Explaining Sound-Shapes, Organised Sound/Volume 2/ Issue02/August 1997, pp. 107-126. Taruskin, R., Music in the Late Twentieth Century: The Oxford History of Western Music, Oxford University Press USA, 2009. Valle, A., Tazellaar, K., Lombardo, V., In A Concrete Space. Reconstructing the Spatialization of Iannis Xenakis’ Concrete PH on a Multichannel Setup, proc. of the 7th SMC conference, 2124 July 2010, Barcelona. Xenakis, I., Formalized Music: Thought and Mathematics in Composition, Pendragon Pr; 2Rev Ed edition, 2001. Wishart, T., On Sonic Art (Contemporary Music Studies), Routledge, 1996.


Ευρετήριο α*ουσαίο νεύρο, 63 ά*ροιση ηµιτονοειδών, 46-49, [Pd] 257 ά*ροιση ταλαντωτών, 167-170, [Cs] 209-210, [Pd] 257 αι*ουσαία κλίµακα, 64, 65 αισ*ητήρες, 132, 135 άκµονας, 61-62 ακουστικό νεύρο, 63, 66 αλγορι*µική σύν*εση, 120 αλεατορισµός, 8, 134 αναβολέας, 61-62 ανατροφοδότηση, βλ. feedback αντικείµενα a-rate [Pd], 163-164, 244 αντικείµενα k-rate [Pd], 163-164 αντικείµενο, βλ. object αρµονικός, 53, 168 αρχείο ορχήστρας, 122, 126, [Cs] 193, 194-195, 199-200 αρχείο παρτιτούρας, 122, 126, [Cs] 193, 195-197, 199-200 αρχική φάση, 41, 43, 51-52, 148-150 αρχιτεκτονική client-server, 274, 349350 ατονική µουσική, 8, 118 βά*ος διαµόρφωσης, 186, 189, [Cs] 227, [Pd] 262 βασική µεµβράνη, 63-66 βήµα διαβάσµατος, 151-154 βιβλιο*ήκη συναρτήσεων, 375-376 γεννήτριες a-rate [SC], 163, 290 γεννήτριες k-rate [SC], 163, 290 γεννήτριες ήχου, 139 γεννήτριες µονάδων [SC], βλ. UGen γεννήτριες τιµών GEN [Cs], 197 γλώσσα µηχανής, 369-370 γλώσσες υ>ηλού επιπέδου, 372 γλώσσες χαµηλού επιπέδου, 372

γραµµική σύζευξη, 174, 176, [Cs] 211, 216, [Pd] 247-248 γραµµόφωνο, 92, 117 γραφιστικά score, 135 γωνιακή ταχύτητα, 41-42 δείγµα, 101 δένδρο κλάσεων, βλ. class tree δένδρο κόµβων [SC], βλ. synth node tree δέσµη OSC, βλ. OSC bundle διάγραµµα Fletcher-Munson, 85-86 διάζευξη σήµατος [SC], 321 διαµήκες κύµα, 21 διαµόρφωση πλάτους, 182-187, [Cs] 226-228, [Pd] 259-261 διαµόρφωση συχνότητας, 187-189, [Cs] 228-229, [Pd] 259-261 διαµορφωτής, 184 διαπασών, 44 δίαυλος δεδοµένων [SC], 157, 301303, βλ. και Bus δοµές ακολου*ιακής εκτέλεσης κώδικα [SC], 323 δοµηµένος προγραµµατισµός, βλ. structured programming δοµικές µονάδες, 139 δυαδικό >ηφίο, βλ. bit δυναµικός προγραµµατισµός, βλ. dynamic programming δωδεκαφ*ογγισµός, 8, 118 εκ*ετική αύξηση, 72-73 εκ*ετική σύζευξη, 175, 176, [Cs] 215, 220, [Pd] 247-248 ελεγκτές, 132, 266-267 ελικότρηµα, 64 έλιξ (helix), 60 ενεργό ηχείο, 97 ενεργοποίηση κώδικα [SC], 282, 283 ένταση ήχου, 30, 78, 85, βλ. επίσης ηχητική ένταση εντολή, 370 έξω ακουστικός πόρος, 60, 61


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.