Δεδομένα και Αλγόριθμοι στον ήχο

Σχετικά έγγραφα
Ασκήσεις Pure Data (Pd)

Δεδομένα και Αλγόριθμοι στον ήχο

Κεφάλαιο 2.4: Εργασία με εικονίδια

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ MIDI

Β1.1 Αναπαράσταση Δεδομένων και Χωρητικότητα Μονάδων Αποθήκευσης

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

Analog vs Digital. Δούρβας Ιωάννης ΙΩΑΝΝΗΣ ΔΟΥΡΒΑΣ

ΚΕΦΑΛΑΙΟ 1 Ψηφιακός Κόσμος

ΦΥΛΛΟ ΠΛΗΡΟΦΟΡΙΩΝ. Μονάδες μέτρησης χωρητικότητας μνήμης - Η περιφερειακή μνήμη

Ενότητα 1. Γνωρίζω τον υπολογιστή ως ενιαίο σύστημα

Εργαστήριο 2. Ενεργοποιώντας τον ήχο (πατάμε στο ηχείο με το patch κλειδωμένο) ακούμε ένα ημίτονο με συχνότητα 440Hz.

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω:

ΠΛΗΡΟΦΟΡΙΚΉ. Μάθημα 7

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ B.2.M3 Κύρια και Βοηθητική Μνήμη

Βασικές Έννοιες της Πληροφορικής

Ήχος. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 04-1

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στην Πληροφορική

Τεχνολογία Πολυμέσων. Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εισαγωγή στον Προγραμματισμό

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

Αφήγηση Μαρτυρία. Μουσική. Ενίσχυση μηνύματος Μουσική επένδυση Ηχητικά εφέ

Σημειώσεις : Χρήστος Μουρατίδης. Κάντε κλικ για έναρξη

Ενότητα 1η. Εισαγωγή στην Πληροφορική

Παραδείγματα Δεδομένων: Οι τιμές στο κυλικείο, μια λίστα από ονόματα, τα σήματα της τροχαίας.

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΕΠΙΜΕΛΕΙΑ: ΚΩΣΤΑΣ ΔΕΛΗΜΑΡΗΣ - ΧΡΗΣΗ ΗΥ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή. 1 Στέργιος Παλαμάς

Εργαστήριο 3 Μέρος 1ο Γεννήτριες κυματομορφών στο Max

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ , Ελλάδα, Τηλ Φαξ

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία

Αναπαράσταση Δεδομένων

Γνωριμία με το περιβάλλον

Αριθμητικά Συστήματα Η ανάγκη του ανθρώπου για μετρήσεις οδήγησε αρχικά στην επινόηση των αριθμών Κατόπιν, στην επινόηση συμβόλων για τη παράσταση

Αναπαραγωγή με αρχεία ήχου

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

4 η γενιά ( δεκαετία 70 έως σήμερα) Δομικό Στοιχείο : Ολοκληρωμένο κύκλωμα ή τσιπ μεγάλης κλίμακας ολοκλήρωσης.

3. Χρησιμοποιώντας το CD-ROM Πληροφορικής του εργαστηρίου σας,

Κεφάλαιο 2.3: Ρυθμίσεις των Windows

Βασική δοµή και Λειτουργία Υπολογιστή

Σχολ.έτος Κεφάλαιο 5 ο Γνωριμία με το Λογισμικό του Υπολογιστή.

TEI Ιονίων Νήσων Τμήμα Τεχνολογίας Τροφίμων Πληροφορική Σημειώσεις Τεύχος 2. Μάκης Σταματελάτος

Μάθημα 4ο. Προγράμματα

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΤΟ ΕΣΩΤΕΡΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ

Λιβανός Γιώργος Εξάμηνο 2017Β

Προγραμματισμός Ι (HY120)

Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστημάτων

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις:

ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 7 Ακούγοντας Πρώτη Ματιά στην Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Μάθημα 2ο. Γενικές Ρυθμίσεις

Τετράδια Κιθάρας. Χρήση του PowerTab

ΠΛΗ21 Κεφάλαιο 1. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: 1 Εισαγωγή

Εισαγωγή στην Πληροφορική ΓΕΝΙΚΟ ΤΜΗΜΑ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ TEI ΧΑΛΚΙ ΑΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

ΚΕΦΑΛΑΙΟ 1 Βασικές Έννοιες της Πληροφορικής

Μαλούτα Θεανώ Σελίδα 1

Εισαγωγή στους Η/Υ & Εφαρμογές

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

11/1/18. Κεφάλαιο 2. Κατανόηση των ψηφιακών εξαρτηµάτων. Εξέταση του υπολογιστή: Από τι αποτελείται. Στόχοι. Κατανόηση του υπολογιστή σας

ΣΗΜΕΙΩΣΕΙΣ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Συστήματα Πολυμέσων. Ενότητα 2: Εισαγωγικά θέματα Ψηφιοποίησης. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΗΜΜΥ 100 Εισαγωγή στην Τεχνολογία

Βασικές Έννοιες Πληροφορικής

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

Κ.Α.ΕΛ.Ε. Σημειώσεις επάνω στο Λειτουργικό Σύστημα Windows XP. Εισηγητής: Χαριτωνίδης Γεώργιος. Βόλος, Νοέμβριος 2008

Περιεχόµενα ΕΠΛ 422: στα Συστήµατα Πολυµέσων. Βιβλιογραφία. ειγµατοληψία. ηµιουργία ψηφιακής µορφής πληροφορίας στα Συστήµατα Πολυµέσων

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α)

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΠΛΗΡΟΦΟΡΙΚΗ. Β Γυμνασίου Σχολικό έτος

Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ.

Ελέγξτε την ταινία σας

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ ΣΤΗ ΧΡΗΣΗ ΗΥ

Τμήμα Επιστήμης Υπολογιστών ΗΥ-474. Ψηφιακός ήχος. Χαρακτηριστικά σήματος ήχου Ψηφιοποίηση ήχου Συνθετικοί ήχοι MIDI

Περιεχόμενα. Λίγα λόγια από το συγγραφέα Windows Vista Επιφάνεια εργασίας Γραμμή εργασιών... 31

ΠΑΡΑΓΩΓΗ ΚΑΙ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Γεωμετρία, Αριθμοί και Μέτρηση Μαθαίνω Γεωμετρία και Μετρώ Παίζω με τους αριθμούς Βρίσκω τα πολλαπλάσια

Εγκατάσταση του Arduino IDE

[2] Υπολογιστικά συστήματα: Στρώματα. Τύποι δεδομένων. Μπιτ. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

Εισαγωγή στην επιστήµη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Transcript:

Δεδομένα και Αλγόριθμοι στον ήχο 2015

1. Εισαγωγή βασικές έννοιες Δεδομένα (data) Ως δεδομένα (στα αγγλ. data, από τον πληθ. του λατιν. datum) χαρακτηρίζεται ένα μη αξιολογημένο σύνολο διακριτών στοιχείων, μιας παρατήρησης - αναφοράς, μια συλλογή που αποτυπώνει «τιμές» επί αντικειμένων, προσώπων, γεγονότων κλπ. Τα δεδομένα μπορεί να είναι σημεία πληροφοριών επί επιστημονικών παρατηρήσεων ή συμπεριφοράς και να περιλαμβάνουν λέξεις - έννοιες, αριθμούς, σύμβολα, διαγράμματα, σχέδια, φωτογραφίες, μαγνητοταινίες κλπ που περιγράφουν ή αντιπροσωπεύουν ποσότητες, έννοιες, ιδέες, αντικείμενα, γεγονότα, καταστάσεις και λειτουργίες. Ενδεχομένως κάποιοι από τους τύπους δεδομένων που παρατίθενται εμπεριέχουν ήδη εμφανείς πληροφορίες, όχι όμως την πληροφορία στο επίπεδο που συνθέτει μια αξιολόγησή τους. Ειδικότερα στην πληροφορική συναντούμε τα δεδομένα στον πληθυντικό αριθμό, σπανιότερα στον ενικό (δεδομένο). Γενικότερα, δεδομένο ονομάζεται ένα γνωστό ή αποδεκτό στοιχείο το οποίο χρησιμοποιείται ως βάση ή προϋπόθεση στην επίλυση προβλημάτων. Από τα δεδομένα στην πληροφορία, από την πληροφορία στη γνώση Η πληροφορία είναι το μέγεθος που, αυξανόμενο, προσδίδει σημασία στα δεδομένα και παράγει γνώση. Πληροφορία και δεδομένα Η έννοια της πληροφορίας ορίζεται συχνά σε σχέση με την έννοια των δεδομένων. Οι δύο έννοιες πολλές φορές συγχέονται ακριβώς γιατί τα δεδομένα αποκτώντας σημασία μεταπίπτουν σε πληροφορία. Τα δεδομένα δεν είναι πληροφορία, όταν δεν έχουν λάβει από τη νόηση συγκεκριμένη σημασία, ενώ η πληροφορία είναι δεδομένα με σημασία, δεδομένα που έχουν «ουσιαστικό» περιεχόμενο. Η μετάβαση από τα δεδομένα στην πληροφορία μπορεί να αφορά την επίλυση κάποιου συγκεκριμένου ζητήματος, την απάντηση κάποιου συγκεκριμένου ερωτήματος και γενικότερα παραπέμπει σε καινούριο στοιχείο γνώσης για κάτι. Παραδείγματα Ενώ ένας δεκαψήφιος αριθμός είναι μάλλον ένα στοιχείο δεδομένων χωρίς νόημα, η σύνδεση του με ένα ονοματεπώνυμο σε έναν τηλεφωνικό κατάλογο ενδεχομένως αποτελεί χρήσιμη πληροφορία. Τα εικονοστοιχεία (pixel), οι ελάχιστες φωτεινές τελείες με συγκεκριμένο χρώμα στην επιφάνεια μιας οθόνης, θεωρούνται σε αυτήν απλά δεδομένα. Το νοηματικό περιεχόμενο στο κάθε εικονοστοιχείο περιορίζεται στο χρώμα που φέρει, τη φωτεινότητα κλπ. Η σύνθεση πολλών εικονοστοιχείων στην επιφάνεια της οθόνης, που σχηματίζουν για παράδειγμα ένα ανθρώπινο πρόσωπο, μας δίνουν επιπλέον πληροφορία. Η πληροφορία αυτή μπορεί να είναι εξαιρετικά σύνθετη, όπως η ταυτοποίηση του προσώπου, η κατάσταση της υγείας του, τα συναισθήματά του κλπ. Σε απλοποιημένη ή σχηματική μορφή, δεδομένα + σημασία = πληροφορία. 2

Στην Πληροφορική η πληροφορία σηματοδοτείται από την ποιοτική αξία του bit (0 ή 1). Η πρωταρχική νοηματική αξία για έναν ψηφιακό Η/Υ είναι η διαφοροποίηση του 0 από το 1. Οι συνδυασμοί από σειρές των 0 και 1 παράγουν μεγαλύτερες νοηματικές αξίες τις οποίες μπορεί και διαχειρίζεται ο υπολογιστής, σύμφωνα με τον προγραμματισμό του από τον άνθρωπο. Ο υπολογιστής με τον τρόπο αυτό λέμε πως «επεξεργάζεται δεδομένα» και «παράγει πληροφορία». Ο άνθρωπος έπειτα προσδίδει νόημα στα επεξεργασμένα δεδομένα μετατρέποντας την πληροφορία σε γνώση. Αλγόριθμος Ως αλγόριθμος ορίζεται μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Πιο απλά αλγόριθμο ονομάζουμε μία σειρά από εντολές που έχουν αρχή και τέλος, είναι σαφείς και εκτελέσιμες που σκοπό έχουν την επίλυση κάποιου προβλήματος. Η έννοια του αλγορίθμου γίνεται ευκολότερα αντιληπτή με το παρακάτω παράδειγμα. Αν κάποιος επιθυμεί να γευματίσει θα πρέπει να εκτελέσει κάποια συγκεκριμένα βήματα: να συγκεντρώσει τα υλικά, να προετοιμάσει τα σκεύη μαγειρικής, να παρασκευάσει το φαγητό, να στρώσει το τραπέζι, να ετοιμάσει τη σαλάτα, να γευματίσει, να καθαρίσει το τραπέζι και να πλύνει τα πιάτα. Προφανώς, η προηγούμενη αλληλουχία οδηγεί στο επιθυμητό αποτέλεσμα. Δεν είναι όμως η μοναδική για την επίτευξη του σκοπού, αφού μπορεί να αλλάξει η σειρά των βημάτων (π.χ. πρώτα να ετοιμάσει τη σαλάτα και μετά να στρώσει το τραπέζι). Ωστόσο το νόημα είναι πως η κατάτμηση μιας σύνθετης εργασίας σε διακριτά βήματα που εκτελούνται διαδοχικά, είναι ο πιο πρακτικός τρόπος επίλυσης πολλών προβλημάτων. Δημιουργία αλγορίθμου Τα βήματα δημιουργίας ενός αλγόριθμου είναι: Διατύπωση του προβλήματος Κατανόηση του προβλήματος Λύση του προβλήματος Διατύπωση του αλγόριθμου Έλεγχος της λύσης Δεδομένα στους Υπολογιστές Η αποθήκευση και επεξεργασία των δεδομένων στους ηλεκτρονικούς υπολογιστές γίνεται ψηφιακά. Ένα ψηφιακό σύστημα έχει μόνο δύο πιθανές καταστάσεις. Οδηγώντας, για παράδειγμα, την είσοδο ενός λογικού κυκλώματος με τάση ρεύματος μεγαλύτερη μιας συγκεκριμένης τιμής (π.χ +3 Volts) αναπαριστούμε το ψηφίο "1", ενώ οδηγώντας την είσοδο με τάση ρεύματος μικρότερη μιας συγκεκριμένης τιμής (π.χ +2 Volts) αναπαριστούμε το ψηφίο "0". Λόγω της σχετικά απλής υλοποίησης στα ηλεκτρονικά κυκλώματα το δυαδικό σύστημα χρησιμοποιείται εκτεταμένα στους ηλεκτρονικούς υπολογιστές για την αναπαράσταση αριθμητικών δεδομένων. Δυαδικό (binary) σύστημα αρίθμησης Το δυαδικό σύστημα αρίθμησης αναπαριστά αριθμητικές τιμές χρησιμοποιώντας δύο σύμβολα, το 0 και το 1. Κάθε ψηφίο ανήκει σε μία τάξη μεγέθους μεγαλύτερη κατά ένα από αυτήν του ψηφίου στα δεξιά του. Έτσι, κάθε 3

ψηφίο ενός δυαδικού αριθμού από δεξιά προς τ' αριστερά δηλώνει μονάδες, δυάδες, τετράδες, οκτάδες κ.ο.κ. Παράδειγμα Ο δυαδικός αριθμός 11012 (2 = με βάση το 2) αναπαριστά ποσότητα ίση με 1 μονάδα (1 x 2 0 ), 0 δυάδες (0 x 2 1 ), 1 τετράδα (1 x 2 2 ) και 1 οκτάδα (1 x 2 3 ). Διαβάζεται : "ένα, ένα, μηδέν, ένα με βάση 2". Ισούται δηλαδή με τον αριθμό 13 του δεκαδικού συστήματος, 1 x 2 0 + 0 x 2 1 + 1 x 2 2 + 1 x 2 3 = 13. Ένας αλγόριθμος μετατροπής από το δεκαδικό στο δυαδικό σύστημα Παρακάτω παρουσιάζεται μέσω παραδείγματος ένας απλός αλγόριθμος μετατροπής φυσικών αριθμών από δεκαδική σε δυαδική μορφή. Βήμα 1: Διαίρεσε την τιμή με το δύο και σημείωσε το υπόλοιπο Βήμα 2: Όσο το πηλίκο είναι διάφορο του 0, συνέχισε να διαιρείς το νέο πηλίκο με το δύο και κατέγραφε το υπόλοιπο. Βήμα 3: Τώρα που προέκυψε πηλίκο ίσο με 0, η δυαδική αναπαράσταση της αρχικής τιμής αποτελείται από τα υπόλοιπα γραμμένα από τα δεξιά προς τα αριστερά με τη σειρά που σημειώθηκαν. Με τον ίδιο τρόπο μπορούμε να μετατρέψουμε ένα δεκαδικό αριθμό σε οποιοδήποτε σύστημα, διαιρώντας κάθε φορά δια τον αριθμό του εκάστοτε συστήματος αρίθμησης (οκταδικό, δεκαεξαδικό κτλ.). Λογισμικό Προγράμματα = Αλγόριθμοι + Δεδομένα 4

Αποθήκευση δεδομένων Τα δεδομένα αποθηκεύονται σε αρχεία τα οποία οργανώνουμε σε φακέλους. Φάκελοι Αντιπροσωπεύουν για παράδειγμα τους διάφορους φακέλους που έχετε στο γραφείο σας για να ταξινομείτε τα έγγραφά σας. Μπορείτε να δημιουργήσετε τόσους φακέλους όσους χρειάζεστε για να ταξινομήσετε σωστά και λογικά τα αρχεία που βρίσκονται στον υπολογιστή σας. Αρχεία Τα αρχεία είναι «συνδεδεμένα» με κάποιο πρόγραμμα το οποίο είναι απαραίτητο για να ανοίξουν. Το πρόγραμμα αυτό είναι συνήθως (όχι πάντα όμως) αυτό που τα δημιούργησε Η κατάληξή [σημ.: δεν είναι πάντα φανερή αλλά υπάρχει] (πχ.doc,.html, κτλ.) και το εικονίδιό τους, αναφέρονται στο πρόγραμμα με το οποίο είναι συνδεδεμένα. Δομή δέντρου Η δομή του υπολογιστή έχει τη μορφή δέντρου με ρίζα, κλαδιά και φύλλα όπου στη ρίζα βρίσκεται η αποθηκευτική μονάδα (π.χ. ο σκληρός δίσκος C, στα κλαδιά οι φάκελοι και οι υποφάκελοι και στα φύλλα τα αρχεία των προγραμμάτων). Bit Το bit (b) είναι η στοιχειώδης μονάδα πληροφορίας στην Επιστήμη των Υπολογιστών. Ένα bit είναι η ποσότητα της πληροφορίας που μπορεί να αποθηκευτεί από μία δυαδική συσκευή, ή από άλλο φυσικό σύστημα το οποίο μπορεί να υπάρχει σε μία από δύο διακριτές καταστάσεις (για παράδειγμα, αυτές οι καταστάσεις μπορούν να είναι οι δύο θέσεις ενός διακόπτη, οι δύο τάσεις ηλεκτρικού ρεύματος που επιτρέπονται σε ένα κύκλωμα, κλπ.). Αυτές οι δύο καταστάσεις ερμηνεύονται ως δυαδικά ψηφία και αναπαρίστανται με τους αριθμούς 0 και 1. Η λέξη bit στα αγγλικά προκύπτει από των λέξεων Binary digit, αλλά κυριολεκτικά σημαίνει και «μικροσκοπικό τμήμα, κομματάκι». Οι δύο τιμές που μπορεί να πάρει ένα bit μπορούν να ερμηνευθούν ως λογικές τιμές (αληθές/ψευδές, ναι/όχι), ως καταστάσεις ενεργοποίησης (ενεργό/ανενεργό, on/off), ή ως οποιαδήποτε άλλη ιδιότητα η οποία μπορεί να 5

πάρει μόνο δύο τιμές. Η αντιστοιχία μεταξύ αυτών των δύο τιμών και της φυσικής κατάστασης της συσκευής, είναι απλά θέμα σύμβασης, και μπορεί να χρησιμοποιούνται με διαφορετικό τρόπο ακόμα και μέσα στην ίδια συσκευή ή πρόγραμμα. Οι υπολογιστές εργάζονται με το δυαδικό σύστημα αρίθμησης και χρησιμοποιούν δυαδικά ψηφία για να συμβολίζουν εντολές και δεδομένα. Από φυσική σκοπιά, οι τιμές 0 και 1 υλοποιούνται στο υλικό ως καταστάσεις ηλεκτρικής αγωγιμότητας ενός τρανζίστορ. Στους υπολογιστές χρησιμοποιούμε συνήθως τα bit σε ομάδες των 8, 16, 32, 64, 128 κ.λ.π., δηλαδή δυνάμεις του 2. Μια λέξη 8 bit αντιστοιχεί σε ένα Byte. Byte Το byte (B) είναι μονάδα μέτρησης ποσότητας πληροφορίας στα υπολογιστικά συστήματα, εμφανιζόμενη συνήθως στα διάφορα επίπεδα της ιεραρχίας μνήμης τους. Ένα byte ισοδυναμεί με 8 bit. To byte μπορεί να αντιπροσωπεύσει τιμές από 0 έως και 255 στο δεκαδικό σύστημα (2 8 =256 τιμές). Γενικά μια σειρά με n bits αντιπροσωπεύουν 2 n διαφορετικές τιμές. Το byte είναι και η βασική μονάδα μέτρησης (χώρου και πληροφορίας) στα υπολογιστικά συστήματα. Πολλαπλάσια του byte είναι τα: Kilobyte, 1 kb = 1.024 bytes = 2 10 bytes Megabyte, 1 MB = 1.048.576 bytes = 1024 kilobytes = 2 20 bytes Gigabyte, 1 GB = 1.073.741.824 bytes = 2 30 bytes Terabyte, 1 TB = 1.099.511.627.776 bytes = 2 40 bytes Petabyte, 1 PB = 1.125.899.906.842.624 bytes = 2 50 bytes Exabyte, 1 EB = 1.152.921.504.606.846.976 bytes = 2 60 bytes Συσκευές αποθήκευσης / Μνήμη Μνήμη τυχαίας προσπέλασης RAM - random access memory Πολύ γρήγορη πρόσβαση στα δεδομένα Χάνει τα περιεχόμενά της με τη διακοπή της τροφοδοσίας - Προσωρινή αποθήκευση δεδομένων Μνήμη μόνο για ανάγνωση ROM read only memory Σκληρός δίσκος (hard disk drive) Πολλοί ομοαξονικοί δίσκοι, ο ένας πάνω στον άλλο, επιστρωμένοι με μαγνητικό υλικό Κεφαλές ανάγνωσης και εγγραφής Ηλεκτρονικά εξαρτήματα για επικοινωνία με τον υπολογιστή κίνηση των κεφαλών Το βασικό μέσο αποθήκευσης πληροφοριών του Η/Υ Η χωρητικότητα του μετράται σε Giga Bytes. Σήμερα, στην αγορά υπάρχουν σκληροί δίσκοι με 6

δυνατότητα αποθήκευσης από 500GB μέχρι 2ΤΒ και ακόμα μεγαλύτερη. Το πλεονέκτημα του σκληρού δίσκου είναι η δυνατότητα αποθήκευσης μεγάλου αριθμού πληροφοριών. ΣΗΜΕΙΩΣΕΙΣ όσον αφορά τη χρήση του σκληρού δίσκου Προσοχή! Εύθραυστον Γενικά χάνονται δεδομένα -> Αντίγραφα ασφαλείας σε άλλα μέσα (CD-R, DVD-R ) Οπτικά μέσα (CD / DVD) CD-ROM, DVD-ROM (μόνο ανάγνωση) Η διαφορά μεταξύ τους είναι στο πάχος της ακτίνας laser που διαβάζει τα 0 και 1 650-700 MB, 4.7 GB χωρητικότητα αντίστοιχα Εγγραφή CD-R - με την κατάλληλη συσκευή και λογισμικό εγγραφής δίσκων στον υπολογιστή σας, μπορείτε να γράψετε πληροφορίες, αλλά μόνο μια φορά. CD-RW - με μια συσκευή εγγραφής επανεγγράψιμων δίσκων, μπορείτε να γράψετε και να σβήσετε πληροφορίες πολλές φορές DVD-R, DVD+R, DVD-(+)RW, DVD-RAM, DVD-(+)R (DL) τα αντίστοιχα format εγγράψιμων και επανεγγράψιμων dvd. ΣΗΜΕΙΩΣΕΙΣ Δεν είναι το ίδιο εύκολο με έναν σκληρό να γράψουμε (θέλουμε ειδικό λογισμικό ) Πιο αργά από σκληρό Η «κεφαλή» δεν έχει επαφή με τον δίσκο δεν υπάρχουν φθορές κατά τη χρήση Πάνε προς κατάργηση στις μέρες μας (όπως το floppy disk παλαιότερα) Flash memory Solid state (ένα τσιπάκι όπως η RAM) Δεν έχει κινούμενα μέρη δεν χαλάει εύκολα Μικρό σχετικά μέγεθος (της τάξης των δεκάδων GB) Το μέλλον των σκληρών δίσκων (παρόμοια τεχνολογία είναι οι δίσκοι SSD) 7

2. Ψηφιακός Ήχος - Δειγματοληψία Ο ήχος σε ηλεκτρική μορφή Ήχος παράγεται όταν ένα αντικείμενο (η ηχητική πηγή) πάλλεται και αναγκάζει τον αέρα γύρω του να κινηθεί. Η συχνότητα με την οποία η πηγή πάλλεται είναι η συχνότητα του ηχητικού κύματος που παράγει και μετριέται σε hertz (Hz) ή αλλιώς κύκλοι ανά δευτερόλεπτο. Με τη βοήθεια ενός μικροφώνου μπορούμε να μετατρέψουμε την ενέργεια αυτή (την αυξομείωση της πίεσης του αέρα) σε μία ανάλογα μεταβαλλόμενη ηλεκτρική τάση (αναλογικό σήμα). µικρόφωνο Μεταβαλλόµενη ηλεκτρική τάση πύκνωµα αραίωµα θετική αρνητική Τάση (V) Κυμματομορφές Δειγματοληψία (Sampling) Οι υπολογιστές καταλαβαίνουν μόνο 2 καταστάσεις 1, 0 (περνάει, δεν περνάει ρεύμα). Για να αναπαραστήσουμε το ηχητικό σήμα (μια αναλογικά μεταβαλλόμενη ηλεκτρική τάση) σε έναν υπολογιστή πρέπει να το ψηφιοποιήσουμε. Αυτό γίνεται παίρνοντας τιμές (δείγματα) της έντασης του σήματος σε τακτά χρονικά διαστήματα. 8

Η κυματομορφή (ένα αναλογικό (=συνεχόμενο) σήμα) μεταφράζεται σε μια σειρά από αριθμούς που αντιπροσωπεύουν την ένταση του κύματος στην κάθε χρονική στιγμή. Εφόσον μιλάμε πλέον για αριθμούς, αυτοί μπορούν να απεικονιστούν στο δυαδικό σύστημα και άρα σε μια σειρά από 0 και 1. Η διαδικασία αυτή ονομάζεται μετατροπή αναλογικού σήματος σε ψηφιακό (ADC analogue to digital conversion). Συχνότητα δειγματοληψίας (sampling frequency) Αναφέρεται στο πόσα δείγματα παίρνουμε ανά δευτερόλεπτο και μετριέται σε Hertz (Hz). Συνηθισμένες συχνότητες δειγματοληψίας είναι οι: 22.05kHz, 44.1kHz (CD), 48kHz (DAT), 88.1kHz, 96kHz, 192kHz Θεώρημα του Nyquist Το θεώρημα των Nyquist Shannon Kotelnikov λέει ότι: Για να αποδοθεί σωστά ένα κύμα, πρέπει η συχνότητα δειγματοληψίας να είναι τουλάχιστον μεγαλύτερη από τη διπλή της μέγιστης συχνότητας του κύματος. Fs > 2 Fmax Όπου, Fs: συχνότητα δειγματοληψίας και Fmax: η μέγιστη συχνότητα του κύματος. Χωρίς να το αποδείξουμε ας δούμε τι συμβαίνει σε μερικές περιπτώσεις... Fs =F (άρα έχουμε 1 δείγμα ανά κύκλο του κύματος) Το αποτέλεσμα (πράσινο) είναι μια ευθεία (= δεν μοιάζει καθόλου με το αρχικό μας κύμα). Fs < 2 F 9

Παρατηρήστε ότι η αποδιδόμενη συχνότητα (κόκκινο) είναι χαμηλότερη από την συχνότητα της πηγής (πράσινο). Fs = 2F (2 δείγματα ανά κύκλο του κύματος) Εδώ έχουμε σωστή απόδοση της αρχικής μας συχνότητας (κόκκινο). Στην περίπτωση του ήχου η μεγαλύτερη συχνότητα που μας ενδιαφέρει είναι 20kHz (το πάνω όριο της ακοής μας). Άρα η ελάχιστη συχνότητα δειγματοληψίας που μας κάνει είναι κάτι παραπάνω από 40kHz (40.000 δείγματα το δευτερόλεπτο). Aliasing Ένα ηχητικό κύμα όμως μπορεί να έχει αρμονικό περιεχόμενο και πάνω από τα 20kHz, άσχετο αν εμείς δεν μπορούμε να το ακούσουμε. Μια τέτοια συχνότητα (>20kHz) θα αποδοθεί σαν κάποια άλλη χαμηλότερη (πιθανόν < 20kHz και άρα ακουστή) που δεν υπήρχε στο αρχικό κύμα γιατί η συχνότητα δειγματοληψίας μας δεν επαρκεί για αυτήν. Αυτό λέγεται Aliasing (αναδίπλωση φάσματος). Η λύση σε αυτό το πρόβλημα είναι να βάλουμε ένα φίλτρο Low Pass (χαμηλοπερατό) που θα κόψει τις συχνότητες πάνω από 20kHz πριν τη δειγματοληψία (anti-aliasing filter). Στην πράξη κανένα φίλτρο δεν μπορεί να κόψει μαχαίρι. 10

Στην περίπτωση του CD λοιπόν αποφασίστηκε ότι ένα φίλτρο λογικού κόστους και ποιότητας θέλει περίπου 2.05 khz για να κόψει αρκετά το κύμα ώστε να αποφύγουμε το πρόβλημα, και έτσι προκύπτει η συχνότητα δειγματοληψίας του (44.1 khz = 2 * 22.05 khz). Oversampling Μια τεχνική για να έχουμε καλύτερη ποιότητα (=καλύτερη προσέγγιση του πραγματικού σχήματος του κύματος) είναι το oversampling. Αν θεωρήσουμε λοιπόν ότι μεταξύ δύο δειγμάτων η καμπύλη της κυματομορφής προσεγγίζει την ευθεία (μια σχετικά λογική παραδοχή μιας και αυτά είναι ήδη αρκετά κοντά) μπορούμε να δημιουργήσουμε τεχνητά δείγματα ανάμεσα από τα πραγματικά, ώστε να ελαχιστοποιήσουμε τις σκάλες στην κυματομορφή. Αρα όταν λέμε για έναν μετατροπέα ότι κάνει 128x oversampling εννοούμε ότι δημιουργεί 128 φτιαχτά δείγματα για κάθε ένα κανονικό. Ανάλυση (quantization ή bit depth) Είδαμε λοιπόν ότι το κάθε δείγμα είναι ένας δυαδικός αριθμός. Το πόσο μεγάλος μπορεί να είναι αυτός ο αριθμός εξαρτάται από το πόσα (δυαδικά) ψηφία θα έχει. 16bit = 16 ψηφία μέγιστος: 11111111 11111111 (= 65.536 στο δεκαδικό) 24bit = 24 ψηφία μέγιστος: 11111111 11111111 11111111 (= 16.777.216 στο δεκαδικό σύστημα) Για μια δεδομένη δυναμική περιοχή, όσο μεγαλύτερος είναι ο αριθμός αυτός, τόσο περισσότερες υποδιαιρέσεις θα έχουμε σε αυτήν και άρα καλύτερη προσέγγιση της πραγματικής τιμής του δείγματος. Δυναμικό εύρος ενός ψηφιακού συστήματος (signal to error (S/E)) Το δυναμικό εύρος ενός συστήματος είναι η διαφορά μεταξύ ψηλότερης και χαμηλότερης έντασης που μπορεί να καταγράψει. 11

Στα αναλογικά συστήματα η χαμηλότερη αυτή ένταση ορίζεται από το επίπεδο θορύβου (πχ. το φύσημα σε μια κασέτα ο θόρυβος καλύπτει τους χαμηλότερους από αυτόν σε ένταση ήχους), σε ένα ψηφιακό σύστημα ορίζεται από το λάθος (quantization error) στη στρογγυλοποίηση των δειγμάτων (η μικρότερη διαφορά έντασης που μπορεί να αποδώσει). Ο λόγος σήματος/λάθους (Signal-to-error ratio) Δίνεται από τον τύπο S/E = 6N + 1.8 (σε db) όπου N: αριθμός bits. Άρα στα 16bit έχουμε S/E 97,8dB ενώ στα 24bit έχουμε 145,8dB (περίπου τόσο είναι και το δυναμικό εύρος του αυτιού μας). Ως μέγιστο ορίζουμε τα 0dB Fs 1 και ελάχιστο τα -97.8 db Fs (16bit) ή τα -145.8 db Fs (24bit). Αν το σήμα ξεπεράσει τα 0dB Fs έχουμε το λεγόμενο clipping. Στην ουσία δεν ορίζονται τιμές μεγαλύτερες από αυτήν (αντιστοιχεί στη μέγιστη τιμή που μπορεί να έχει ένα δείγμα (= 1111...111). Αυτό είναι μιας μορφής παραμόρφωση μόνο που είναι πολύ χειρότερη από την αναλογική γιατί δεν έχει κάποια αρμονική σχέση με το σήμα. ΑΠΑΓΟΡΕΥΕΤΑΙ να φτάσουμε στα 0 db Fs. Dither Για να καλύψουμε τα λάθη (errors) που προκύπτουν από τη στρογγυλοποίηση στο κοντινότερο ψηφίο, μπορούμε να προσθέσουμε πολύ λίγο λευκό θόρυβο (dither noise) στην έξοδο και μόνο σαν τελευταία επεξεργασία πριν τη μετατροπή σε αναλογικό σήμα. Αρχεία ήχου σε Η/Υ Το ψηφιοποιημένο σήμα μας μπορεί να αποθηκευτεί σε Η/Υ με τη μορφή αρχείων τύπου.wav ή.aiff. Τα αρχεία αυτά είναι πρακτικά μια τεράστια σειρά από 0 και 1 που αντιστοιχούν στα δείγματα το ένα μετά το άλλο. Χρησιμοποιούν 1 db Fs ντεσιμπέλ που αναφέρονται σε ψηφιακό σήμα. 12

κωδικοποίηση PCM (pulse code modulation). Τα αρχεία αυτά μπορούν να έχουν οποιαδήποτε συχνότητα δειγματοληψίας, ανάλυση και αριθμό καναλιών (πχ. αρχείο stereo.wav, 44.1kHz, 24bit). Μια επέκταση του.wav είναι το Broadcast wave (Bwf) το οποίο είναι ένα.wav με μια ένδειξη χρόνου (timestamp) που είναι ο χρόνος έναρξης του αρχείου στο πρόγραμμα όπου δημιουργήθηκε. 3. Ψηφιακές αναπαραστάσεις του ήχου Κυματομορφές Αρχεία ήχου σε Η/Υ Ασυμπίεστα αρχεία.wav,.aiff Τα ποιο συνηθισμένα PCM (pulse code modulation = διατηρούν όλα τα δείγματα) αρχεία ήχου Μπορούν να έχουν οποιαδήποτε συχνότητα δειγματοληψίας ή ανάλυση (πχ. 24bit 44,1k wav) Broadcast wave (Bwf) -.wav με timestamp - χρόνος (στο project) που ξεκίνησε η ηχογράφηση του στο πρόγραμμα όπου δημιουργήθηκε Ένας χρήσιμος μπούσουλας σχετικά με το μέγεθος που καταλαμβάνουν στο δίσκο είναι ότι για ένα αρχείο διάρκειας 1 λεπτού, σε ποιότητα CD (Stereo, 16bit, 44,1kHz) χρειαζόμαστε περίπου 10Mbytes. Δεδομένου ότι το stereo είναι 2 κανάλια, θέλουμε 5MB ανά κανάλι για ένα λεπτό ηχογράφησης. Συμπιεσμένα αρχεία 1 (lossy compression).mp3,.wma,.ogg,.aac.. Συμπιεσμένα αρχεία (για να μικρύνει το μέγεθος σβήνει δείγματα που δεν ακούμε σύμφωνα με κάποιον ψυχοακουστικό αλγόριθμο) Μετράμε σε kbps (kilobit ανά δευτερόλεπτο) το ρυθμό της μετάδοσης των δεδομένων που χρειάζεται για να αναπαραχθούν χωρίς διακοπές και όχι απευθείας την δειγματοληψία/ανάλυση όπως στα ασυμπίεστα. 13

Τα αρχεία αυτά είναι για χρήση στο διαδίκτυο (όπου οι ταχύτητες είναι περιορισμένες) ή για οικονομία χώρου στο σκληρό μας δίσκο, χάνουν όμως σε ποιότητα ήχου. Μπορούμε να επιτύχουμε μεγάλο λόγο συμπίεσης. Ένα αρχείο.mp3 μπορεί να καταλαμβάνει το 1/10 ο του χώρου σε σχέση με το ίδιο ασυμπίεστο. Στην ηχοληψία/επεξεργασία ήχου τα αποφεύγουμε ακόμα και να μην μπορούμε να ακούσουμε τη διαφορά από ένα ασυμπίεστο, τα δείγματα έχουν χαθεί για πάντα και ότι επεξεργασία κάνουμε (=μαθηματικές πράξεις) χειροτερεύει τον ήχο ακόμα περισσότερο. Συμπιεσμένα αρχεία 2 (lossless compression).flac, apple lossless (ALAC) Συμπιεσμένα αρχεία με τη διαφορά ότι δεν σβήνουμε δείγματα. Η συμπίεση επιτυγχάνεται με τρόπο ανάλογο ενός αρχείου.zip για παράδειγμα όπου ο αλγόριθμος ψάχνει για απλές αριθμητικές σχέσεις, επαναλήψεις κτλ. μεταξύ των δειγμάτων ώστε να μικρύνει το μέγεθος του αρχείου. Κατά την αναπαραγωγή το αρχείο αποσυμπιέζεται πλήρως και έτσι διατηρούνται όλα τα δείγματα. Με αυτόν τον τρόπο επιτυγχάνουμε λόγο συμπίεσης περίπου στο ½ του μεγέθους του αντίστοιχου ασυμπίεστου αρχείου. MIDI Το πρωτόκολλο MIDI είναι ένας κώδικας επικοινωνίας μεταξύ ηλεκτρονικών μουσικών οργάνων. Χρησιμοποιήται και για την αναπαραγωγή μουσικής όταν ο χώρος (ή η ταχύτητα μεταφοράς δεδομένων) είναι πάρα πολύ περιορισμένος (παλιότερα ήταν πολύ διαδεδομένα σε παιχνίδια). Τα αρχεία αυτού του τύπου έχουν την κατάληξη.mid. Αν κάνετε διπλό κλικ σε ένα τέτοιο αρχείο στον υπολογιστή σας θα ακούσετε ήχο Ένα πολύ σημαντικό πράγμα που πρέπει να θυμόμαστε είναι ότι το midi ΔΕΝ είναι ήχος! Είναι μηνύματα που περιγράφουν τη μουσική με κάποιας μορφής σημειογραφία για ψηφιακά μηχανήματα. Δηλαδή κάτι σαν νότες... Xρειαζόμαστε λοιπόν κάποιο synthesizer 2 για να αναπαράγουμε ένα αρχείο midi. Ένα τέτοιο υπάρχει ενσωματωμένο σε μορφή λογισμικού σε κάθε υπολογιστή και έτσι ακούμε ήχο! Μηνύματα MIDI Ένα μήνυμα midi αποτελείται από 1 status byte και 1 ή περισσότερα data bytes Status byte 1xxxxxxx Περιγράφει τη λειτουργία και ταυτότητα της εντολής Data byte 0xxxxxxx Περιγράφει ποσοτικά τη λειτουργία που ορίζει το status byte 2 Μια συσκευή που συνθέτει ήχο. Η εικόνα που ίσως έχετε για ένα synthesizer είναι ένα πληκτροφόρο όργανο που μπορεί να αναπαράγει ήχους διαφορετικών μουσικών οργάνων. Η αλήθεια είναι ότι αν και συνηθίζονται, τα πλήκτρα δεν είναι απαραίτητα στη λειτουργία του. 14

[1 byte = 8 bits (δυαδικά ψηφία)], [x = 0 ή 1] Midi channel Κάποια μηνύματα midi είναι απαραίτητο να γίνονται αποδεκτά μόνο από συγκεκριμένα όργανα, από αυτά που συμμετέχουν σε ένα midi δίκτυο Κάθε όργανο που παράγει midi πληροφορίες δίνει σε κάθε εντολή στο status byte έναν αριθμό από 1 έως και 16 (transmit channel) Κάθε όργανο που δέχεται midi πληροφορίες μπορεί να ρυθμιστεί ώστε ελέγχοντας τον αριθμό αυτόν να αποδέχεται (αν συμφωνεί με το receive channel) ή να αγνοεί τις εντολές (αν δεν συμφωνεί) synth2 in Receive ch - 1 synth1 thru in Receive ch - 2 keyboard out Transmit ch - 1 Τα μηνύματα midi χωρίζονται σε channel και system messages. ΜΗΝΥΜΑΤΑ MIDI CHANNEL VOICE MESSAGES SYSTEM MESSAGES εδώ θα μας απασχολήσουν μόνο τα πρώτα. SYS REAL TIME SYS COMMON SYS EXCLUSIVE Channel voice messages Μηνύματα που αναφέρονται σε συγκεκριμένο midi κανάλι. (Tx = Rx). Για παράδειγμα, μια νότα περιγράφεται με την εξής ακολουθία μηνυμάτων: 1) Μήνυμα note on = παίξε μια νότα Η πληροφορίες που περιέχει το μήνυμα αυτό είναι α) σε ποιο midi κανάλι, β) ποία νότα και γ) με τι ένταση 3 2) Μήνυμα note off = σταμάτα να παίζεις αυτή τη νότα 3 το πρωτόκολλο midi χρησιμοποιεί τη σύμβαση ενός πληκτροφόρου οργάνου. Η ένταση με την οποία έχουμε παίξει μια νότα λοιπόν μπορεί να μετρηθεί ως ο χρόνος που θα κάνει το πλήκτρο να ταξιδέψει από τη θέση ισορροπίας στην θέση που έχει όταν είναι πατημένο. Ο όρος που χρησιμοποιούμε για να περιγράψουμε αυτό το μέγεθος είναι το velocity (που στα αγγλικά σημαίνει ταχύτητα). 15

περιέχει τις ίδιες πληροφορίες με το note on. ΣΗΜ. Πολλές φορές στη θέση του note off χρησιμοποιούμε ένα δέυτερο note on με ένταση (velocity) = 0. Άρα τα μηνύματα είναι στιγμιαία, οπότε στο παραπάνω παράδειγμα η νότα μας ορίζεται από την αρχή και το τέλος της (και όχι από την αρχή και τη διάρκεια της). Στον παρακάτω πίνακα φαίνονται όλα τα channel voice μηνύματα που υποστηρίζει το πρωτόκολλο midi. Status Byte Data Byte 1 Data Byte 2 Note on 1001CCCC 0NNNNNNN Ν = note number 0XXXXXXX X = velocity Note off 1000CCCC 0NNNNNNN Ν = note number 0XXXXXXX X = release velocity Polyphonic key pressure 1010CCCC 0NNNNNNN Ν = note number 0XXXXXXX X = pressure Channel aftertouch 1101CCCC 0NNNNNNN N = pressure (aftertouch) Program change 1100CCCC 0NNNNNNN N = program Pitch bend 1110CCCC 0NNNNNNN N = pitch bend LSB Control change 1011CCCC 0NNNNNNN N = controller number (aftertouch) - - 0XXXXXXX X = pitch bend MSB 0XXXXXXX X = value CCCC = midi channel (0-15) NNNNNNN, XXXXXXX: (0-127) Τα χρήσιμα bits της πληροφορίας ενός midi μηνύματος είναι 7, οπότε οι τιμές που μπορεί να έχει μια παράμετρος (πχ. ποια νότα παίξαμε) είναι από 0 μέχρι 127. Ορίζουμε ως νότα 0 τη χαμηλότερη που μπορεί να παίξει ένα εκκλησιαστικό όργανο (C-2) και ανεβαίνουμε 1 νούμερο για κάθε ημιτόνιο το μεσαίο ντο (C3) λοιπόν αντιστοιχεί στη midi νότα 60. Το προτώκολλο midi είναι ένας σειραϊκός κώδικας. Τα μηνύματα μεταδίδονται διαδοχικά το ένα μετά το άλλο αρκετά γρήγορα ώστε να μην καταλαβαίνουμε καθυστερήσεις. Μια συγχορδία λοιπόν αποτελείται από πολλά διαδοχικά note on και note off. 4. Προγραμματισμός - Γλώσσες και Προγραμματιστικά Περιβάλλοντα Προγραμματισμός υπολογιστών (αγγλ.: «computer programming») καλείται το σύνολο των διαδικασιών σύνταξης ενός υπολογιστικού προγράμματος, συνήθως ως υλοποίηση κάποιων αλγορίθμων ύστερα από προσεκτική σχεδίαση, για την αυτοματοποιημένη εκτέλεση εργασιών ή επίλυση κάποιου υπολογιστικού προβλήματος από έναν υπολογιστή. Θεμελιώδη ρόλο στον υπολογιστικό προγραμματισμό διαδραματίζουν οι χιλιάδες διαφορετικές γλώσσες προγραμματισμού, δηλαδή οι προτυποποιημένες τυπικές γλώσσες απαραίτητες για τη σύνθεση ενός προγράμματος. 16

Γλώσσα προγραμματισμού Μια τεχνητή γλώσσα που μπορεί να χρησιμοποιηθεί για τον έλεγχο μιας μηχανής, συνήθως ενός υπολογιστή. Οι γλώσσες προγραμματισμού (όπως άλλωστε και οι ανθρώπινες γλώσσες) ορίζονται από ένα σύνολο συντακτικών και εννοιολογικών κανόνων, που ορίζουν τη δομή και το νόημα, αντίστοιχα, των προτάσεων της γλώσσας. Κατηγορίες Γλωσσών προγραμματισμού Διαδικαστικές γλώσσες (procedural) όπου το πρόγραμμα είναι οργανωμένο σε διαδικασίες, που αποτελούνται από σειρές εντολών που περιγράφουν αλγορίθμους. Παραδείγματα γλωσσών που ανήκουν σε αυτή την κατηγορία είναι η Pascal ή η C. Αντικειμενοστραφείς γλώσσες (object-oriented) όπου το πρόγραμμα είναι οργανωμένο σε αντικείμενα. Ένα αντικείμενο είναι μια μονάδα που αποτελείται από την περιγραφή κάποιων δεδομένων και την περιγραφή των αλγορίθμων που τα επεξεργάζονται. Ένα αντικειμενοστραφές πρόγραμμα αποτελείται από διάφορα αντικείμενα που αλληλεπιδρούν μεταξύ τους. Παραδείγματα αντικειμενοστραφών γλωσσών είναι η Java ή η C++. Γλώσσες υψηλού και χαμηλού επιπέδου Φυσικό επίπεδο (hardware) CPU, RAM, κάρτες επέκτασης (ήχου, γραφικών...) κτλ. Γλώσσα μηχανής σειρές από 0 και 1. Μέσω αυτής, και καμίας άλλης, επιτυγχάνεται «επικοινωνία» με τον υπολογιστή. Προγράμματα που γράφονται σε άλλες γλώσσες προγραμματισμού, για να γίνουν εκτελέσιμα πρέπει να «μεταφραστούν» από έναν συμβολομεταφραστή (assembler) σε γλώσσα μηχανής. Γλώσσα χαμηλού επιπέδου Μια γλώσσα προγραμματισμού χαμηλού επιπέδου είναι πολύ κοντά στην γλώσσα μηχανής (... χαμηλού επιπέδου). 17

Είναι εξαρτημένη από το μηχάνημα. Ένα πρόγραμμα το οποίο έχει γραφτεί για ένα συγκεκριμένο μηχάνημα δεν μπορεί να τρέξει σε κάποιο διαφορετικό, Δύσκολή στη μάθηση και πολύπλοκη. Μια γλώσσα χαμηλού επιπέδου είναι η Assembly Γλώσσα υψηλού επιπέδου Ως υψηλού επιπέδου γλώσσα προγραμματισμού (high-level programming language) ορίζεται αυτή που επιτρέπει τη μεταφερσιμότητα ενός προγράμματος από έναν υπολογιστή σε έναν άλλο. Αποτελείται από εντολές εύκολα κατανοητές στον προγραμματιστή, καθώς μοιάζουν με -περιορισμένη- φυσική γλώσσα. Για την εκτέλεση του προγράμματος από τον υπολογιστή, απαιτείται η χρήση μεταγλωττιστή για την παραγωγή του προγράμματος σε γλώσσα μηχανής.... LISP, C, Java. Εφαρμογή Οτιδήποτε εκτελείται πάνω από το επίπεδο γλωσσών υψηλού επιπέδου είναι εφαρμογή. (Ακόμα και όταν χρησιμοποιείται κάποιο εργαλείο για τον προγραμματισμό διαδικασιών και αλγορίθμων)...... όπως στα προγραμματιστικά περιβάλλοντα για ήχο (...συχνά και βίντεο) Csound, Supercollider, Max, Pure data, Processing Προγραμματιστικό περιβάλλον (Π.Π.) vs Γλώσσα προγραμματισμού (Γ.Π.) Η διαφοροποίηση τους εγγυάται στα εξής Ευρύτητα των διαδικασιών που μπορούν να οριστούν (πχ. Π.Π. για ήχο, Γ.Π. γενικής χρήσης) Όσο πιο μακριά είμαστε από τη γλώσσα μηχανής, τόσο πιο βαρύ είναι το πρόγραμμα μας. Για να τα τρέξει μια εφαρμογή που έχει δημιουργηθεί σε ένα Π.Π. πρέπει στον υπολογιστή να υπάρχει εγκατεστημένο και το ίδιο το Π.Π.. Τα πιο διαδεδομένα Προγραμματιστικά περιβάλλοντα για μουσική και ήχο στις μέρες μας είναι τα παρακάτω. Supercollider Ξεκινά το 1996, από τον James McCartney Δωρεάν λογισμικό, ανοιχτού κώδικα (Linux, Mac OS X, Windows) Διεπαφή κειμένου εντολών, πχ. Αρχιτεκτονική Server (scsynth)/ client (sclang), επικοινωνία μεταξύ τους μέσω OSC (Open Sound Control) 18

Δεδομένα και Αλγόριθμοι στον Ήχο Παρακάτω φαίνεται ένα τυπικό παράθυρο εργασίας στο supercollider.... και μερικές εφαρμογές που έχουν γίνει με αυτό (ixiquarks) Max Αρχικά από τον Miller Puckette (μέσα του 80) στο παγκοσμίου εμβέλειας ερευνητικό κέντρο IRCAM στο Παρίσι, τo 1997 το αγόρασε η εταιρία Cycling74 η οποία το αναπτύσει από τότε. Είναι εμπορικό πακέτο για Mac OS X και Windows. Αρθρωτό (modular). Συνδέουμε γραφικά αντικείμενα με καλώδια για να δημιουργήσουμε μεγαλύτερες δομές / αλγόριθμους. Στην παρακάτω εικόνα διακρίνεται ένα τυπικό παράθυρο εργασίας (αριστερά) με τα αντικείμενα συνδεδεμένα με καλώδια. Δεξιά φαίνεται ένα αντικείμενο αναπαραγωγής βίντεο. 19

ή σε μια νεώτερη έκδοσή του Pure data (Pd) Το δωρεάν, ανοιχτού κώδικα, αδερφάκι του Max από τον δημιουργό του, Miller Puckette (1990s). Όταν πουλήθηκε το max, ο Puckette ανέπτυξε αρχικά μόνος του και μετά με τη βοήθεια της κοινότητας το Pd. Τρέχει σε Linux, Mac OS X, Windows και σε κινητά τηλέφωνα/τάμπλετ με λειτουργικό ios και Android (μέσω του libpd και άλλων πακέτων). Η διεπαφή του είναι σαν του Max αλλά λίγο πιο δύσχρηστη και όχι τόσο όμορφη. 20

...ένα αρκετά μεγάλο project στο Pure Data. Κυκλοφορεί σε δύο εκδοχές pd (vanilla) το βασικό πακέτο του Miller Puckette, και pd-extended το φουλ πακέτο, με συνεισφορές από την κοινότητα 5. Pure Data (Pd) Εισαγωγή Το Pd είναι ένα γραφικό περιβάλλον προγραμματισμού σχεδιασμένο για τη δημιουργία (χωρίς όμως να περιορίζεται σε αυτές) μουσικών/ηχητικών εφαρμογών. Κατά την εργασία με το Pd, ο χρήστης δημιουργεί λογισμικό χρησιμοποιώντας μια εργαλειοθήκη αντικειμένων (objects). Αυτά τα αντικείμενα είναι κομμάτια κώδικα που εκτελούν κάποια συγκεκριμένη λειτουργία η οποία μπορεί να είναι από κάτι απλό όπως πρόσθεση δύο αριθμών 21

μέχρι κάτι τόσο περίπλοκο όπως ένα πλήρως λειτουργικό αυτόνομο λογισμικό μουσικής. Τα αντικείμενα συνδέονται μεταξύ τους με καλώδια για να σχηματίσουν μεγαλύτερες ρουτίνες που μπορούν να ενθυλακωθούν σε νέα αντικείμενα. Το βασικό περιβάλλον που ονομάζεται Pd περιλαμβάνει MIDI αντικείμενα, αντικείμενα ελέγχου, αντικείμενα γραφικού περιβάλλοντος (user interface), αντικείμενα χρονισμού, αντικείμενα ήχου και βίντεο και 3D γραφικά. Χτισμένα πάνω στο Pd είναι εκατοντάδες αντικείμενα, πολλά από παγκοσμίου εμβέλειας ερευνητικά κέντρα, όπως το CNMAT στο UC Berkeley κ.α. ή ανεξάρτητους προγραμματιστές. Το Pd-extended που θα χρησιμοποιήσουμε εμείς περιλαμβάνει πολλά από αυτά. Το Pd επίσης υποστηρίζει εξωτερικά αντικείμενα γραμμένα σε C. Το Pd είναι διαθέσιμο δωρεάν από τη σελίδα https://puredata.info και ο κώδικάς του είναι ανοιχτός. Πέρα από τις σημειώσεις του μαθήματος, υπάρχουν πολλά tutorials μέσα στο πρόγραμμα (στο μενού help, βλ. εικόνα) και στο διαδίκτυο στη σελίδα http://en.flossmanuals.net/pure-data/ Μια πρώτη γνωριμία βασικές έννοιες Το παράθυρο Pd Στο επάνω μέρος του παραθύρου, θα βρείτε δείκτες στάθμης του ήχου που παρέχουν μια γενική ιδέα για την ένταση που στέλνετε την κάρτα ήχου. Εάν 22

αυτή είναι στο 100 ή υψηλότερη, το σήμα σας είναι πολύ δυνατό και θα ακούσετε παραμορφωμένο ήχο. Επίσης στο πάνω μέρος του παραθύρου υπάρχει ένα κουτάκι με την ένδειξη DSP, το οποίο μπορείτε να χρησιμοποιήσετε για να ενεργοποιήσετε και να απενεργοποιήσετε την επεξεργασία ήχου. Αν πχ. ανοίξετε το patch Έλεγχος Ήχου και MIDI από το μενού Μέσα, το Pd θα ενεργοποιήσει αυτόματα την επεξεργασία ήχου. Το παράθυρο εργασίας (patcher) Από το μενού Αρχείο>Νέο, δημιουργήστε ένα νέο patch. Μετακινήστε το νεο παράθυρο ώστε να τα βλέπετε και τα δύο. Το κενό αυτό patch είναι το μέρος όπου μπορείτε να σχεδιάσετε οτιδήποτε θέλετε όπως πχ. ένα synthesizer, έναν επεξεργαστή ήχου ή βίντεο ή να πάρετε το σήμα από αισθητήρες και να το κάνετε να ελέγχει παραμέτρους του ήχου. Σε αυτό το παράθυρο τοποθετούμε και συνδέουμε τα αντικείμενά μας ώστε να δημιουργήσουμε μια μεγαλύτερη δομή που θα κάνει κάτι χρήσιμο. Στο μενού Προσθήκη επιλέξτε Αντικείμενο (ctrl/cmd+1) και μέσα στο κουτάκι που εμφανίζεται γράψτε print. Έχετε μόλις δημιουργήσει το αντικείμενο [print] 4 το οποίο η μόνη δουλειά που κάνει είναι να εμφανίζει (να τυπώνει ) το μήνυμα στην είσoδό του, στο παράθυρο Pd. Όλα τα στοιχεία του Pd έχουν κάποιον αριθμό από εισόδους ή/και εξόδους τα οποία φαίνονται σαν μικρές παυλίτσες στο πάνω (είσοδοι) ή/και στο κάτω (έξοδοι) μέρος του αντικειμένου. Τοποθετήστε (Προσθήκη>Αριθμός (ctrl/cmd+3)) έναν αριθμό και συνδεστε την έξοδό του στην είσοδο του [print]. 4 από εδώ και πέρα ότι εμφανίζεται σε αγκύλες [ ] είναι το όνομα ενός αντικειμένου. 23

με κλικ και drag μακριά από κάποιο αντικείμενο μπορείτε να επιλέξετε πολλά μαζί και να τα μετακινήσετε ή να τα διαγράψετε (πατώντας del) να κάνετε κοπή/αντιγραφή/επικόλληση ή να δημιουργήσετε ένα αντίγραφο (ctrl/cmd+d) κλπ. Κατάσταση Επεξεργασίας και Λειτουργίας Ας δούμε τι κάνει αυτό το patch. Έχουμε συνδέσει ένα κουτί αριθμού (number box) σε ένα αντικείμενο [print], που έχουμε πει ότι δουλειά του είναι να τυπώνει τα μηνύματα (εδώ αριθμούς) που στέλνουμε σε αυτό, στο παράθυρο του Pd. Για να αλλάξουμε τα νούμερα στο number box, πρέπει να ξε-επιλέξουμε την Κατάσταση Επεξεργασίας από το μενού Επεξεργασία (ctrl/cmd+e). 24

Όταν μπαίνετε σε "Play Mode", θα δείτε ότι ο κέρσορας από δάχτυλο αλλάζει σε βέλος. Τώρα με κλικ και drag στο number box αλλάζετε το νούμερο. Οποιαδήποτε αλλαγή εμφανίζεται στο παράθυρο Pd. 25

Μηνύματα και Σχόλια Το "κουτί μηνύματος" (Προσθήκη>Μήνυμα, ctrl/cmd+2) χρησιμοποιείται για την αποθήκευση και την αποστολή πληροφοριών σε άλλα αντικείμενα, και μπορεί να περιέχει αριθμούς ή κείμενο. Το ξεχωρίζετε από το χαρακτηριστικό του σχήμα με τις μυτίτσες τέρμα δεξιά. Τοποθετήστε δύο διαφορετικά μηνύματα πάνω από τον αριθμό στην άσκηση μας. Όπως και το αντικείμενο, τα μηνύματα δείχνουν επίσης έναν κέρσορα που αναβοσβήνει και υποδεικνύει ότι θα πρέπει να εισάγετε κάποιες πληροφορίες κατά τη δημιουργία τους. Πληκτρολογήστε "2" σε ένα από τα μηνύματα και "4" στο άλλο, και συνδέστε τα με τον αριθμό. Αλλάξτε σε Play Mode (ctrl/cmd+e) και κάντε κλικ σε κάθε ένα από τα μηνύματα. Όταν το κάνετε, θα δείτε ότι ο αριθμός αλλάζει ανάλογα με το μήνυμα που θα στείλετε και ότι το μήνυμα αποστέλλεται επίσης στο αντικείμενο [Print]. Τοποθετήστε και τα υπόλοιπα μηνύματα που βλέπετε παρακάτω καθώς και μερικά περιγραφικά σχόλια (Προσθήκη>Σχόλιο, ctrl/cmd+5). Το μήνυμα bang Το μήνυμα bang είναι ένα ειδικό μήνυμα που σημαίνει ΚΑΝΕ (ότι είναι να κάνεις) ΤΩΡΑ και μπορούμε να το στείλουμε είτε έτσι, ή με ένα κουμπί (button) (Προσθήκη>Ενεργοποίηση, Shift+ctlr/cmd+B). Πχ. 26

Σειρά Εκτέλεσης Η σειρά με την οποία εκτελούνται οι εντολές σε έναν αλγόριθμο είναι ζωτικής σημασίας. Πχ. Αν γυρίσετε το κλειδί της μηχανής για να βάλετε μπρος το αυτοκίνητό σας πριν να βάλετε νεκρά, το αυτοκίνητο δεν θα πάρει μπρος αλλά θα κλωτσήσει. Το αντικείμενο [trigger] μας βοηθάει να εξασφαλίσουμε τη σωστή σειρά εκτέλεσης των πράξεών μας όταν αυτές θέλουμε να γίνουν με το πάτημα ενός κουμπιού. Εδώ, το [trigger] στέλνει τρία bang από τις αντίστοιχες εξόδους και από δεξιά προς τα αριστερά τα οποία με τη σειρά τους ενεργοποιούν τα τρία στάδια του αλγόριθμού μας. Προσέξτε το κενό (space) ανάμεσα στο όνομα του αντικειμένου (trigger) και τα arguments (bang bang bang). Ένα argument είναι μια αρχική τιμή που μπορούμε να ορίσουμε σε κάποια αντικείμενα. Ένα παράδειγμα ενός απλού αλγόριθμου μέτρησης Παρακάτω βλέπετε ένα προγραμματάκι που μετράει κάθε φορά που πατάμε ένα κουμπί. Θέλουμε να προσθέτουμε 1 στο αποτέλεσμα, κάθε φορά που πατάμε το κουμπί. Άρα πρέπει να αποθηκεύουμε το αποτέλεσμα (στο αντικείμενο [float] ή [f] που είναι μια θέση αποθήκευσης για αριθμούς (float (αγγλ.): δεκαδικός αριθμός) και σε αυτό να κάνουμε την πρόσθεση (με το αντικείμενο [+] και argument 1 ). Ακολουθούν πακέτα θεωρίας / ασκήσεων για τη χρήση του λογισμικού Pure data. Αυτά πολλές φορές συνοδεύονται από παραδείγματα σε μορφή patch σε ξεχωριστά αρχεία του Pd. 27

Ασκήσεις Pure Data (Pd) - 1 Άσκηση 1 1. Δηµιουργήστε ένα νέο patch (Αρχείο>Νέο) 2. Αντιγράψτε το παρακάτω patch. 4. Κλειδώστε το patch (µενού Επεξεργασία>Κατάσταση Επεξεργασίας ή ctrl-e) και κάντε κλικ στο µήνυµα. Κοιτάξτε το παράθυρο του Pd. Η «εκτύπωση» µηνυµάτων στο παράθυρο Pd είναι ένας από τους ευκολότερους τρόπους για να δείτε τι συµβαίνει στο patch. Χρησιµοποιήστε τον πολύ! ιδιαίτερα όσο µαθαίνετε το πρόγραµµα. Άσκηση 2 1. Φτιάξτε αυτό το patch και κλειδώστε το. 2. Πατήστε το διακόπτη [toggle] και αλλάξτε την τιµή στο νούµερο. 3. Συνδέστε ένα [print] στις εξόδους του [toggle] και του νούµερου και «παίξτε» αλλάζοντας τις τιµές τους. Τι µηνύµατα στέλνει το [toggle]; Σηµειώστε το σε ένα σχόλιο (ctl/cmd+5) για να το θυµάστε. 28

Άσκηση 3 1. Προσθέστε αυτά στο προηγούµενο patch. 2. Σιγουρευτείτε ότι καταλαβαίνετε τι κάνει το καθένα από τα αντικείµενα ([button] (προσθήκη->ενεργοποίηση (shift+ctl/cmd+b), [toggle] (προσθήκη->διακόπτης (shift+ctl/cmd+τ), τα µηνύµατα και οι αριθµοί), πως τα χειρίζεστε και πως αλληλεπιδρούν µεταξύ τους. 3.Τι κάνει το αντικείµενο [metro]; Σηµειώστε το σε ένα σχόλιο.... και 4. τι είναι αυτό το 500 στο [metro]; Που αναφέρεται; Σηµειώστε το σε ένα σχόλιο. Άσκηση 4 1. στο ίδιο patcher window, δηµιουργήστε αυτή τη ρουτίνα. 2. Κλειδώστε το patch, κάντε κλικ στα µηνύµατα, αλλάξτε το νούµερο. Θα πρέπει να ακούσετε ήχο. Τι συµβαίνει; Σηµειώστε το σε ένα σχόλιο. ΣΗΜ: Αν δεν ακούτε ήχο πηγαίνετε στο µενού Μέσα/ρυθµίσεις midi Στη συσκευή εξόδου, επιλέξετε το Microsoft GS wavetable synth και πατήστε εφαρµογή και ΟΚ. 3. Δηµιουργήστε ένα [button](shift+ctl/cmd+b). Συνδέστε την έξοδό του στην είσοδο του νούµερου, κλειδώστε το patch και πατήστε το επανειληµµένα. Πρέπει να ακούτε µια επαναλαµβανόµενη νότα Αυτό το patch σας δίνει µια πρώτη ιδέα για το τι κάνουν τα αντικείµενα [makenote] και [noteout]. 4. Αλλάξτε τα νούµερα στο αντικείµενο [makenote] σε 64 και 2000. Τι διαφορά ακούτε; Τι αντιπροσωπεύουν τα νούµερα; Σηµειώστε το σε ένα σχόλιο. 29

Άσκηση 5 1. Έχοντας αντιγράψει την παρακάτω ρουτίνα, κλειδώστε το patch και πατήστε επανειληµµένα το πάνω [button]. Εδώ βλέπουµε 2 καινούρια αντικείµενα: Το [counter] και το [select]. 2. Ξεκλειδώστε το patch, κάντε δεξί κλικ στο αντικείµενο [select] και επιλέξτε βοήθεια. Αυτό εµφανίζει το παράθυρο help Όπου µπορείτε να δείτε πληροφορίες για το αντικείµενο. Όλα τα αντικείµενα έχουν ένα βοηθητικό patch, (το help) το οποίο είναι πάρα πολύ χρήσιµο. (δοκιµάστε το και µε τα άλλα αντικείµενα που είδαµε [counter], [makenote], [noteout], [button], [toggle] κτλ.). Άσκηση 6 1. Αυτή είναι µια απλή ρουτίνα ως εισαγωγή στο αντικείµενο [spigot]. Χρησιµοποιήστε το [toggle] για να ανοίγετε και να κλείνετε την πύλη, µετά πιέστε το [button]. Όταν η πύλη είναι ανοικτή, τα µηνύµατα περνάνε στην έξοδο, όταν είναι κλειστή όχι. Άσκηση 7 Πλάκα - πλάκα έχουµε ότι χρειαζόµαστε για να φτιάξουµε ένα πολύ απλό step sequencer 5. Συνδέοντας κάποιες από τις παραπάνω ασκήσεις µεταξύ τους µπορούµε να το επιτύχουµε. Προσπαθήστε να σκεφτείτε πως... [ρίξτε µια µατιά στην επόµενη σελίδα για λίγη βοήθεια αν δεν το βρίσκετε] 5 Δείτε ένα παράδειγµα. Ένα ρολόι τρέχει συνέχεια σε λούπα ενός µέτρου. Τα νούµερα αντιπροσωπεύουν τα 16 α στο µέτρο και τα αντίστοιχα κουµπιά ενεργοποιούν τον ήχο για το κάθε ένα από αυτά. 30

Άσκηση 2 Άσκηση 5 Άσκηση 6 Άσκηση 6 Άσκηση 6 Άσκηση 6 Άσκηση 4 31

Λύση Άσκηση 8 Εργασία Αν το βρήκατε µόνοι/ες σας µπράβο! Αν όχι, δεν πειράζει, σιγουρευτείτε όµως ότι καταλαβαίνετε τι µηνύµατα στέλνει το ένα αντικείµενο στο άλλο και πως τα επεξεργάζεται το καθένα. 1. Αλλάξτε το patch ώστε να κάνετε ένα 16-beat step sequencer (δηλαδή µε ανάλυση 16 ου στο µέτρο και όχι 4 ου όπως τώρα). 2. Αλλάξτε το ώστε να µπορείτε να έχετε διαφορετική νότα σε κάθε step. Hint: χρησιµοποιήστε ένα νούµερο αντί για µήνυµα, ώστε η νότα να είναι µεταβλητή και το αντικείµενο [float] (που είδαµε στο προηγούµενο µάθηµα) για να την αποθηκεύει προσωρινά µέχρι να έρθει η ώρα της να παίξει. 3. Τέλος, σε ένα σχόλιο στο πάνω µέρος του patch, γράψτε το όνοµά σας και σώστε το (πράγµα που θα έπρεπε να κάνετε ήδη συχνά έτσι κι αλλιώς) ως Ergasia_Pd_1_to_onoma_sas. Στείλτε το µου µε e-mail στο ptheohar@ionio.gr µε θέµα 6 Ergasia_Pd_1 µέχρι το επόµενο µάθηµα. 6 πάρα πολύ σημαντικό!!!! 32

Ασκήσεις Pure Data (Pd) 2 Οι σημειώσεις που ακολουθούν είναι screenshots από τα αντίστοιχα patch στο συμπιεσμένο φάκελο Ασκήσεις - Θεωρία pd 2 διαθέσιμο από την ιστοσελίδα του μαθήματος. Καλείστε να τα κατεβάσετε και να τα διαβάσετε από εκεί. 1. 2. 33

3. 4. Άσκηση για το σπίτι Σε ένα σχόλιο στο πάνω µέρος του patch, γράψτε το όνοµά σας και σώστε το (πράγµα 34

που θα έπρεπε να κάνετε ήδη συχνά έτσι κι αλλιώς) ως Ergasia_Pd_2_to_onoma_sas. Στείλτε το µου µε e-mail στο ptheohar@ionio.gr µε θέµα Ergasia_Pd_2 µέχρι το επόµενο µάθηµα. Ασκήσεις Pure Data (Pd) 3 Οι σημειώσεις που ακολουθούν είναι screenshots από τα αντίστοιχα patch στο συμπιεσμένο φάκελο Ασκήσεις - Θεωρία pd 3 διαθέσιμο από την ιστοσελίδα του μαθήματος. Καλείστε να τα κατεβάσετε και να τα διαβάσετε από εκεί. 1. 2. α 35

2. β 3. Άσκηση - auto accompaniment Δημιουργήστε έναν auto-accompanist (αυτόματο μουσικό συνοδό). Αυτό το όργανο έχει σχεδιαστεί για να παίζει μια σύμφωνη συγχορδία για κάθε νότα (άσπρα πλήκτρα μόνο) μεταξύ του C2 και C3 1. Ανοίξτε το patch aa.pd. Σιγουρευτείτε ότι καταλαβαίνετε πως δουλεύει. 2. Χρησιμοποιήστε το αντικείμενο [select] για την αναγνώριση των MIDI νοτών της κλίμακας. Η τιμή MIDI που αντιστοιχεί σε κάθε νότα φαίνεται παρακάτω. 36

3. Δημιουργήστε 3 [message box] που θα παίζουν τις παρακάτω συγχορδίες: α) C-3, E-3, G-3, C-4 (δείτε τον πίνακα για τις τιμές MIDI της κάθε νότας) β) D-3, F- 3, G-3, B-3 γ) C-3,F-3,A-3,C-4. Συνδέστε τα στο αντικείμενο [makenote] (στην αριστερή είσοδο) και δοκιμάστε ότι παίζουν. 4. Συνδέστε τα αντικείμενα ώστε i) οι νότες C-2, E-2, G-2 και C-3 να τριγκάρουν τη συγχορδία α), ii) οι νότες D-2, F-2 και B-2 να παίζουν τη συγχορδία β), iii) οι νότα A-2 να τριγκάρει τη συγχορδία γ). Σε ένα comment στο πάνω μέρος του patch, γράψτε το όνομά σας. Στείλτε το μου με e-mail στο ptheohar@ionio.gr με θέμα Ergasia_PD_3 μέχρι το επόμενο μάθημα. Προτεινόμενη Βιβλιογραφία Γλώσσες & Διεπαφές Στη Μουσική Πληροφορική - Διονύσιος Πολίτης http://en.flossmanuals.net/pure-data/ http://pd-tutorial.com/english/index.html 37