Entra:     


Forum: Greek Forum

Topic: MAPPING JOG WHEEL
καλησπερα, εχω κατασκευαση ενα midi controler με arduino. το οποιο στο προγραμα traktor δουλευε τελεια. εδω και ενα χρονο που σταματησα να παιζω με το τρακτορ αποφασησα να κανω mapping και το virtual. τα ποιο πολλα τα εχω βρει και δουλευουνε. εκεινο που με δισκολευη εχει 2 μερεσ ειναι τα jog wheels. οτι και να κανω παντα δουλευη το ενα deck..



τα jog wheel ειναι 2 encoder τα οποια στελνουνε το εξεισ midi το αριστερο Ch 1: Controller 14 value 127 οταν περιστρεφετε δεξια και Ch 1: Controller 14 value 1 οταν περιστεφετε αριστερα.

το ιδιο και το δεξια jog wheel Ch 1: Controller 16 value 127 και Ch 1: Controller 16 value 1

βλεπετε οτι στο mapping μου εχει jog14 kai jog 16 αλλα οτι και να αλαξω, π.χ jog14 να ειναι deck 1 αυτοματοσ το jog16 γινεται και αυτο deck 1..
αυτοματοσ βαζει

σαν παρακαλω πωσ μπορω να προγραματισω το virtual dj και να δουλευουνε οταν δεν μπεζει το τραγουδι να κανεισ search μεσα στο τραγουδι για να βαλεισ το cue point.. και οταν παιζει το τραγουδι να κανει pitch bend ωστε να γινει το beat mach...
 

Inviato 2 days ago @ 12:37 pm
Βλέπω δεν έχεις φτιάξει definition file.
Οπότε στην περίπτωση αυτή στο πρώτο jog γράψε deck 1 jogwheel και στο δεύτερο deck 2 jogwheel

Ο σωστός τρόπος όμως είναι να φτιάξεις ένα device definition όπου εκεί θα αρίσεις και σε ποιο deck ανοίκει κάθε χειριστήριο/κουμπί.
Έτσι θα κάνεις map τα κουμπιά μόνο μια φορά και χωρίς να γράφεις από μπροστά το deck.

https://www.virtualdj.com/wiki/Controller%20Developers.html
https://www.virtualdj.com/wiki/ControllerDefinitionMIDI
 

δεν ειμαι και ο σπεσιαλ προγραματιστησ... προσπαθω να κανω την δουλεια μου απλα... ελαχιστα πραγματα χρειαζομαι οταν παιζω μουσικη... ειμαι τησ αρχαιασ σχολης..
αλλα εδω φιλε phantomdeejay.. ειναι που χρειαζομαι λιγο τησ γνωσεισ σου, σε αυτου που ειπεσ.
definiton file... γιατι απο οτι διαβασα το virtual dj για να στηλει midi out για να αναψη ενα led πρεπει να εχει definition file.. μπορεισ να με βοηθεισησ να το κανω?

η λυση στο προβλημα μου ειναι (για οσουσ κατασκευασαν δικο τουσ midi controler)
deck 1 param_multiply 10 & jogwheel
και ο λογοσ ειναι οτι σε καθε κλικ του encoder εχω παντα το ιδιο midi message
Ch 1: Controller 14 value 1 η Ch 1: Controller 14 value 127
δεξιοστροφα value 1 αριστερα value 127..

βαζοντασ ( param_multiply 10 ) η οτι θελεισ εκτωσ απο 10. κανεισ το καθε κλικ 1 προσ 10
1 προσ 30.. αν το βαλεισ στα 30



 

Άρχισα και απογοητεύομαι..
Τελικά μάλλον πρέπει να είσαι της NASA για να προγραμματίσεις το virtual dj σε ένα custom made controller…
Ας πούμε ότι βρήκαμε την λύση με ένα definition file.. και ας πούμε ότι κάναμε 10 led να ανάβουνε και να σβήνουνε όταν πατάμε ένα κουμπί…
Εδώ το controller μου έχει 7 led για vu meter στο deck 1 και 7 led vu meter sto deck 2
Προσθετά ότι στο traktos to έχω προγραμματίσει με το πάτημα ενός κουμπιού τα vu meters να αλλάζουνε και από deck 1 και deck 2 volume να γίνονται master output left and right channel...

Σκατα μπλέξαμε… εγώ δηλαδή.
 

Αν μπορείς να προγραμματίσεις τον δικό σου MIDI controller, τότε σίγουρα έχεις το μυαλό και μπορείς να φτιάξεις και ένα definition file.
Όλες οι πληροφορίες που χρειάζεσαι είναι στα δύο link που σου έδωσα πιο πάνω.

Τέλος (επειδή ξέρω) είναι πολύ πιο εύκολο να προγραμματίσεις στο VirtualDJ παρά στο Traktor.
Δηλαδή κάπου ώπα.. Στο Traktor o προγραμματισμός είναι σαν να σκάβεις χωράφι με κασμά (ούτε καν τσάπα).. Και στο VirtualDJ σαν να πήρες JCB. :P

Από εκεί και πέρα:
Γενικά αν θες μια καλή συμβουλή (για το VirtualDJ) μην προγραμματίζεις τίποτα fancy στον ίδιο τον controller. Δεν χρειάζεται. Ότι αλλαγές θες να κάνεις (π.χ. με το πάτημα ενός κουμπιού τα vu meters να αλλάζουνε και από deck 1 και deck 2 volume να γίνονται master output left and right channel) γίνονται πανεύκολα μέσα από τον mapper. Δεν χρειάζεται να κάνει αυτή την αλλαγή ο controller σου.

Οπότε ξεκίνα με το να φτιάξεις ένα απλό definition (κάθε κουμπί μια γραμμή κτλ) και να το παντρέψεις με ένα απλό mapping.
Και στην πορεία οτι βοήθεια χρειαστείς είμαστε εδώ να βοηθήσουμε.

Σημ: Το Jog σε επίπεδο hardware κανονικά πρέπει να στέλνει και τιμές μεγαλύτερες από 1/-1 ανάλογα με την ταχύτητα περιστροφής.
Επίσης αν φτιάξεις definition μπορείς να ορίσεις πόσα βήματα κάνει το jog σου σε μια πλήρη περιστροφή. Με το που θα το κάνεις αυτό θα αρχίσουν αυτόματα να δουλεύουν και οι ρυθμίσεις του προγράμματος σχετικά με την ευαισθησία των jogs που τώρα απλά την παρακάμπτεις τελείως και δεν θα χρειάζεται να πολλαπλασιάζεις το βήμα όπως κάνεις τώρα.
Με την τωρινή λύση, έχεις το πρόβλημα οτι δεν μπορείς να τοποθετήσεις τη βελόνα (θέση αναπαραγωγής) με μεγάλη ακρίβεια γιατί "πηδάς" δέκα δέκα ή 30-30 βήματα τη φορά.
 

θα προσπαθησω και αλλο, ιδει εχω κανει κατι πειραματα για το definition file.. απλ φιλε phantomdeejay σου ξεφυγε μια λεπτομερια... ΔΕΝ ΕΙΜΑΙ Ο ΣΠΕΣΙΑΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ.
το controler που κατασκευασα το ποιο ευκολο κοματι ητανε το hardwear ( λογο οτι πριν 30 χρονια) σπουδασα ηλεκτρονικα.. απο προγραματισμο 0...
το προγραμμα για το controler πρεπει να μου εφαγε περιπου 2 μηνεσ. να τ κανω... ρωτοντασ φιλουσ σαν εσενα, διαβαζοντασ κτλ.. αρα ειμαι bigginer σε θεμα προγραματισμου..

εχει απολυτο δικαιο στο θεμα που αναφερεισ οτι το jog πρεπει να στελνει διαφορεσ τιμεσ κτλ..

ρεαλιστικα ομωσ για προσοπικη χρηση μια και κανενα παρτακι μια χαρα δουλευη και ετσι...

τωρα αν μπορεια να βοηθεισησ να γραψω 2 γραμμεσ στο definition φιλε για να γινοθν active ta midi out θα το εκτιμουσα..
γιατι αυτο στο mapping εμβανιζει 3 αδεια κουτια...

<device name="ArduinoController" version="800" type="MIDI">
<manufacturer>Custom</manufacturer>
<vendorid>1234</vendorid>
<productid>5678</productid>
<output available="yes" />


 

<device name="ARDCON" author="Alinatas3" description="My Custom Controller" version="850" type="MIDI" vid="0x4D2" pid="0x162E" decks="2" sides="2" eq="soft"> 
<button note="0x14" channel="0" deck="1" name="LOOP" />
<button note="0x15" channel="0" deck="2" name="LOOP" />
<led note="0x14" channel="0" deck="1" name="LED_LOOP" default="LOOP" />
<led note="0x15" channel="0" deck="2" name="LED_LOOP" default="LOOP" />


<button note="0x01" channel="0" deck="1" name="PLAY" />
<button note="0x01" channel="1" deck="2" name="PLAY" />
<led note="0x01" channel="0" deck="1" name="LED_PLAY" default="PLAY" />
<led note="0x01" channel="0" deck="2" name="LED_PLAY" default="PLAY" />


<jog cc="0x0E" zero="0x00" full="512" channel="0" deck="1" name="JOG" />
<jog cc="0x10" zero="0x00" full="512" channel="0" deck="2" name="JOG" />
</device>


Αυτό νομίζω είναι μια καλή αρχή για να ξεκινήσεις.
Και μην ρωτάς το ChatGPT..
Γιατί ότι έγραψες παραπάνω δεν υπάρχει πουθενά στη φιλοσοφία του VirtualDJ οπότε αποκλείεται να το είδες κάπου γραμμένο.
Επίσης αποκλείεται να κατάλαβες τόοοοοσο λάθος τι λένε οι δύο σελίδες που σου έστειλα.
Αν πάλι κάνω λάθος και δεν ρώτησες το ChatGPT αλλά έφτιαξες "μόνος" σου το "έκτρωμα" από πάνω, ξαναδιάβασε προσεκτικά τις δύο σελίδες που σου έστειλα.
Δεν είναι δύσκολο! :)