131 lines
2.5 KiB
Markdown
131 lines
2.5 KiB
Markdown
---
|
||
title: "Construction automatique de niveaux pour le jeu de rythme osu! à partir de fichiers audio"
|
||
topic: "osu"
|
||
author: "Aboujaib Alexandre"
|
||
theme: "Copenhagen"
|
||
---
|
||
|
||
# Presentation du problème
|
||
|
||
### Le jeu osu!
|
||
|
||
- Jeu de rythme pour PC
|
||
- Sorti le 16 septembre 2007, adapté d'un jeu pour DS
|
||
- Environ 500 000 joueurs actifs
|
||
- Se joue avec une souris/tablette et clavier
|
||
{ width=50% }
|
||
{ width=40% }
|
||
|
||
### Les beatmaps (niveaux)
|
||
::: columns
|
||
:::: column
|
||
{ width=110% }
|
||

|
||
::::
|
||
:::: column
|
||
{ width=110% }
|
||
::::
|
||
|
||
:::
|
||
|
||
### Exemples de cercles
|
||
|
||

|
||

|
||

|
||
|
||
### Exemples de sliders
|
||
|
||
{ width=50% }
|
||
{ width=50% }
|
||

|
||

|
||
|
||
|
||
### Formulation du problème
|
||
|
||
Nous nous proposons de **créer deux programmes** permettant **au mieux**, à partir d’un **fichier
|
||
audio** donné, de **construire un niveau pour osu!**.
|
||
|
||
|
||
# Partie I : Analyse de musique
|
||
|
||
### Approche en deux temps
|
||
|
||
#### Spécifications
|
||
|
||
*Entrée :* un fichier audio (avec un format quelconque)
|
||
|
||
*Sortie :* des données relatives à la musique permettant le placement des notes
|
||
|
||
#### Processus retenu ici
|
||
|
||

|
||
|
||
### Filtres physiques & Transformée de Fourier
|
||
|
||
::: columns
|
||
:::: column
|
||
{ width=80% }
|
||
::::
|
||
:::: column
|
||

|
||
::::
|
||
:::
|
||
|
||
### Résultats
|
||
|
||
{ width=60% }
|
||
|
||
### Résultats
|
||
|
||

|
||
|
||
### Résultats
|
||
|
||
#### Complexité
|
||
|
||
{ width=95% }
|
||
|
||
### Limites et saturation
|
||
|
||

|
||
|
||
### Limites, saturation et améliorations
|
||
|
||

|
||
|
||
# Partie II : placement spatial
|
||
|
||
# Annexes : code Python
|
||
|
||
### `parse music` : extraction de la liste des amplitudes et du "sample rate"
|
||
|
||
::: columns
|
||
:::: column
|
||
{ width=80% }
|
||
::::
|
||
:::: column
|
||

|
||
::::
|
||
:::
|
||
|
||
### `cleaning` : retirer les fréquences trop basses et hautes
|
||
|
||
{ width=60% }
|
||
|
||
### `get amp distribution` : usage de files de priorité pour extraire les maxima
|
||
|
||
{ width=50% }
|
||
|
||
### `get frequency distribution` : fréquence maximale pour chaque point
|
||
|
||
{ width=60% }
|
||
|
||
### `get sliders` : fusionner les notes trop proches en des 'sliders'
|
||
|
||
{ width=75% }
|
||
|
||
### `draw` : afficher les résultats
|
||
|
||
{ width=60% } |