DIY Project: Noiz Midi Controller

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

Η μνήμη δεν είναι τόσο μεγάλο πρόβλημα και το usb μου φαίνεται υπερβολή. Πόσες μνήμες να χρειαστεί κάποιος; 64; 128; 256; Το πολύ να προστεθεί ακόμα μια I2C η οποία θα επιλέγεται με μηχανικό διακόπτη κι αυτό θα  είναι optional στο τοπογραφικό ή θα μπορούσε να υπάρχει μια συστοιχία από HEADERS όπου θα μπαίνει πάνω ένα module επέκτασης (όταν δεν θα υπάρχει αυτό, απλά βραχυκυκλώνουμε με jumpers είσοδο και έξοδο).

Επίσης όσο μικρότερη ενεργειακή κατανάλωση τόσες περισσότερες πιθανότητες η συσκευή να τροφοδοτείται κατευθείαν από το περιφερειακό MIDI OUT (φυσικά θα υπάρχει και η δυνατότητα για χρήση εξωτερικού τροφοδοτικού).

Τέλος συμφωνώ στο να προγραμματίζεται από Η/Υ ύπό τον όρο πως θα δημιουργηθεί και μια έξτρα φορητή συσκευή η οποία θα περιλαμβάνει οθόνη υγρών κρυστάλλων, midi out (RS232) και πλήκτρα (ένα από αυτά POT για γρήγορη επιλογή)  ;D

 
Pantelis51 σ'ευχαριστώ.

Θα σου τα πω με νούμερα χωρίς να μπω σε λεπτομέρειες.

Δεν θα πάρω την χειρότερη περίπτωση αλλά μία μέση.

Έστω ότι κάποιος μουσικός έχει ένα XV-2020 (για παράδειγμα).

Η μία μνήμη που θα χρειαστεί (από τις 64 το ελάχιστο) θα είναι του τύπου:

1 x 13 = 13 bytes για επιλογή Performance Mode.

3 x 22 = 66 bytes για επιλογή Αραβικής κλίμακας (για μόλις 3 layers).

3 x 8 = 24 bytes για επιλογή ήχων (BankSelect & Program Change) σε τρία διαφορετικά parts.

Μέχρι εδώ μας κάνει σύνολο 103 bytes, ζωή ν'άχουνε για το ένα MidiOut.

Στα 4 MidiOut μας κάνει 4 x 103 = 412 bytes.

Μέσα δεν σου έβαλα εφφέ (Reverb, Delay , Reset Controllers κλπ). Ας πούμε ότι τ'αφήνουμε αυτά εκτός για τον συγκεκριμένο χρήστη. Δηλαδή δεν θα τα χρησιμοποιήσει. Ας πούμε...

Τώρα πες μου εσύ αφού αφαιρέσεις και κάποια bytes από την EEPROM για το TOC, σε μία 32Kbytes μνήμη πόσα πακέτα των 412 bytes χωράνε ?

Αυτά μόνο για τις μνήμες (64). Για τα faders , encoders , Foot Switches , Foot controllers κλπ ανά μνήμη, θα χρειαστούν και άλλα bytes. Οπότε ?

Αναθεώρησα αυτό που σκεφτόμουν (βλέπε σχετικό post με Gant)


και τελικά χρειαζόμαστε παραπάνω bytes ελεύθερα σε κάθε μνήμη.


Κάνω αυτή τη συζήτηση γιατί όπως είπα και σε άλλο post, η δομή του αρχείου (memory file protocol) είναι το Α και το Ω.

Σημείωση ότι:

Το συγκεκριμένο project θα μπορεί να ελέγξει οποιοδήποτε μηχάνημα διαθέτει MIDI IN. Δηλαδή καί πεταλιέρες, ηλεκτρονικά τύμπανα-κρουστά. Οπότε το συγκεκριμένο project δεν αφορά μόνο τους απαιτητικούς πληκτράδες αλλά αφορά επίσης κιθαρίστες και κρουστούς.

 
Τελευταία επεξεργασία από moderator:
Η μνήμη δεν είναι τόσο μεγάλο πρόβλημα. Υπάρχουνε πολλές λύσεις απλώς τα USB STICK με τρομάζουνε εξαιτίας ασυμβατοτήτων.

Τα 64 πλήκτρα πάλι μήπως είναι υπερβολή; Μήπως θα ήτανε καλύτερο να υπάρχουνε 32 και με ένα διακόπτη να γίνεται η εναλλαγή ανάμεσα στα 2Χ32; Η ακόμα καλύτερα ένα τετραπλός διακόπτης; Έτσι θα κατέβει και το κόστος κατασκευής.

 
Τα 64 πλήκτρα (αναφέρονται σε 64 μνήμες). Δεν είναι καθόλου υπερβολή.

Όσοι παίζουν live το γνωρίζουν πολύ καλά αυτό το σημείο.

 
Ωραια, σιγα σιγά ξεκαθαρίζονται οι λεπτομέρειες.

Σε ότι αφορά τα υλικά, θα έχουμε:

64 διακόπτες

4+1 ΜΙDI υποδοχές

1 PIC 16F877 και τα περιφεριακά του (κρύσταλλος, πυκνωτές)

Τροφοδοσία 5V

Θύρα προγραμματισμού

1 Μπαφεράκι, αν ο προγραμματισμός γίνεται μέσω της παράλληλης θύρας

Ο έλεγχος της παράλληλης θύρας του PC για τον προγραμματισμό του PIC γίνεται εξαιρετικά εύκολα, ακόμα και από τη visual basic του office.

Για όσους αναρωτιούνται: ο PIC είναι ένας μικροελεγκτής, δηλαδή ένα μικρό, φτηνό τσιπάκι-υπολογιστάκι που ελέγει αναλογικές και ψηφιακές εισοδους και εξόδους βάσει ενός προγράμματος.

 
Συγνώμη Gant, με πρόλαβες.

Στο προηγούμενο post εκεί που απάντησα στον "pantelis51" έγραψα κάτι πολύ λάθος.

Λάθος:

Τα 64 πλήκτρα (αναφέρονται σε 64 μνήμες).
Σωστό:

Τα 16 πλήκτρα (αναφέρονται σε 64 μνήμες).

Είναι 8+8 οι διακόπτες και όχι 8x8. Δηλαδή 8 banks και 8 numbers.

Το matrix εντός του προγράμματος είναι 8x8=64.

Συγνώμη προς όλους για το μπέρδεμα.

 
Ωραία, αναθεωρούμε  :) και προχωράμε:

16 διακόπτες push button

4+2 ΜΙDI υποδοχές

1 εξωτερική EEPROM

Φίλε Μανώλη, όταν καταλήξεις στη δομή της μνήμης μπορούμε να μιλήσουμε ακόμα πιο συγκεκριμένα.

 
Φίλε Gant σ'ευχαριστώ πολύ.

Η δομή της μνήμης είναι σχεδόν έτοιμη. Πηγάζει δε από το πρόγραμμα του Η/Υ που φτειάχνω τελικά μόνος μου. Μόλις καταλήξω θα σου τη στείλω για να την δεις κι εσύ.

Για την ώρα δουλεύω στο πρόγραμμα για τον Η/Υ

Σ'ευχαριστώ και πάλι.

 
Ανέβασα το αρχείο που λέγαμε στα downloads του project αλλά δεν το βλέπω πουθενά. Τέλος πάντων. Το ανεβάζω εδώ για να το δεις. Αυτό είναι για το πολύ βασικό.

 
Τελευταία επεξεργασία από moderator:
πολύ καλά!

στο toc ισως αρκει να έχουμε την αρχική διεύθυνση 900 και μετά μόνο τα μήκη των εντολών 1E, ...

Να πούμε επίσης ότι το κόστος κατεβαίνει ακόμα περισσότερο, αν παραγγείλουμε τα τσιπάκια κατευθείαν από  την microchip ως δείγμα (=δωρεάν!!).

Δείτε

http://sample.microchip.com/Default.aspx?testCookies=true

Επίσης καλό θα ήταν να έχουμε μία λίστα καταστημάτων που πουλάν ηλεκτρονικό υλικό (όχι αναγκαία εδώ, ίσως σε ξεχωριστό θέμα) για τα diy projects.

Μανώλη, θα μπορούσες να μας πεις κάποιες λεπτομέρειες για το πρόγραμμα που ετοιμάζεις;

 
Φίλε Gant,

Κατ'αρχήν δεν ξέρω πόση ώρα κοίταξες το address map για να καταλάβεις τι έχω κάνει και τι γίνεται εκεί μέσα. Κατά δεύτερο, εκτιμώ πάρα πολύ το γεγονός που μπήκες αμέσως στο θέμα χωρίς να με ρωτάς τι είναι αυτό και τι το άλλο. Φίλε, τα σέβη μου.

Στο θέμα μας...

στο toc ισως αρκει να έχουμε την αρχική διεύθυνση 900 και μετά μόνο τα μήκη των εντολών 1E, ...
Εάν κατάλαβα καλά, Όχι. θα τα χρειαστούμε. π.χ. όνομα ascii για την οθόνη και πολλά άλλα όπως εάν τα faders θα κάνουν μία ή δύο λειτουργίες ταυτόχρονα (ανά fader).

Να πούμε επίσης ότι το κόστος κατεβαίνει ακόμα περισσότερο, αν παραγγείλουμε τα τσιπάκια κατευθείαν από την microchip ως δείγμα (=δωρεάν!!).
Δείτε

http://sample.microchip.com/Default.aspx?testCookies=true
Δεν με απασχολεί το κόστος (εμένα). Με άλλα λόγια δεν με καίει. Όσο κάνει θα το πληρώσω. Φυσικά αγορά τα πάντα από Ελλάδα. Για μένα είναι κανόνας. Εάν δεν υπάρχει κάτι στην Ελληνική αγορά τότε και μόνο τότε κοιτάω για εξωτερικό.

Αυτό θα μας απασχολήσει στο τέλος για τον τελικό χρήστη. Για την ώρα όμως όχι.

Επίσης καλό θα ήταν να έχουμε μία λίστα καταστημάτων που πουλάν ηλεκτρονικό υλικό (όχι αναγκαία εδώ, ίσως σε ξεχωριστό θέμα) για τα diy projects.
Καλό. Πολύ καλό. Ένα από τα καταστήματα που πουλάνε ηλεκτρονικό υλικό και ειδικά θα έχουν το συγκεκριμένο project έτοιμο kit θα είμαι κι εγώ. Δεν θα το άφηνα στην τύχη. Άλλωστε ότι παρέχω και σαν κατάστημα το υποστηρίζω κιόλας. Δεν πουλάω κουτιά...

Μανώλη, θα μπορούσες να μας πεις κάποιες λεπτομέρειες για το πρόγραμμα που ετοιμάζεις;
Ναί. Το πρόγραμμα θα είναι για Η/Υ (WinXP) όπου θα μπορεί ο χρήστης να ετοιμάζει τα δεδομένα κάθε μνήμης ξεχωριστά (σε ένα πάρα πολύ απλό text αρχείο) και θα υπάρχει επιλογή από το πρόγραμμα που αυτόματα θα ετοιμάζει το "end user block" το οποίο θα το στέλνει από τον Η/Υ μέσω Midi In στο κουτί.

Παράλληλα και ... αναγκαστικά, θα έχει και κάποια utilities (εντός του προγράμματος) τα οποία θα μετατρέπουν αρχεία ascii text (*.txt) σε SysEx (*.syx). Αυτό, για να έχει τη δυνατότητα ο χρήστης να κάνει έλεγχο πριν στείλει τα δεδομένα στο κουτί.

Εδώ είναι καιρός να μάθουμε και λιγάκι δεκαεξαδικό.

Για παράδειγμα στα text αρχεία θα μπορεί ο χρήστης να γράψει:

F0,41,10,42,12,κλπ κλπ (standard ASCII)

C0,27,κλπ κλπ (standard ASCII)

και το πρόγραμμα αυτόματα θα δημιουργήσει ένα άλλο αρχείο SysEx (*.SYX).

F0,41,10,42,12,κλπ κλπ (standard HEX)

C0,27,κλπ κλπ (standard HEX)

{Δηλαδή convert. Ίσως το κάνω να κάνει καί από SYX σε MID. Δεν ξέρω θα δω.}

Μετά θα δημιουργηθεί το κυρίως block (αυτό που είδες στο Address Map) όπου θα μεταφερθεί με "Midi Dump" μέσω Midi In στο κουτί (εξωτερική EEPROM) του project.

Σημείωση.

Όταν λέω "εξωτερική EEPROM" εννοώ το τσιπάκι (xxLC256) που θα είναι μέσα στο κουτί και όχι την εσωτερική EEPROM του PIC. Γνωρίζω ότι το κατάλαβες αλλά το ξαναλέω για να μην μπερδευτεί κανένας άλλος που θα διαβάσει το κείμενο.

 
Τελευταία επεξεργασία από moderator:
Παραθέτω ως παράδειγμα το text αρχείο "Noiz_P25.txt" που γράφει ο χρήστης

και το αρχείο "NOIZ_P25.SYX" που δημιουργεί αυτόματα το πρόγραμμα.

Το P25 σημαίνει η μνήμη 25 (σε δεκαδικό) από τα κουμπιά 8x8 ή αλλιώς Bank 2 , Number 5.

Εάν προσέξουμε μέσα στο αρχείο text υπάρχουν οι εξής εντολές.

1. Reset GS

2. Bank Select (CC00 και CC32)

3. Program Change

4. Αραβική κλίμακα.

Αυτό ως δείγμα.

 
Μαλιστα,

έχουμε ένα Roland, κανάλι 3 (ή 4;;; ), Bank 0, Program 0 και ένα Ρε κατεβασμένο 50%.

Πολύ ωραία,

πάμε παρακάτω ! :)

 
Οπότε, βάση του πιό πάνω παραδείγματος, δηλαδή επιλέγοντας από τους διακόπτες (8x8) το 25 και βάση του TOC, το συγκεκριμένο πακέτο πάει ως έχει για Midi Out.

Μέχρι εδώ και βάση του σχήματος (rear panel) είμαστε κοντά στην ολοκλήρωση του βασικού (χωρίς optionals) πακέτου.

 
Παραθέτω ως παράδειγμα το αρχείο "Noiz_MC1.bin".

Το έχω ανεβάσει στα downloads όπως και άλλα αρχεία, αλλά δεν το βλέπω. Μήπως ο Admin πρέπει να κάνει κάτι γι'αυτό;

Στο θέμα μας.

Το αρχείο "Noiz_MC1.bin" είναι το αντίγραφο με τα δεδομένα που θα έχει η EEPROM. To ανεβάζω για όσους εργάζονται στο τμήμα software του επεξεργαστή.

Στο παράδειγμα αυτό, μόνο 5 από τις 64 μνήμες (11,12,13,14 και 88) έχουν δεδομένα και μόνο για το Midi Out 1. Τις υπόλοιπες τις έχω αφήσει κενές.

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

Για όσους ρωτήσουν, το αρχείο (bin) δημιουργήθηκε από ειδικό πρόγραμμα για Η/Υ που το δουλεύω ειδικά γι'αυτό το σκοπό. Όταν θα είναι έτοιμο, σαφώς και θα υπάρξει διαθέσιμο στο Noiz. Απλά περιμένω να δοκιμαστούν κάποια βασικά μέρη του project.

Οι δοκιμές μπορούν να γίνουν κανονικά με αυτό το αρχείο. Απλά θα λειτουργήσει μόνο το Midi Out 1.

 
Τελευταία επεξεργασία από moderator:
Έχω ανεβάσει στα downloads κάποια αρχεία αλλά δεν το βλέπω. Μήπως ο Admin πρέπει να κάνει κάτι γι'αυτό;

Οι λειτουργίες των faders, encoders, foot switches, foot pedals θα μπορούν να είναι διαφορετικές για κάθε χρήστη αφού θα μπορούν ν'αλλάξουν από το λογισμικό του Η/Υ.

Ερώτηση.

Οι λειτουργίες των 8x faders, 8x encoders, 4x foot switches, 4x foot pedals, να είναι κοινές για όλες τις μνήμες (64) ή διαφορετικές;

 
Παραθέτω ως παράδειγμα το αρχείο "Noiz_MC1.syx".

Δηλαδή έχει γίνει μετατροπή του αρχείου "Noiz_MC1.bin" σε syx format.

Για όσους δεν κατάλαβαν, είναι το τελικό αρχείο το οποίο θα μεταφερθεί μέσω Midi Dump στο project (κουτί). Ο χρόνος μεταφοράς είναι στα 5 δευτερόλεπτα περίπου.

 
Οι λειτουργίες των faders, encoders, foot switches, foot pedals θα μπορούν να είναι διαφορετικές για κάθε χρήστη αφού θα μπορούν ν'αλλάξουν από το λογισμικό του Η/Υ.
Ερώτηση.

Οι λειτουργίες των 8x faders, 8x encoders, 4x foot switches, 4x foot pedals, να είναι κοινές για όλες τις μνήμες (64) ή διαφορετικές;
 
Όπως θα δείτε, έγιναν οι παρακάτω αλλαγές.

1) Στο "Rear Panel" αφαιρέθηκε εντελώς η υποδοχή μνήμης.

Δεν υπάρχει εξωτερική μνήμη ???

Μόνο φασαρία προκάλεσε. Η μνήμη είναι εξωτερική όπως έχω αναφέρει και

σε προηγούμενα post εννοώντας εξωτερικά του επεξεργαστή αλλά όχι

εξωτερικά της κατασκευής. Τώρα το καταλάβαμε όλοι...

2) Στο "Front Panel" τα 8 x encoders έγιναν optional.

3) Στο "Front Panel" έγινε πρόσθεση 8 x Quick Buttons.

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

8 αγαπημένες επιλογές.

Για παράδειγμα κάποιος που παίζει με Αραβικές κλίμακες θα μπορεί να έχει

με το πάτημα ενός κουμπιού την κλίμακα που θέλει. Άλλος μπορεί να έχει

κάποιο αγαπημένο setup κλπ κλπ κλπ.

Σαφώς και τα κουμπιά αυτά θα μπορούν να στείλουν {όπως και οι βασικές

μνήμες (64)} διαφορετικά μηνύματα στα 4 x Midi Out.

 

Απαντήσεις

Trending...

Νέα θέματα

Back
Top