Φόρουμ Φοιτητών Πληροφορικής
Θέλετε να αντιδράσετε στο μήνυμα; Φτιάξτε έναν λογαριασμό και συνδεθείτε για να συνεχίσετε.

ΘΕΜΑΤΑ ΣΕΠΤΕΒΡΙΟΣ 2021

Πήγαινε κάτω

ΘΕΜΑΤΑ ΣΕΠΤΕΒΡΙΟΣ 2021 Empty ΘΕΜΑΤΑ ΣΕΠΤΕΒΡΙΟΣ 2021

Δημοσίευση από apostoloskp Τετ Σεπ 01, 2021 9:20 pm

Ερώτηση κώδικα
Απλό δημιουργίας μουσικής αλληλουχίας - playlist (10 μονάδες, διάρκεια εργασίας 120
λεπτά της ώρας)
i. (1 μονάδα) Κατεβάστε το εξατομικευμένο για κάθε εξεταζόμενο σύνολο δεδομένων
σας που περιέχει 500 αρχεία τύπου json (σχετικά με την προσπέλαση δεδομένων json
από το octave). Καθένα από τα αρχεία αυτά περιγράφει πληροφορίες για ένα τραγούδι
και περιέχει δύο αντικείμενα κατά JSON, το «genericMetadata» και το
«audioFeatures». Το «genericMetadata» περιέχει, μεταξύ άλλων, πληροφορίες για
την/τον/τους καλλιτέχνες που εμπλέκονται στο τραγούδι αλλά και τον τίτλο του
τραγουδιού. Το «audioFeatures» περιέχει συγκεντρωτικές πληροφορίες για το
τραγούδι (που περιγράφονται εκτενώς στο σύνδεσμο
https://developer.spotify.com/documentation/web-api/reference/#objectaudiofeaturesobject), μεταξύ των οποίων τα αντικείμενα «tempo» και «danceability».
Το «tempo» είναι δεκαδικός αριθμός (float) και περιγράφει το συνολικό εκτιμώμενο
ρυθμό του κομματιού σε ρυθμούς ανά λεπτό (Beat Per Minute ή BPM). Το
«danceability» (“χορευτικότητα”) είναι δεκαδικός αριθμός (float) στο εύρος [0,1] και
περιγράφει πόσο κατάλληλο είναι ένα κομμάτι για χορό βασισμένο σε συνδυασμό
μουσικών στοιχείων, συμπεριλαμβανομένου του τέμπο, της σταθερότητας του
ρυθμού, της δύναμης του ρυθμού και της συνολικής κανονικότητας. Μια τιμή 0,0
δείχνει πως το τραγούδι είναι ελάχιστα χορευτικό και τιμή 1,0 πως είναι όσο πιο
χορευτικό γίνεται.
Μπορείτε, αν θέλετε, να χρησιμοποιήσετε την υπηρεσία https://jsoneditoronline.org/
(ή όποια άλλη παρόμοια) για να κάνετε ιεραρχική οπτική προεπισκόπιση των
δεδομένων ενός json αρχείου. Παραδοτέο: Το εξατομικευμένο αρχείο δεδομένων σας,
του τρέχοντος βήματος.
ii. (4 μονάδες) Ετοιμάστε μια συνάρτηση με όνομα preparation που θα φορτώνει όλα
τα json αρχεία και θα κρατά για κάθε τραγούδι:
• το όνομα του αρχείου json
• το όνομα του/της/ πρώτα εμφανιζόμενου στο json καλλιτέχνη
(genericMetadata►artists►0►name)
• το όνομα του μουσικού κομματιού (genericMetadata►name)
• το συνολικό εκτιμώμενο ρυθμό του κομματιού σε ρυθμούς ανά λεπτό
(audioFeatures►tempo)
• τη «χορετικότητα» του κομματιού (audioFeatures►danceability)
σε μια μεταβλητή, την οποία και θα επιστρέφει. Παραδοτέα: (α) ο κώδικας της
συνάρτησης (ενδεικτικά ~5 γραμμές κώδικα), και (β) η έξοδος της συνάρτησης για
το προσωπικό σας σύνολο δεδομένων σε txt αρχείο (δε χρειάζεται να γίνει
προγραμματιστικά, είναι εφικτό κι από τις διεπαφές matlab/octave).
iii. (5 μονάδες) Ετοιμάστε μια συνάρτηση με όνομα playlistCreation που θα
φορτώνει την έξοδο της preparation και θα:
•Επιλέγει το πρώτο τραγούδι της playlist ως το τραγούδι με τη μικρότερη θετική
διαφορά danceability από τη τιμή 0,4 (~4 γραμμές κώδικα).
• Επιλέγει το καθένα επόμενο τραγούδι της playlist (μέχρι να μη μπορεί να βρει
επόμενο ή να έχει χρησιμοποιήσει όλα τα τραγούδια – προσοχή κάθε τραγούδι της
playlist πρέπει να εμφανίζεται μόνο μια φορά) βάσει της παραμέτρου danceability:
το i-οστο τραγούδι της playlist πρέπει να έχει danceabilityi στο εύρος [5%,
10%] παραπάνω από τη danceabilityi-1 , δηλ από το προηγούμενο κομμάτι.
Καθώς πολλά τραγούδια θα βρίσκονται εντός του εύρους αυτού επιλέξτε το
τραγούδι με τη μικρότερη διαφορά από το (i-1)-οστο όσο αφορά το tempo (~20
γραμμές κώδικα).
• Ετοιμάζει σχεδιάγραμμα tempo (άξονας ψ1) & danceability (άξονας ψ2) ως προς
την ταξινομημένη κατά σειρά ακρόασης playlist (άξονας χ), βλ. Παράδειγμα (~10
γραμμές κώδικα).
•Επιστρέφει την playlist με τη μορφή ids της εξόδου της preparation
Παραδοτέα: (α) ο κώδικας της συνάρτησης, (β) η playlist με τη μορφή ids της εξόδου
της preparation σε ένα αρχείο txt (δε χρειάζεται να γίνει προγραμματιστικά, είναι
εφικτό κι από τις διεπαφές matlab/octave) και (γ) το αρχείο εικόνας του
σχεδιαγράμματος σε μορφή jpg ή png (δε χρειάζεται να γίνει προγραμματιστικά, είναι
εφικτό κι από τις διεπαφές matlab/octave).
Παράδειγμα
Καταχωρίστε την απάντησή σας στην αντίστοιχη εργασία στο opencources σε ένα
συμπιεσμένο αρχείο τύπου zip που θα περιλαμβάνει όλα τα προαναφερθέντα
παραδοτέα.
ΘΕΜΑΤΑ ΣΕΠΤΕΒΡΙΟΣ 2021 6510
apostoloskp
apostoloskp

Αριθμός μηνυμάτων : 24
Ημερομηνία εγγραφής : 16/01/2016
Ηλικία : 26

Επιστροφή στην κορυφή Πήγαινε κάτω

Επιστροφή στην κορυφή

- Παρόμοια θέματα

 
Δικαιώματα σας στην κατηγορία αυτή
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης