Πίνακας περιεχομένων:

Γάντι χορού: 9 βήματα
Γάντι χορού: 9 βήματα

Βίντεο: Γάντι χορού: 9 βήματα

Βίντεο: Γάντι χορού: 9 βήματα
Βίντεο: 9. Ζεϊμπέκικος-διδασκαλία Δημήτρης Κυριαζής 2024, Ιούλιος
Anonim
Γάντι χορού
Γάντι χορού

Σε αυτό το σεμινάριο, θα σας καθοδηγήσω στο σχεδιασμό ενός γαντιού που σας επιτρέπει να αλληλεπιδράτε με τη μουσική μέσω του χορού. Θα φτιάξετε ένα γάντι με δυνατότητα επιταχυνσιόμετρου, θα σχεδιάσετε μια σύνθεση στο Ableton και, στη συνέχεια, θα συνδέσετε και τα δύο με τόσο περίπλοκο ή απλό τρόπο όπως θέλετε!

Προμήθειες

  • Ableton (ή δωρεάν δοκιμή)
  • Ένα Arduino
  • Καλώδια βραχυκύκλωσης
  • Συγκολλητικό σίδερο
  • Χαρτόνι
  • Πυροβόλο θερμής κόλλας
  • Πολλή φαντασία

Βήμα 1: Έννοια

Αυτό το έργο έχει σχεδιαστεί για να είναι διασκεδαστικό. Εάν ο τρόπος που λειτουργεί το παράδειγμα έργου σε αυτό το σεμινάριο δεν είναι διασκεδαστικός για εσάς, επανασχεδιάστε το!

Σας συνιστώ να βάλετε μερικά από τα αγαπημένα σας τραγούδια, να μετακινήσετε τα χέρια σας σε αυτά και να δείτε τι συμβαίνει. Μετακινείτε τα χέρια σας πάνω-κάτω; Διπλα διπλα? Σιγά ή γρήγορα; Ποιες πτυχές της μουσικής σε κάνουν να θέλεις να κουνήσεις τα χέρια σου; Εάν έχετε καταγράψει μια λίστα με αυτά, πιθανότατα θα μπορείτε να βρείτε κάποιους τρόπους για να ενσωματώσετε τις κινήσεις που απολαμβάνετε στους τελικούς αλγορίθμους σας.

Ακολουθούν οι κινήσεις που χρησιμοποίησα:

  • Μια γρήγορη κίνηση πάνω-κάτω ενεργοποιεί την έναρξη του τραγουδιού, των ντραμς ή του μπάσου. (Αυτά συμβαίνουν σε διαφορετικά σημεία του τραγουδιού, όχι απαραίτητα ταυτόχρονα!)
  • Μια αργή, κεκλιμένη κίνηση από πλευρά σε πλευρά προκαλεί έναν πιο ηχώ, υψηλό ήχο.
  • Σε ένα συγκεκριμένο τμήμα του τραγουδιού, η κλίση του χεριού μου προς τα πάνω κάνει τη μουσική να ησυχάσει - έτσι την έχω «πιάσει» στην κλειστή γροθιά μου.

Χρησιμοποιήστε αυτά ή φτιάξτε τα δικά σας!

(Σημειώστε: αυτό το σεμινάριο δεν καλύπτει τον τρόπο δημιουργίας μουσικής ή μελωδιών ζωντανά στο Ableton! Εάν τηρήσετε αυτές τις οδηγίες, θα μπορείτε μόνο να αυξήσετε/μειώσετε τον όγκο των κομματιών ή την εφαρμογή ηχητικών εφέ.)

Βήμα 2: Προετοιμάστε το Επιταχυνσιόμετρο

Προετοιμάστε το Επιταχυνσιόμετρο
Προετοιμάστε το Επιταχυνσιόμετρο

Αρχικά, υπολογίστε τι τύπο επιταχυνσιόμετρου έχετε. Χρησιμοποίησα αυτό? οποιοδήποτε επιταχυνσιόμετρο τριών αξόνων θα κάνει. (Try δοκιμάστε έναν άλλο τύπο αισθητήρα εάν θέλετε να αγριέψετε.) Βεβαιωθείτε ότι γνωρίζετε πώς να διαβάζετε τα δεδομένα του επιταχυνσιόμετρου από το Arduino. Mayσως χρειαστεί να κατεβάσετε μια βιβλιοθήκη για το επιταχυνσιόμετρό σας εάν χρησιμοποιεί οτιδήποτε πιο περίπλοκο από την αναλογική είσοδο.

Αφού το δοκιμάσετε με ένα breadboard, κολλήστε κοντά χρωματικά κωδικοποιημένα καλώδια στις ακίδες του επιταχυνσιόμετρο σας. Βάλτε ένα κόκκινο σύρμα στον πείρο τροφοδοσίας, ένα μαύρο σύρμα στον πείρο γείωσης και τυχόν άλλα απαραίτητα καλώδια για την επικοινωνία του επιταχυνσιόμετρου. (Εάν έχετε επιταχυνσιόμετρο I2C, αυτό θα είναι οι ακίδες SCL και SDA. Αν έχετε αναλογικό επιταχυνσιόμετρο, πιθανότατα θα υπάρχει μία ακίδα για κάθε έξοδο x, y και z.) Βεβαιωθείτε ότι η συγκόλλησή σας είναι συμπαγής και ώστε οι χάντρες να μην αλληλεπικαλύπτονται μεταξύ των παρακείμενων ακίδων.

Βήμα 3: Φτιάξτε το γάντι

Φτιάξτε το γάντι
Φτιάξτε το γάντι

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

Βήμα 4: Συνθέστε στο Ableton

Τώρα ήρθε η ώρα να συνθέσετε το τραγούδι που τελικά θα χρησιμοποιήσετε το γάντι για να το ελέγξετε. Προτείνω βρόχους Ableton που ακούγονται όλοι μαζί καλά, αλλά μπορούν να χρησιμοποιηθούν για σταδιακή ανάπτυξη: δοκιμάστε μελωδία, χορδές, μπάσο και κρουστά. Θα μπορείτε να χρησιμοποιήσετε το γάντι σας για να ελέγξετε πότε κάθε βρόχος παίζει ή όχι.

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

Ακολουθεί ένας σύνδεσμος για τη σύνθεσή μου που είναι συμβατή με το Arduino, σε περίπτωση που δεν θέλετε να γράψετε μια δική σας:

(Δυστυχώς, η διδασκαλία του Ableton δεν εμπίπτει στο πεδίο του σεμιναρίου. Ωστόσο, υπάρχουν πολλά καλά βίντεο με οδηγίες χρήσης και το Ableton έχει δωρεάν δοκιμή 90 ημερών! Σας προτείνω αυτό το βίντεο.)

Βήμα 5: Ξεκινήστε να χρησιμοποιείτε το Firmata

Ξεκινήστε να χρησιμοποιείτε το Firmata
Ξεκινήστε να χρησιμοποιείτε το Firmata

Για να επιτρέψετε στο Arduino να επικοινωνεί με το Ableton, θα πρέπει να χρησιμοποιήσετε μια βιβλιοθήκη που ονομάζεται Firmata. Θα χρειαστεί επίσης να κάνετε λήψη του Κιτ σύνδεσης για το Ableton.

Στο Ableton, κάντε κλικ στην επιλογή Πακέτα> Σετ σύνδεσης> Συσκευές στο μενού επάνω αριστερά και, στη συνέχεια, κάντε διπλό κλικ στην πρώτη συσκευή (Arduino) για να την προσθέσετε. Βεβαιωθείτε ότι θυμάστε σε ποιο κομμάτι Ableton προσθέσατε τη συσκευή!

Βήμα 6: Δοκιμή Firmata

Δοκιμαστικά Firmata
Δοκιμαστικά Firmata

Αρχικά, θα δοκιμάσουμε και θα βεβαιωθούμε ότι το Arduino επικοινωνεί με την Ableton. Ανεβάστε αυτό το απόσπασμα κώδικα στο Arduino σας και εκτελέστε το:

#include void analogWriteCallback (byte pin, int value) {if (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin), OUTPUT); analogWrite (PIN_TO_PWM (pin), τιμή); }} void setup () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.attach (ANALOG_MESSAGE, analogWriteCallback); Firmata.begin (57600);} void loop () {Firmata.sendAnalog (0, 800);}

Αυτό είναι το ελάχιστο που απαιτείται για την επικοινωνία με τη Firmata. Στέλνει συνεχώς έξοδο 800 (από 1024) στη θύρα 0 της συσκευής Firmata στο Ableton. Εάν ανεβάσετε αυτόν τον κώδικα στο Arduino σας ενώ έχετε ανοιχτή μια συσκευή Firmata στο Ableton, θα πρέπει να μοιάζει με την παραπάνω εικόνα. (Χάρτης θύρας 0 σε οτιδήποτε στο Ableton για να μπορείτε να δείτε τις τιμές.)

Μπορείτε να κάνετε κλικ στο κουμπί Χάρτης και στη συνέχεια σε οποιαδήποτε συμβατή με Firmata συσκευή στο Ableton για να προσθέσετε μια αντιστοίχιση μεταξύ της εισόδου που λαμβάνεται στη συγκεκριμένη θύρα και της τιμής αυτής της συσκευής Ableton. Τα εύκολα παραδείγματα περιλαμβάνουν την ένταση ήχου οποιουδήποτε κομματιού ή οποιασδήποτε κλήσης μέσα σε ένα ηχητικό εφέ. Εξερευνήστε και δείτε σε τι μπορείτε να βρείτε στο χάρτη!

Βήμα 7: Επηρεάστε τη μουσική με τις κινήσεις των χεριών σας

Επηρεάστε τη μουσική με τις κινήσεις των χεριών σας!
Επηρεάστε τη μουσική με τις κινήσεις των χεριών σας!

Μέχρι αυτή τη στιγμή, θα πρέπει να έχετε κάποια μουσική στο Ableton, ένα σενάριο Firmata στο Arduino σας και ένα γάντι επιταχυνσιόμετρου προσαρτημένο. Ας κάνουμε λίγη μουσική!

Αντιστοιχίστε τις θύρες της συσκευής Arduino στο Ableton σε διαφορετικά πράγματα (προτείνω ένταση κομματιού) και, στη συνέχεια, προσθέστε γραμμές κώδικα για την αποστολή δεδομένων σε κάθε θύρα από το Arduino.

Firmata.sendAnalog (θύρα, volumeLevel);

Χρησιμοποιήστε αυτόν τον κωδικό για κάθε θύρα Firmata.

Εάν θέλετε να κάνετε κάτι απλό, μπορείτε να στείλετε τις τιμές του επιταχυνσιόμετρου χωρίς επεξεργασία στις θύρες Ableton και να τις χαρτογραφήσετε από εκεί. Για μια πιο εξελιγμένη εμπειρία, μπορείτε να αποφασίσετε: ποιες τιμές του επιταχυνσιόμετρου πρέπει να ενεργοποιούν τους ήχους, πώς και πότε;

Στη συνέχεια, παίξτε όλους τους βρόχους Ableton, εκτελέστε τον κωδικό Arduino και χορέψτε!

(Αποποίηση ευθυνών: εάν σχεδιάζετε να δημιουργήσετε κάθε είδους περίπλοκο αλγόριθμο για το τραγούδι σας, μπορεί να χρειαστεί πολύς χρόνος για να τελειοποιήσετε. Το "Dance away" μπορεί να είναι λιγότερο ακριβές από το αναμενόμενο.)

Βήμα 8: Η κατηγορία κομματιών (μπόνους!)

Εάν δεν σας πειράζει να εμφανίζεται ο όγκος ή έχετε άλλο τρόπο να τον μετριάσετε, παραλείψτε αυτό το βήμα. Διαφορετικά, διαβάστε!

Παρατήρησα ότι η εναλλαγή έντασης από σίγαση σε πλήρη με μία κίνηση δημιουργεί κάποιους δυσάρεστους ήχους που αναδύονται και είναι ωραίο να μπορείς να εξασθενείς πιο αργά. Ωστόσο, είναι δύσκολο να το κάνετε αυτό στο σύγχρονο περιβάλλον προγραμματισμού του Arduino. Ορίστε λοιπόν κάποιος κώδικας για να εξαφανιστεί το σκάσιμο:

class Track {public: int volume; int volumeGoal; int updateSpeed; Track () {volume = 0; volumeGoal = 0; updateSpeed = 0; } void setVolumeGoal (int goal) {volumeGoal = goal; } int getVolumeGoal () {return volumeGoal; } void setUpdateSpeed (int fastness) {updateSpeed = fastness; } int getVolume () {επιστροφή τόμου; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } else if ((volume = updateSpeed)) {volume += updateSpeed; }} void mute (int fastness) {volumeGoal = 50; updateSpeed = σταθερότητα; } void full (int fastness) {volumeGoal = 950; updateSpeed = σταθερότητα; }};

Κάθε κομμάτι έχει έναν τρέχοντα όγκο, έναν όγκο στόχου και μια ταχύτητα με την οποία κινείται προς αυτόν τον όγκο στόχου. Όταν θέλετε να αλλάξετε την ένταση ενός κομματιού, καλέστε το setVolumeGoal (). Κάθε φορά που εκτελείτε τη λειτουργία βρόχου () στο Arduino σας, καλέστε το updateVolume () σε κάθε κομμάτι και, στη συνέχεια, στείλτε αυτές τις πληροφορίες στη Firmata με το getVolume (). Αλλάξτε την ταχύτητα ενημέρωσης για ταχύτερες ή πιο σταδιακές ξεθωριάσεις! Επίσης, αποφύγετε να ρυθμίσετε την ένταση στο 0, αν μπορείτε. Αντ 'αυτού, ορίστε το σε πολύ χαμηλή τιμή (η προεπιλογή στη σίγαση () είναι 100).

Βήμα 9: Παρακολούθηση μήκους, ρυθμών και άλλων (μπόνους!)

Μπορείτε να κάνετε πολλά πράγματα για να κάνετε τον ήχο που προκύπτει από το έργο σας να είναι πιο εύκολο να ακούσετε. Εδώ είναι μερικές επιλογές:

Μπορείτε να παρακολουθήσετε πόσο καιρό τρέχει το τραγούδι. Για να το κάνετε αυτό, θα πρέπει να καταλάβετε πότε ξεκίνησε το τραγούδι. Προτείνω ένα βρόχο while στη λειτουργία setup () που καθυστερεί την εκτέλεση του κώδικά σας έως ότου ανιχνεύσει μια κίνηση του χεριού. Αποθηκεύστε την ώρα έναρξης του τραγουδιού σε μια μεταβλητή χρησιμοποιώντας το millis () και ελέγξτε πόσο καιρό συνεχίζεται κάθε φορά που κάνετε βρόχο (). Μπορείτε να το χρησιμοποιήσετε για να ενεργοποιήσετε ή να απενεργοποιήσετε ορισμένες λειτουργίες σε συγκεκριμένες ώρες του τραγουδιού.

Εάν γνωρίζετε πόσο καιρό είναι οι βρόχοι σας σε χιλιοστά του δευτερολέπτου, μπορείτε επίσης να παρακολουθείτε πόσους βρόχους έχετε περάσει για μια πιο λεπτή κατανόηση της δομής του τραγουδιού!

Ένα άλλο πιθανό ζήτημα που μπορεί να αντιμετωπίσετε είναι το πότε να ξεκινήσετε και να σταματήσετε να παίζει ένα κομμάτι. Το έλυσα με την παρακολούθηση του ρυθμού μέτρησης του τραγουδιού. Τότε μπορούσα να παίξω κομμάτια για οποιονδήποτε αριθμό παλμών μετά από μια χειρονομία, αντί να το κόψω αμέσως. Αυτό κάνει τα πράγματα να κυλούν πολύ πιο ομαλά. Εδώ είναι ένα παράδειγμα:

if (millis () - lastLoop> = 4000) {βρόχοι += 1; lastLoop = millis (); για (int j = 0; j <8; j ++) {beatNow [j] = false; }} beat = (millis () - lastLoop) / 250; εάν (beat! = lastBeat) {lastBeat = beat; beatsLeft -= 1; }

Βεβαιωθείτε ότι έχετε ενημερώσει τους όγκους ανάλογα με τις τιμές του beatNow [beat] ή/και του beatsLeft. Παράδειγμα κώδικα που περιλαμβάνει σχεδόν τα πάντα σε αυτό το σεμινάριο, συν ορισμένα, επισυνάπτεται σε περίπτωση που θέλετε να το δείτε στην πράξη.

Συνιστάται: