Προς το περιεχόμενο

ξερει κανεις απο matlab?


Προτεινόμενες αναρτήσεις

Το περιβόητο πμ είναι το παρακάτω:

 

Εχει ενας φιλος ενα θεμα με το matlab σε μια εργασια στη σχολη του.Και επειδη δεν εχει καμια σχεση με την μουσικη μου ειπε αν μπορω να τον βοηθησω..Του δωθηκε μια παρτιτουρα ενος κομματιου και πρεπει να την εισαγει στο matlab και να χρησιμοποιησει και μια περιβαλλουσα..Του δινεται μου ειπε και συναρτηση για τις νοτες οπως και η περιβαλλουσα..Λες να μπορεις να βοηθησεις?

 

Ευχαριστω.

 

 

Έχει να κάνει με νότες σε σχέση με μαθηματικά σε περιβάλλον matlab προφανώς. Κάποιος που ασχολείται ίσως θα μπορούσε να βρει μια λύση και έχω και εγώ ενδιαφέρον να μάθω. Εγώ δεν μπόρεσα να βοηθήσω γιατί δεν μου έχει τύχει ποτέ κάτι παρόμοιο. Ήλπιζα να μην έχει matlab σε σχέση με νότες γιατί από θεωρία μουσικής δεν ξέρω και πολλά  :P

Αλήθεια, η περιβάλλουσα τί είναι?  ???

 

@DnBmaniak: (αν παρακολουθείς το thread που άνοιξες) δεν ξέρω γιατί έμεινε κρυφή η απορία σου, ελπίζω η δημοσιοποίηση να μην σε ενοχλήσει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ας τρέξει αυτό (αν και μάλλον δεν χρειάζεται πια η απάντηση).

 

Fs=8192;  //ρυθμός δειγματοληψίας (αν θυμάμαι καλά)

 

t1=0.0:1/Fs:0.25;  //δείγματα (ορίζει την διάρκεια)

y1=sin(0*2*pi*t1);  //παραγωγή σήματος f(x)=sin(notefreq*2π*t)  (εδώ επειδή freq=0 ,εχουμε παύση)

 

t2=    //νέα δείγματα (από 0.25 όμως)

y2=  //νέα νότα

 

.

.

.

 

μετά

 

y=[y1 y2 ... ];  //ένωση σήματος

plot(t1,y1,t2,y2,....)  //γραφική απεικόνιση

soundsc(y)  //παραγωγή συνολικού ήχου

wavwrite(y,8192,16,'Song.wav')  //αν θέλει να το γράψει σε αρχείο

Ο Αριστοτέλης γίνεται κτήμα του Γερμανού που τον μελετά, όχι του Έλληνα που τον αγνοεί

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderator

Αυτό που λέει ο theoctapus θα τρέξει.

Θα πρέπει να μετατρέψει τις νότες και τις αξίες σε αντίστοιχες συχνότητες και χρονικά διαστήματα.

"Κατασκευάζοντας" και τις παύσεις με μηδενικά είναι ένας τρόπος για να αποφύγεις να "μετράς" που θα πρέπει να "γράψεις" την κάθε νότα.

Ο (λίγο) γρηγορότερος τρόπος θα ήταν να δημιουργήσεις ένα αρχικό διάνυσμα με μηδενικά με μήκος Fs*Τ όπου Τ η συνολική διάρκεια του "κομματιού",

y=zeros(1, Fs*Τ);            (%Τ ακέραιος σε sec.)

 

στη συνέχεια να δημιουργήσεις τις νότες και να πας να τις "γράψεις" στις αντίστοιχες θέσεις του (αρχικά γεμάτο μηδενικά)  διανύσματος.

 

Σε σχέση με την περιβάλλουσα, νομίζω ότι θέλει να υλοποιήσει κατι σαν volume automation.

θα εφτιαχνα ενα αλλο διάνυσμα, με μήκος όσο και το y και με τιμές απο 0 ως 1 και θα το πολλαπλασίαζα (pointwise) με το y.

y=peribal.*y;

 

Παντως, για πανω απο 2-3 νότες είναι η αποθέωση της "χαμαλικής" να αντιμετωπιστεί έτσι αυτό το πρόβλημα.

 

Η πιο "σωστή" προσέγγιση θα ήταν να δημιουργηθούν συναρτήσεις που να παράγουν τις κυματομορφές (με ορίσματα: νότα, tempo, αξία, συχνότητα δειγματοληψίας) και να παίρνει το script τις νότες του κομματιού απο ενα αρχείο (π.χ. text)

 

Αν "επιτρέπεται" η χρήση midi, τότε υπάρχουν και έτοιμες λύσεις π.χ.

 

http://www.kenschutte.com/midi

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Παντως, για πανω απο 2-3 νότες είναι η αποθέωση της "χαμαλικής" να αντιμετωπιστεί έτσι αυτό το πρόβλημα.

 

Aκριβως... Θα δουλεψει μεν, αλλα αν μιλαμε για καποιο κομματι και οχι ενα-δυο μετρα, ειναι ψιλο-τραγικο approach το συγκεκριμενο. Καταλαβαινω φυσικα οτι ο octapus το εγραψε για να εξηγησει την λογικη, και παρα πολυ καλα εκανε.

Δυστυχως η ενασχοληση μου με το matlab περιοριζεται στη χρηση που του εκανα μια φορα για μερικες ωρες στα πλαισια ενος εργαστηριου, οποτε δε μπορω να βοηθησω πρακτικα.

 

Να ρωτησω κατι φιλοσοφικο...το ρυθμο δειγματοληψιας γιατι τον ορισες σε αυτο το μεγεθος?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όσα έγραψα ήταν από μια εργασία από το 2000. Η συγκεκριμένη εργασία είχε αρκετή πλάκα τότε, ειδικά αν αντί συνημίτονο χρησιμοποιηθεί μια άλλη συνάρτηση περιοδική ή σχεδόν περιοδική και πειραχτούν λίγο τα ορίσματα προκύπτουν ενδιαφέροντα πράγματα.

 

Όποιος γουστάρει ας δοκιμάσει το επισυναπτόμενο πρόγραμμα. Έχει πλάκα, ειδικά τα presets (πόσες ώρες είχα φαέι ψάχνοντας "εύηχες" συναρτήσεις, ένας θεός ξέρει). Η χαρά της ανακάλυψης.

 

Να ρωτησω κατι φιλοσοφικο...το ρυθμο δειγματοληψιας γιατι τον ορισες σε αυτο το μεγεθος?

 

Καλή ερώτηση. Δεν θυμαμαι καθόλου  :P

asxeto2.zip

Ο Αριστοτέλης γίνεται κτήμα του Γερμανού που τον μελετά, όχι του Έλληνα που τον αγνοεί

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ρωταω γιατι θα επρεπε να ειναι τουλαχιστον διπλασιο απο την υψηλοτερη συχνοτητα που θα εχεις στο σημα σου...οποτε για το ακουστικο φασμα, θα ελεγες κατι στα 40kHz και πανω. Αν το εχεις τοσο χαμηλα θα εχεις αρκετο aliasing.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το περιβόητο πμ είναι το παρακάτω:

 

Εχει ενας φιλος ενα θεμα με το matlab σε μια εργασια στη σχολη του.Και επειδη δεν εχει καμια σχεση με την μουσικη μου ειπε αν μπορω να τον βοηθησω.. [glow=red,2,300]Του δωθηκε μια παρτιτουρα ενος κομματιου και πρεπει να την εισαγει στο matlab και να χρησιμοποιησει και μια περιβαλλουσα.. Του δινεται μου ειπε και συναρτηση για τις νοτες οπως και η περιβαλλουσα..[/glow]Λες να μπορεις να βοηθησεις?

 

Ευχαριστω.

 

 

Έχει να κάνει με νότες σε σχέση με μαθηματικά σε περιβάλλον matlab προφανώς. Κάποιος που ασχολείται ίσως θα μπορούσε να βρει μια λύση και έχω και εγώ ενδιαφέρον να μάθω. Εγώ δεν μπόρεσα να βοηθήσω γιατί δεν μου έχει τύχει ποτέ κάτι παρόμοιο. Ήλπιζα να μην έχει matlab σε σχέση με νότες γιατί από θεωρία μουσικής δεν ξέρω και πολλά  :P

 

Αυτό μου θυμίζει μια εργασία που είχα κοιτάξει για κάποιο άλλο μέλος του φόρουμ πριν μερικούς μήνες. Μήπως είναι η ίδια; Δείτε το σχετικό θέμα εδώ: http://www.noiz.gr/index.php?topic=174632

Στο τελευταίο post μου υπάρχουν επεξηγηματικά σχόλια για το τι γίνεται σε κάθε γραμμή του κώδικα και γενικές οδηγίες για την υλοποίηση καθώς δεν γνωρίζω από matlab.

 

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

 

Αλήθεια, η περιβάλλουσα τί είναι?  ???

Η περιβάλλουσα (envelope) είναι μια λίστα τιμών στο διάστημα [0,1] που εφαρμόζεται (πολλαπλασιάζεται) σε κάθε νότα ώστε να εξομοιώσει τις διάφορες φάσεις της έντασης κατά την διάρκεια της. Πχ. το συνηθισμένο ADSR envelope που ρυθμίζουμε στα synths.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Παίζει να είναι συμφοιτητές, ο ένας έκανε την εργασία νωρίτερα και ο άλλος τώρα στην εξεταστική, τελευταία στιγμή. Το ΝΟΙΖ είναι και αυτό μέρος της παραπαιδείας. Φροντιστήριο-λύσεις ασκήσεων και θεωρία!  ;D ;D ;D

Στην επόμενη εργασία μου θα κάνω κι εγώ ένα ανάλογο tread  :P

 

Ευχαριστώ πολύ για την περιβάλλουσα... Αν κατάλαβα καλά πρόκειται για ένα διάνυσμα που πολλαπλασιάζεται με τη νότα...

Η νότα εκφράζεται ως διάνυσμα και αυτή? Με συναρτήσεις δηλαδή μπορούμε να τις μετατρέψουμε σε μορφή αριθμών?

Για να φανταστώ τι κάνει η περιβάλλουσα, όσο ακούμε μία νότα (sustain) η έντασή της (volume) αλλάζει όπως θες εσύ ανάλογα με την περιβάλλουσα που θα θέσεις? Αυτή η περιβάλλουσα είναι ίδια για όλες τις νότες που έχουμε ή μπορεί κάθε νότα να έχει άλλη περιβάλλουσα?

Ενδιαφέροντα όλα αυτά, ειδικά για κάποια εφφέ κλπ σε ηλεκτρονική μουσική υποθέτω...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η νότα εκφράζεται ως διάνυσμα και αυτή? Με συναρτήσεις δηλαδή μπορούμε να τις μετατρέψουμε σε μορφή αριθμών?

 

H συγκεκριμμένη εργασία απαιτεί την προσέγγιση δημιουργίας ενός κομματιού απ'το μηδέν, (δηλαδή sample προς sample) οπότε πρέπει να δουλέψεις με διανύσματα τιμών (τις νότες με τις περιβάλλουσες) τα οποία πρέπει να γράψεις σε κατάλληλη θέση σε μια μεγαλύτερη λίστα-διάνυσμα, που αναπαριστά ολόκληρο το κομμάτι. Βέβαια, δεν νομίζω να υπάρχει άνθρωπος που να δουλεύει έτσι ένα μουσικό κομμάτι, αλλά μην ξεχνάς ότι πρόκειται για εργασία εκπαιδευτικού χαρακτήρα.

 

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

Το πρόβλημα είναι ότι η συνάρτηση που παράγει τις ηχητικές τιμές δίνει σταθερή ένταση καθ'όλη τη διάρκεια της νότας. Εδώ έρχεται η περιβάλλουσα, ώστε να δημιουργήσουμε ένα πιο φυσικό fade in στην αρχή της νότας (attack), μετά να ρίξουμε διαδοχικά την ένταση σε μια σταθερή τιμή (decay και sustain) και μετά να κάνουμε ένα fade out (release) λίγο πριν το τέλος της αξίας της.

 

Αυτή η περιβάλλουσα είναι ίδια για όλες τις νότες που έχουμε ή μπορεί κάθε νότα να έχει άλλη περιβάλλουσα?

Σε προγραμματιστικό περιβάλλον μπορείς να κάνεις ότι θες με την έννοια της περιβάλλουσας. Από ένα απλό τρέμολο μέχρι amplitude modulation με βάση κάποιο άλλο σήμα! Το θέμα είναι τι θέλεις να πετύχεις. Όσον αφορά τη μουσική, στα περισσότερα συνθ πχ. υπάρχει η δυνατότητα να μεταβάλλεις την διάρκεια του attack ή την ένταση του sustain ανάλογα με το πόσο δυνατά πατάς το πλήκτρο. (και άλλα πολλά βέβαια)

 

Anyway... δεν είχα προσέξει ότι το θέμα πήγε στην παιδική χαρά! Μάλλον ένα απλό λινκ στο προηγούμενο θέμα θα ήταν αρκετό...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργήστε λογαριασμό

Γραφτείτε στην παρέα μας. Είναι εύκολο!

Δημιουργία λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Σύνδεση
×
×
  • Δημοσιεύστε κάτι...

Τα cookies

Τοποθετήθηκαν cookies στην συσκευή σας για να είναι πιο εύκολη η περιήγηση στην σελίδα. Μπορείτε να τα ρυθμίσετε, διαφορετικά θεωρούμε πως είναι OK να συνεχίσετε. Πολιτική απορρήτου