faded Δημοσιευμένο 6 Ιουνίου 2010 Share Δημοσιευμένο 6 Ιουνίου 2010 Το περιβόητο πμ είναι το παρακάτω: Εχει ενας φιλος ενα θεμα με το matlab σε μια εργασια στη σχολη του.Και επειδη δεν εχει καμια σχεση με την μουσικη μου ειπε αν μπορω να τον βοηθησω..Του δωθηκε μια παρτιτουρα ενος κομματιου και πρεπει να την εισαγει στο matlab και να χρησιμοποιησει και μια περιβαλλουσα..Του δινεται μου ειπε και συναρτηση για τις νοτες οπως και η περιβαλλουσα..Λες να μπορεις να βοηθησεις? Ευχαριστω. Έχει να κάνει με νότες σε σχέση με μαθηματικά σε περιβάλλον matlab προφανώς. Κάποιος που ασχολείται ίσως θα μπορούσε να βρει μια λύση και έχω και εγώ ενδιαφέρον να μάθω. Εγώ δεν μπόρεσα να βοηθήσω γιατί δεν μου έχει τύχει ποτέ κάτι παρόμοιο. Ήλπιζα να μην έχει matlab σε σχέση με νότες γιατί από θεωρία μουσικής δεν ξέρω και πολλά :P Αλήθεια, η περιβάλλουσα τί είναι? ??? @DnBmaniak: (αν παρακολουθείς το thread που άνοιξες) δεν ξέρω γιατί έμεινε κρυφή η απορία σου, ελπίζω η δημοσιοποίηση να μην σε ενοχλήσει. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες More sharing options...
theoctapus Δημοσιευμένο 6 Ιουνίου 2010 Share Δημοσιευμένο 6 Ιουνίου 2010 Ας τρέξει αυτό (αν και μάλλον δεν χρειάζεται πια η απάντηση). 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') //αν θέλει να το γράψει σε αρχείο Ο Αριστοτέλης γίνεται κτήμα του Γερμανού που τον μελετά, όχι του Έλληνα που τον αγνοεί Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες More sharing options...
Moderator harilatron Δημοσιευμένο 6 Ιουνίου 2010 Moderator Share Δημοσιευμένο 6 Ιουνίου 2010 Αυτό που λέει ο 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 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες More sharing options...
odis13 Δημοσιευμένο 6 Ιουνίου 2010 Share Δημοσιευμένο 6 Ιουνίου 2010 Παντως, για πανω απο 2-3 νότες είναι η αποθέωση της "χαμαλικής" να αντιμετωπιστεί έτσι αυτό το πρόβλημα. Aκριβως... Θα δουλεψει μεν, αλλα αν μιλαμε για καποιο κομματι και οχι ενα-δυο μετρα, ειναι ψιλο-τραγικο approach το συγκεκριμενο. Καταλαβαινω φυσικα οτι ο octapus το εγραψε για να εξηγησει την λογικη, και παρα πολυ καλα εκανε. Δυστυχως η ενασχοληση μου με το matlab περιοριζεται στη χρηση που του εκανα μια φορα για μερικες ωρες στα πλαισια ενος εργαστηριου, οποτε δε μπορω να βοηθησω πρακτικα. Να ρωτησω κατι φιλοσοφικο...το ρυθμο δειγματοληψιας γιατι τον ορισες σε αυτο το μεγεθος? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες More sharing options...
theoctapus Δημοσιευμένο 6 Ιουνίου 2010 Share Δημοσιευμένο 6 Ιουνίου 2010 Όσα έγραψα ήταν από μια εργασία από το 2000. Η συγκεκριμένη εργασία είχε αρκετή πλάκα τότε, ειδικά αν αντί συνημίτονο χρησιμοποιηθεί μια άλλη συνάρτηση περιοδική ή σχεδόν περιοδική και πειραχτούν λίγο τα ορίσματα προκύπτουν ενδιαφέροντα πράγματα. Όποιος γουστάρει ας δοκιμάσει το επισυναπτόμενο πρόγραμμα. Έχει πλάκα, ειδικά τα presets (πόσες ώρες είχα φαέι ψάχνοντας "εύηχες" συναρτήσεις, ένας θεός ξέρει). Η χαρά της ανακάλυψης. Να ρωτησω κατι φιλοσοφικο...το ρυθμο δειγματοληψιας γιατι τον ορισες σε αυτο το μεγεθος? Καλή ερώτηση. Δεν θυμαμαι καθόλου :P asxeto2.zip Ο Αριστοτέλης γίνεται κτήμα του Γερμανού που τον μελετά, όχι του Έλληνα που τον αγνοεί Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες More sharing options...
odis13 Δημοσιευμένο 6 Ιουνίου 2010 Share Δημοσιευμένο 6 Ιουνίου 2010 Ρωταω γιατι θα επρεπε να ειναι τουλαχιστον διπλασιο απο την υψηλοτερη συχνοτητα που θα εχεις στο σημα σου...οποτε για το ακουστικο φασμα, θα ελεγες κατι στα 40kHz και πανω. Αν το εχεις τοσο χαμηλα θα εχεις αρκετο aliasing. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες More sharing options...
ex-infectme247 Δημοσιευμένο 6 Ιουνίου 2010 Share Δημοσιευμένο 6 Ιουνίου 2010 Το περιβόητο πμ είναι το παρακάτω: Εχει ενας φιλος ενα θεμα με το 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. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες More sharing options...
faded Δημοσιευμένο 6 Ιουνίου 2010 Share Δημοσιευμένο 6 Ιουνίου 2010 Παίζει να είναι συμφοιτητές, ο ένας έκανε την εργασία νωρίτερα και ο άλλος τώρα στην εξεταστική, τελευταία στιγμή. Το ΝΟΙΖ είναι και αυτό μέρος της παραπαιδείας. Φροντιστήριο-λύσεις ασκήσεων και θεωρία! ;D ;D ;D Στην επόμενη εργασία μου θα κάνω κι εγώ ένα ανάλογο tread :P Ευχαριστώ πολύ για την περιβάλλουσα... Αν κατάλαβα καλά πρόκειται για ένα διάνυσμα που πολλαπλασιάζεται με τη νότα... Η νότα εκφράζεται ως διάνυσμα και αυτή? Με συναρτήσεις δηλαδή μπορούμε να τις μετατρέψουμε σε μορφή αριθμών? Για να φανταστώ τι κάνει η περιβάλλουσα, όσο ακούμε μία νότα (sustain) η έντασή της (volume) αλλάζει όπως θες εσύ ανάλογα με την περιβάλλουσα που θα θέσεις? Αυτή η περιβάλλουσα είναι ίδια για όλες τις νότες που έχουμε ή μπορεί κάθε νότα να έχει άλλη περιβάλλουσα? Ενδιαφέροντα όλα αυτά, ειδικά για κάποια εφφέ κλπ σε ηλεκτρονική μουσική υποθέτω... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες More sharing options...
ex-infectme247 Δημοσιευμένο 7 Ιουνίου 2010 Share Δημοσιευμένο 7 Ιουνίου 2010 Η νότα εκφράζεται ως διάνυσμα και αυτή? Με συναρτήσεις δηλαδή μπορούμε να τις μετατρέψουμε σε μορφή αριθμών? H συγκεκριμμένη εργασία απαιτεί την προσέγγιση δημιουργίας ενός κομματιού απ'το μηδέν, (δηλαδή sample προς sample) οπότε πρέπει να δουλέψεις με διανύσματα τιμών (τις νότες με τις περιβάλλουσες) τα οποία πρέπει να γράψεις σε κατάλληλη θέση σε μια μεγαλύτερη λίστα-διάνυσμα, που αναπαριστά ολόκληρο το κομμάτι. Βέβαια, δεν νομίζω να υπάρχει άνθρωπος που να δουλεύει έτσι ένα μουσικό κομμάτι, αλλά μην ξεχνάς ότι πρόκειται για εργασία εκπαιδευτικού χαρακτήρα. Σε αυτή την περίπτωση είναι εύκολο να αναπαραστήσεις μια νότα με ένα σύνολο αριθμητικών τιμών καθώς πρόκειται για απλά ημίτονα, την πιο απλή μορφή ήχου με μία μόνο συχνότητα και χωρίς αρμονικές, που δίνεται από μια έτοιμη μαθηματική συνάρτηση. Σε διαφορετική περίπτωση θα ήταν αρκετά πιο δύσκολα τα πράγματα. Το πρόβλημα είναι ότι η συνάρτηση που παράγει τις ηχητικές τιμές δίνει σταθερή ένταση καθ'όλη τη διάρκεια της νότας. Εδώ έρχεται η περιβάλλουσα, ώστε να δημιουργήσουμε ένα πιο φυσικό fade in στην αρχή της νότας (attack), μετά να ρίξουμε διαδοχικά την ένταση σε μια σταθερή τιμή (decay και sustain) και μετά να κάνουμε ένα fade out (release) λίγο πριν το τέλος της αξίας της. Αυτή η περιβάλλουσα είναι ίδια για όλες τις νότες που έχουμε ή μπορεί κάθε νότα να έχει άλλη περιβάλλουσα? Σε προγραμματιστικό περιβάλλον μπορείς να κάνεις ότι θες με την έννοια της περιβάλλουσας. Από ένα απλό τρέμολο μέχρι amplitude modulation με βάση κάποιο άλλο σήμα! Το θέμα είναι τι θέλεις να πετύχεις. Όσον αφορά τη μουσική, στα περισσότερα συνθ πχ. υπάρχει η δυνατότητα να μεταβάλλεις την διάρκεια του attack ή την ένταση του sustain ανάλογα με το πόσο δυνατά πατάς το πλήκτρο. (και άλλα πολλά βέβαια) Anyway... δεν είχα προσέξει ότι το θέμα πήγε στην παιδική χαρά! Μάλλον ένα απλό λινκ στο προηγούμενο θέμα θα ήταν αρκετό... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες More sharing options...
Προτεινόμενες αναρτήσεις
Δημιουργήστε λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργήστε λογαριασμό
Γραφτείτε στην παρέα μας. Είναι εύκολο!
Δημιουργία λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Σύνδεση