Module Transition

PACT

matfontaine.github.io/PACT-TRANSITION

Mathieu FONTAINE
mathieu.fontaine@telecom-paris.fr

2022-2023

Attentes du module

  • Comprendre comment effectuer une transition automatique entre morceaux
  • Compréhension de l'analyse en composante principale (ACP)
  • Implémentation sous python
  • Application au projet PACT (pourquoi ce module est adapté etc.)
  • Résultats avec la méthode implémentée

Livrable

  • Code de votre groupe en Python avec quelques résultats.

Pré-requis recommandé (par ordre de recommendation)

  • Module Onset
  • Module Time-stretching
  • Module Chroma

Plan

I - Transitions

II - Caractéristiques notables

III - Analyse en composantes principale

I - Transitions

Définition

  • La transition entre deux musiques est l'action de changer de musique.
  • Elle peut-être faite naturellement entre la fin et le début d'un morceau
  • Elle peut aussi être employée en plein milieu d'un morceau.

Naturellement, on s'interesse au dernier point.

Transition entre deux morceaux

  • Les transitions "classiques" sont faites en utilisant un fade-out et fade-in
  • Ce changement est le plus souvent fait suivant une décroissance exponentielle du volume de la première musique et une croissance exponentielle du volume de la seconde
  • transition entre deux morceaux (selon Bittner)

Concordance de la transition

  • Une simple transition comme précédemment ne peut généralement pas s'adapter à n'importe quelle transition
  • Certaines caractéristiques (dont nous parlerons après) sont très importantes
  • L'une d'elle étant le tempo, le pitch shifting ou time stretching permettrait d'améliorer la transition et d'obtenir un résultat plus probant
Exemple : une chanson à un tempo de 130 qui concorderait bien avec une autre à 140. Un time stretching (PSOLA) pour obtenir un tempo à 130 et un alignement ferait une très bonne transition.

II - Caractéristiques notables

Similarité musicale

Les techniques employés par Slaney (cf. ici) pour classer les musiques entre elles repose sur, entre autres, les paramètres suivants :
  • La Loudness (puissance du morceau). Regarder ici pour plus de détails
  • Le tempo
  • La time signature (4/4, 3/4 etc.)

Autres informations

Il est cependant important aussi de prendre en compte d'autres composantes comme
  • Le pitch (CREPE permet d'extraire cette information)
  • accords, mode, gamme etc. (peuvent être estimés via les chromas)
  • Le genre musical
représentation spatiale des accords (selon Bittner)

III - Analyse en composantes principales

Motivations

  • Nous avons énuméré un certains nombres de caractéristiques
  • Cependant, il est difficile de classifier les similarités entre elles
  • En effet, trop de variables explicatives est difficilement interprétable

Idée: réduire la dimension tout en préservant l'information.

Notion d'analyse en composantes principales (ACP) (1/2)

  • Soit $X \in \mathbb{R}^{N \times D}$ une matrice avec $N$ échantillons et $D$ variables.
  • On suppose que chacune des colonnes est centrée réduite. i.e. pour une colonne $\bold{x}_d$ :
    $$ \bold{x}_d (n) = \frac{\bold{x}_d (n) - \bold{\bar{x}}_d}{\text{std}(\bold{x}_d)} $$
  • On estime la covariance, notée $\mathrm{Cov}(\bold{x}_d, \bold{x}_{d^\prime}) = \frac{1}{N}\sum_{n=1}^{N}\bold{x}_d(n)\bold{x}_{d^\prime}(n)$, entre chaque variable.
  • On obtient alors une matrice de covariance $A \in \mathbb{R}_{+}^{D \times D}$ tel que :
    $$ \mathrm{A=\left[\begin{array}{ccc} \mathrm{Cov}\left(\bold{x}_{1},\bold{x}_{1}\right) & \dots & \mathrm{Cov}\left(\bold{x}_{1},\bold{x}_{d}\right)\\ \vdots & \ddots & \vdots\\ \mathrm{Cov}\left(\bold{x}_{d},\bold{x}_{1}\right) & \dots & \mathrm{Cov}\left(\bold{x}_{d},\bold{x}_{d}\right) \end{array}\right]} $$

Notion d'analyse en composantes principales (ACP) (2/2)

  • On calcule alors les valeurs propres de $A$
  • On les range par ordre croissant et on choisit "une valeur optimale"
  • Ci-dessous par exemple, $2$ dimensions sont suffisantes pour représenter 70% de la variance
  • On prend alors un vecteur propre associée à la plus grande valeur propre et le second mais perpendiculaire au premier vecteur propre
  • On obtient par exemple deux vecteurs propres de taille $D$. Notons $P \in \mathbb{R}^{2\times D}$ la matrice contenant ces vecteurs propres.
  • Les nouvelles données projetées $\tilde{M} \in \mathbb{R}^{2 \times N} $ sont alors :
    $$ $\tilde{M} = P\tilde{X}^\top$ $$
  • On peut alors calculer dans un espace de plus petite dimension le point adéquat