Τροποποίηση λιστών τού Mixxx για να λειτουργούν σε άλλον υπολογιστή/νέα εγκατάσταση

Βρήκα ενδιαφέροντα τα παρακάτω και είπα να τα μοιραστώ.

Όπως έχω γράψει σε άλλο νήμα στο παρελθόν, αρκετά συχνά φτιάχνω playlists στο Mixxx για να παίζουν στο σπίτι με τις ώρες.

Το Mixxx κρατάει (σώζει) αυτές τις λίστες (είτε playlists είτε crates), και είναι εκεί κάθε φορά που ξανανοίγει. Δεν είναι όμως κάποια εμφανή αρχεία με συγκεκριμένο όνομα (λίστας) και σύνηθες extension που σώζονται σε κάποιο φάκελο που θα γίνει backup. Σώζονται στο αρχείο /home/[user]/.mixxx/mixxxdb.sqlite.

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

Τρεις λύσεις :

  • Δεξί κλικ στη λίστα (είτε playlist είτε crate) και Extract tracks.

  • Αντιγραφή κατά το backup του πιο πάνω αρχείου.

  • Χειροκίνητο σώσιμο της κάθε λίστας (και backup).

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

Στις άλλες δύο περιπτώσεις, αυτό που ενδιαφέρει είναι ότι το mixxx σώζει -μεταξύ άλλων- τη διαδρομή των αρχείων (Path), και έτσι τα βρίσκει όταν ξαναφορτωθούν οι λίστες. Για να ξέρει που είναι κάθε αρχείο, κρατάει ΟΛΟ το Path.

Παράδειγμα

/home/george/Music/DATABASE/FLACs/Ελληνικοί Στίχοι/Μούσχουρη Νανά/Γιαρέμ.flac

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

Όπως καταλαβαίνετε όμως, αν πάμε σε άλλο υπολογιστή/νέα εγκατάσταση, με άλλο username, το Path αλλάζει, δεν θα βρει τα τραγούδια φορτώνοντας τις λίστες που έχουμε σώσει, ακόμα κι αν αυτά είναι στην ίδια θέση στο φάκελο Music.

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

Πάμε λοιπόν στην τρίτη λύση, χειροκίνητο σώσιμο λίστας.

Αν και συνήθως οι μουσικές λίστες σώζονται σε μορφή .m3u ή m3u8, και σ’ αυτά τα αρχεία γίνεται επεξεργασία ακόμα και με απλό text editor, η εικόνα που είδα ανοίγοντας το αρχείο απλά δεν μου έκανε καλή εντύπωση. Μάλλον δεν θέλησα να δοκιμάσω να το πειράξω, όχι ότι δεν γίνεται.


Προτίμησα λοιπόν να το σώσω ως .csv.

Σήμερα που γράφεται αυτό το κείμενο, το mixxx το έχω στην έκδοση 2.2.3. Ακόμα και να επιλέξω τύπο αρχείου .csv, το αρχείο σώζεται ως .m3u. Πρέπει στο όνομα του αρχείου να μπει και το extension για να σωθεί σωστά. Επιλέγουμε λοιπόν τύπο αρχείου .csv, και στο όνομα αρχείου αντί για σκέτο Testlist π.χ., γράφουμε Testlist.csv

Και πάμε να ανοίξουμε το αρχείο για να διορθώσουμε το Path ([username])

Ειδοποιός διαφορά

Αν πάμε από Libre Calc, θα αναγνωρίσει μόνο του ότι πάει να κάνει εισαγωγή .csv αρχείου, θα πάει κατευθείαν στον Import Wizard και θα εισάγει το αρχείο σωστά, αρκεί να είναι τικαρισμένο το “,” (κόμμα).


Αν πάμε από Wps spreadsheets, θα πάει να ανοίξει κατευθείαν το αρχείο, με αποτέλεσμα κάτι σαν το παρακάτω.

Στο WPS λοιπόν, πρέπει να ανοίξουμε κενό Spreadsheet, να πάμε Data-Import Data-Select Data Source-επιλογή του αρχείου κλπ κλπ και στο παράθυρο με τους διαχωριστές πεδίων να επιλέξουμε και εκεί το κόμμα. Τότε θα ανοίξει σωστά.

Μετά, με εύρεση και αντικατάσταση όλων, αλλάζουμε το /home/[παλιό username] σε /home/[νέο username] και τελειώσαμε. Δουλεύει. Συστήνω να μην κάνετε εύρεση και αντικατάσταση μόνο τού [username]. Βάλτε /home/[username]. Μπορεί η λέξη να συμπίπτει με κάτι άλλο και να μη βρεθεί κάποιο τραγούδι (π.χ. παλιό username “jane” και τρσγούδι στη λίστα το “Baby jane”. Αν κάνετε εύρεση/αντικατάσταση μόνο τού “jane” με “κυραγιώργαινα”, για να δουλέψει η λίστα σε υπολογιστή με username “κυραγιώργαινα”, το mixxx θα ψάχνει στη δισκοθήκη σας το “Baby κυραγιώργαινα”)…

4 Likes

Ευχαριστούμε.

Μπορεί να γίνει και απο το τερματικό

old_path=...
new_path=...
sed -i "s#${old_path}#${new_path}#g" playlistfile

Το -i τροποποιεί το αρχείο, οπότε δοκιμάστε το πρώτα χωρίς αυτό ή κάντε ένα αντίγραφο πρώτα.

2 Likes

Το δοκίμασα
teminalchange
και δούλεψε άψογα.
Μάλιστα, μου ήρθε και η φαεινή ιδέα να το φτιάξω να γίνεται για πολλά αρχεία, ένα-ένα βέβαια. Επειδή όμως από bash, scripts, chmod, εκτελέσιμα και άλλα τέτοια μοντέρνα έχω μεσάνυχτα, δοκίμασα …τεχνολογία 20ου αιώνα.


Προφανώς, κόλλωσα :frowning_face:

2 Likes

Η παρακάτω εντολή θα το εφαρμόσει σε όλα τα αρχεία κάτω από τον κατάλογο που είσαι:

find . -type f -name "*.csv" -exec sed -i "s#${old_path}#${new_path}#g" {} +

Πολλές :two_hearts: :two_hearts: :two_hearts: :two_hearts: :two_hearts: γιατί έχω μια χιλιετία να γράψω κάτι σαν

EX$ = "sed -i 's#" + OP$ + "#" + NP$ +"#g' " + FI$

Σημείωση: τα αρχεία δεν πρέπει να έχουν τον χαρακτήρα # στο όνομα τους. Διαφορετικά αντικατέστησε το με @ ή % ή κάποιο άλλο χαρακτήρα διαχωρισμού. Συνήθως χρησιμοποιούμε το / αλλά δεν βολεύει καθόλου όταν έχεις να κάνεις με διαδρομές αρχείων

2 Likes