Πως να πλάθεις τα κύματα των ήχων δίνοντας εντολές σε Γλώσσα Μηχανής

timthumb

Στο ανθρώπινο είδος αρέσει να τακτοποιεί πράγματα σε κουτάκια.

Για παράδειγμα , τα πουκάμισα σου τα έχεις οργανωμένα ανά είδος στις κρεμάστρες σου, έχεις στο κάτω-κάτω συρτάρι τις κάλτσες σου και στο πάνω-πάνω συρτάρι τα μακό μπλουζάκια σου. Με τον ίδιο ακριβώς τρόπο, σου αρέσει να τακτοποιείς και τα είδη της γνώσης σου. Σε παρόμοια νοητικά κουτάκια.

Σκέψου για λίγο τις Ανθρωπιστικές Επιστήμες. Ο Άνθρωπος κατατάσσει εδώ την Φιλολογία, την Λογοτεχνία, το Δίκαιο , την Φιλοσοφία, την Μουσική το Θέατρο και πολλές ακόμα “Θεωρητικά”. Στις Θετικές Επιστήμες κατατάσσονται όλες οι υπόλοιπες δραστηριότητες του Ανθρώπινου Πνεύματος (Φυσική, Χημεία, Βιολογία, Γεωλογία, Μαθηματικά, Πληροφορική)

Νομίζω ότι αυτά τα κουτάκια είναι πολλές φορές, ο λάθος τρόπος να βλέπουμε τον κόσμο γύρω μας και εν τέλει δεν εξυπηρετούν κανέναν σκοπό παρά μόνο αυτήν ακριβώς την ατταβιστική ανάγκη του ανθρώπου για “κουτάκια”.

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

Δεν θέλω να με παρεξηγήσεις, προφανώς και η Ανάπτυξη Εφαρμογών είναι μια “θετική” δεξιότητα και αναμφισβήτητα μπορεί να διδαχθεί σε διάφορα επίπεδα και σε όλες τις βαθμίδες τις εκπαίδευσης . Ναι , ο Προγραμματισμός είναι Επιστήμη. Μήπως είναι όμως και Τέχνη; Είναι ο Προγραμματισμός μια δεξιότητα που διδάσκεται αλλά έχει να κάνει και με το έμφυτο ταλέντο κάποιου; Πόσο σχέση έχει τελικά ο προγραμματισμός με τα μαθηματικά; Διδάσκεται εν τέλει σωστά όταν διδάσκεται στα θρανία, στον πίνακα, με όργανο την κιμωλία και με στόχο τις πανελλαδικές εξετάσεις;

Για να το πούμε δηλαδή πιο απλά, ο Bill Gates (που ήταν ήδη σπουδαίος προγραμματιστής απο 14 ετών) θα πέρναγε στις Πανελλήνιες; Η θα τον κόβανε στις γραπτές εξετάσεις στο μάθημα “Ανάπτυξη εφαρμογών”

Βλέπω εκεί στην Γαλαρία , εσένα Εύελπι πληροφορικάριε ( αλλά και εσένα φέρελπι μελλοντικέ συνάδελφε) να γελάς. Φίλε μου δεν σε παρεξηγώ. Πέρασα και εγώ από το στάδιο που είσαι και σε καταλαβαίνω. Για εσένα Προγραμματισμός είναι αγγαρία, είναι να αναπτύσσεις αλγόριθμους binary search , να φτιάχνεις σε fortran έναν bubble short σε λιγότερες από 20 γραμμές ή να γράφεις με pointers και random access σε έναν μονοδιάστατο πίνακα όλους τους αριθμούς Φιμπονάτσι που δεν περιέχουν το ψηφίο 3 πάνω από 3 φορές

Δηλαδή να κάνεις πράγματα που μου προξενούν τόσο έντονο χασμουρητό που κινδυνεύω να πάθω κράμπα σιαγόνας. Τα έχω περάσει σου λέω , συμπάσχω .

Αν σε ρωτήσω να μου πεις 3-4 καλλιτέχνες της instrumental ηλεκτρονικής μουσικής θα μου αναφέρεις σίγουρα τον Jean Michael Jarre , τον Vangelis και τον Kitaro. Μπορεί μάλιστα να ξέρεις και μερικά από τα σπουδαιότερα synthesizer με τα οποία αυτοί οι σπουδαίοι μουσικοί έγραψαν μουσική. Την σειρά Prophet της Yamaha, τα θρυλικά Synclavier, το Fairlight CMI, το Roland JD-800.

Ξέρεις όμως τον μουσικό Rob Hubbard; Ξέρεις το synthesizer SID;

Δεν πειράζει αν δεν τον ξέρεις. Θα σου πω ένα μυστικό. Ο Rob Hubberd δεν ήταν ένας απλός μουσικός. Ήταν προγραμματιστής-μουσικός. Και το SID δεν ήταν ένα κανονικό synthesizer. Ήταν ένα ολοκληρωμένο κύκλωμα, ένα chip, που προγραμματίζονταν σε assemply, σε γλώσσα μηχανής και βρίσκονταν στα σωθικά ενός Home Computer , του Commodore 64

Τα μέσα της δεκαετίας του 80 ήταν σίγουρα η χρυσή εποχή των video games. Η εποχή των απλοϊκών παιχνιδιών τύπου Pacman είχε περάσει , τα παιχνίδια ωρίμαζαν και σε κάθε γειτονιά φύτρωνε και από ένα “ουφάδικο”. Η πραγματική όμως επανάσταση γίνονταν, αθόρυβα, στα σαλόνια των σπιτιών των εφήβων της εποχής , εκεί όπου οι θρυλικοί 8-bit home computers ήταν κυριολεκτικά οι κυρίαρχοι του παιχνιδιού. O Commodore 64, o Spectrum 48k , ο Amstrad CPC . Οι κυρίαρχοι του παιχνιδιού.

Το 1985 η πιο καυτή ταινία της χρονιάς ήταν το Commando με τον Arnold Schwarzenegger . Στις σάλες των ουφάδικων το ομώνυμο video game σάρωνε τις πωλήσεις και άδειαζε τις τσέπες από κέρματα. Η Capcom έφτιαξε εκδοχή του παιχνιδιού για τον Commodore 64 και όταν το παιχνίδι ήταν έτοιμο φώναξαν τον Rob Hubbard να γράψει την μουσική του παιχνιδιού. Αφήνω τον Rob να σας διηγηθεί ο ίδιος την ιστορία εκείνης της μουσικής.

– ” Έφτασα στα γραφεία της Capcom αργά την νύχτα – κανένας δεν ήταν εκεί. Κάθησα μπροστά από έναν Commodore. Άκουσα σε κασσέτα μια φορά την πρωτότυπη μουσική και μετά άρχισα να γράφω μουσική στον Commodore. Μου είχαν ζητήσει να παραμείνω κοντά στο αυθεντικό μουσικό θέμα, αλλά εγώ έκανα αυτό που μου άρεσε. Δούλεψα όλη την νύχτα και τελείωσα στις οκτώ το πρωί. Μέχρι να φτάσουν όλοι στο γραφείο είχα φορτώσει την μουσική σε όλα τα Commodore της εταιρίας. Έπαιζε παντού. Πήρα την επιταγή μου και στις 10 το πρωί πήρα το μετρό για το σπίτι μου. “

– ” Έγραφες την μουσική σου με πρόγραμμα μουσικής; Χρησιμοποιούσες πλήκτρα synthesiser;”

– ” Όχι , έγραφα τα πάντα σε assembler. Μιλούσα στο SID σε κώδικα μηχανής. Αυτό που έκανα δεν μπορούσε να γίνει ούτε με πρόγραμμα μουσικής ούτε με synthesiser

 

Για να καταλάβετε τι ακριβώς έκανε ο Rob Hubbard εκείνη την νύχτα , παρακαλώ αφιερώστε μου λίγο από τον χρόνο σας για να σας περιγράψω τις “επίσημες” δυνατότητες του SID , δηλαδή αυτές που περιγράφονταν στο manual του κατασκευαστή.

Το SID είχε τρία κανάλια ήχου , δηλαδή μπορούσε να παίζει ως 3 ήχοι ταυτόχρονα. Όταν λέμε ήχος μην πάει ο νους σου σε μουσικά όργανα. Κάθε ήχος υποτίθεται πως μπορούσε μόνο ένα από τέσσερα είδη κυματομορφών (πριονωτή, τριγωνική , τετράγωνη και λευκός θόρυβος). Δηλαδή για να καταλάβεις, ήχοι που δεν διαφέρουν και πολύ από ένα απλό μπλιπ-μπλιπ μπιιιιπ , πιιιιπ, φσσσσσ. Γιαυτό και τα πρώτα ηλεκτρονικά παιχνίδια τα λέγαμε και μπλιμπλίκια. Κατάλαβες;

 

adsr

Τo SID όμως μπορούσε να κάνει και κάτι άλλο. Την ώρα που η κυματομορφή, ο ήχος δηλαδή , ήταν στον αέρα, ο προγραμματιστής μπορούσε να στείλει 4 διαφορετικές εντολές σε αυτή την κυματομορφή και να της “πειράζει” το “σχήμα” της όπως ακριβώς ο αγγειοπλάστης “πειράζει” τον πηλό, ή όπως ο γλύπτης “πειράζει” το μάρμαρο.

Ας δούμε τώρα πως ακριβώς ο Rob άλλαζε την χροιά ενός ήχου, πως δημιουργούσε δηλαδή έναν ήχο από το μηδέν. Είπαμε ότι ο Rob είχε στην διάθεση του 4 είδη κυματομορφών αλλά και 4 “εργαλεία” για να τις “πλάθει”  όπως ο αγγειοπλάστης. Το πρώτο “εργαλείο” που είχε στην διάθεση του λέγονταν Attack και το βλέπεις στο πρώτο κομμάτι του διαγράμματος. Το Attack καθόρίζε πόσο “απότομα” ανυψώνεται η κυματομορφή στην “αρχή” ενός ήχου.  Το δεύτερο εργαλείο που είχε στην διάθεση του λέγονταν Decay και καθόρίζε πόσο “απότομα” άλλαζε πορεία αυτή η κυματομορφή μετά το Attack. Το Decay το βλέπεις στο δεύτερο τμήμα του διαγράμματος.  Το τρίτο εργαλείο που είχε στην διάθεση του λέγονταν Sustain και καθόρίζε πόσην ώρα ό ήχος θα μείνει απαράλλαχτος από την κατάσταση Decay.  Το Sustain το βλέπεις στο 3 κομμάτι του διαγράμματος. Το τελευταίο εργαλείο που είχε στην διάθεση του λέγονταν Release και καθόριζε πόσο απότομα κατεβαίνει η κυματομορφή όταν ο ήχος τελειώνει. Το Release to βλέπεις στο τέταρτο κομμάτι του διαγράμματος.

Δες τώρα ένα απόσπασμα των μουσικών εντολών του Rob , ένα γραπτό παράδειγμα από την μουσική-πρόγραμμα, για να πάρεις έτσι μια γεύση από μια “νότα” ενός προγραμματιστή, που -σκέψου πόσο συγκλονιστικό είναι – δεν “γράφει” μόνο την μουσική αλλά “δημιουργεί” και “γλυπτούς” ήχους!

 SEI
      LDA #<IRQ
      LDX #>IRQ
      STA $0314
      STX $0315
      LDA #$7F
      STA $DC0D
      LDA #$1B
      STA $D01B
      LDA #$01
      STA $D01A

Εκείνη την νύχτα , ο Rob Hubbard έγραψε μερικές χιλιάδες γραμμές κώδικα σαν αυτές που βλέπεις παραπάνω, ξεγελώντας το SID και πλάθοντας με τον προγραμματιστικό πηλό του τα ηχητικά κύματα με έναν τρόπο που ποτέ δεν είχε φανταστεί ο κατασκευαστής του SID .

 

Εκείνη την νύχτα ο Rob έγραψε αυτό :

 

 

και για κάποιο άλλο παιχνίδι έγραψε αυτό :

 

 

Να σου κάνω μια ακόμα ερώτηση; Τι είναι τέχνη; Υπάρχει σαφής ορισμός; Είναι μήπως κάτι μετρήσιμο; Στους ανθρώπους των επιστημών αρέσει να ποσοτικοποιούν και να μετρούν τις ιδιότητες των πραγμάτων: Ύψος , πλάτος, μήκος, βάρος… Αν όμως η τέχνη δεν είναι τελικά κάτι μετρήσιμο και είναι “κάτι” που δεν περιγράφεται με λόγια τότε “Που Είναι η Τέχνη”;

Ναι εντάξει, είναι σε έναν πίνακα ζωγραφικής, είναι σε μία θεατρική παράσταση, είναι σε ένα γλυπτό, σε ένα μυθιστόρημα…

… εγώ νομίζω ότι είναι και προγραμματιστικά γλυπτά του Rob Hubbard. Σου το ξαναλέω : Εγώ νομίζω ότι και ο Προγραμματισμός είναι Τέχνη.

 

image

IT Director , Programmer, Broadcast Graphics Expert, GFX Automation Specialist, Social Media Enthusiast, CEO and Owner of FreshTech , Constant Dreamer, Proud Father of two boys

LinkedIn 

  • Στέφανος Πουλογιάννης

    Βεβαίως,κατά την άποψήμου μου,είναι και Τέχνη,Νίκο, η Πληροφορική. Θέτεις το ζήτημα βέβαια σχεδόν φιλοσοφικά.Διότι κατα την τρέχουσα αντίληψη οι Τέχνες (οι λεγόμενες Καλές),είναι γνωστές.Τι όμως ακριβώς είναι τέχνη,παραμένει ως πλήρης ορισμός αναπάντητο.Μια και όμως αναφέρεσαι στη Μουσική, η οποία αναμφίβολα είναι Τέχνη, και τη σχέση της με την Πληροφορική,η σκέψη μου πηγαίνει στον σολίστ, το βιρτουόζο ενός μουσικού οργάνου.Μαγεμένοι από το άκουσμά του νιώθουμε το μουσικό του όργανο σαν προέκταση του σολίστα!
    Η Πληροφορική λοιπόν νομίζω ότι στα χέρια ενός βιρτουόζου είναι και Τέχνη.Παράγει το μέσο της μουσικής,τον ήχο.Συνθέτει μελωδία κάνοντας χρήση του τόνου,της αρμονίας,του ρυθμού,του ηχοχρώματος και της υφής, είτε με οργανωμένες συνθέσεις είτε αυτοσχεδιάζοντας.Μπορεί να ακολουθήσει τα σειριακά βήματα της δυτικότροπης μουσικής,επτατονικής ή δωδεκατονικής ή τα βήματα του πρωτοποριακού Έλληνα συνθέτη και αρχιτέκτονα Γιάννη Ξενάκη,ο οποίος,αν δεν με απαντά η μνήμη,χρησιμοποίησε ως μέσο σύνθεσης και ηλεκτρονικό υπολογιστή.
    Τα βήματα του σημαντικού αυτού δημιουργού του 20ου αιώνα ήταν πρωτοποριακά.Συνδύαζαν τη Μουσική και την Αρχιτεκτονική με τα Μαθηματικά και τη Φυσική.Παράλληλα θεωρούσε τη Φιλοσοφία, την Επιστήμη και την Τέχνη ως αδιάσπαστα μέρη μιας ενότητας!
    Εύγε Νίκο,σε ευχαριστώ για την αφορμή που μας έδωσες να προβληματιστούμε.Καλή συνέχεια!

  • Konstantinos Dimakis

    Η αρχική σου αναφορά στα κουτάκια Νίκο έχει και ψυχολογικές προεκτάσεις. Οι
    άνθρωποι τείνουν να οργανώνουν “ψηφιακά” τον εξωτερικό τους κόσμο όταν υπάρχει “χάος” στο εσωτερικό τους. Άνθρωποι πιο ισορροπημένοι με το «μέσα» τους δεν το χρειάζονται αυτό – και τέτοιοι είναι οι ποιητές, οι ζωγράφοι, … και οι προγραμματιστές (;)

    Όσο για την τέχνη και τον προγραμματισμό δεν θα μπορούσα να συμφωνήσω περισσότερο. Αχ τι μας θύμησες με το commando … 45’ να φορτώσει από το datassette του C64… και αν κολλούσε, άστα …

    • Εξαιρετική παρατήρηση, δεν το είχα σκεφτεί Κώστα, thanks. Χαίρομαι που συμφωνείς, έχω συζητήσει το θέμα με αξιόλογα άτομα τα οποία όμως δεν έχουν γράψει έστω μια γραμμή κώδικα στην ζωή τους και θεώρησαν το συγκεκριμένο post υπερβολικό. Είναι κρίμα που είναι τόσο δύσκολο να “δει” ένας μη-προγραμματιστής αυτή την ομορφιά.

      Είχες Commodore και έπαιζες Commando; Α ρε αδερφή ψυχή!!!

Copyright © 2013 Freshtech · All rights reserved ·