{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "215a158f-aa0b-49ef-aa0d-5b48344be606",
   "metadata": {},
   "source": [
    "# Track - Audio Analysis Features "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "id": "243bb250-65ef-4c6d-ac2c-62b689f209bd",
   "metadata": {},
   "outputs": [],
   "source": [
    "from glob import glob\n",
    "from matplotlib import pylab as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import json\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "id": "1e248b1d-2ce7-405e-bde1-71453a2575db",
   "metadata": {},
   "outputs": [],
   "source": [
    "# !pip install matplotlib"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "9ef81303-155d-4837-b409-13505314a64a",
   "metadata": {},
   "outputs": [],
   "source": [
    "lst_files = glob('/Users/aadam/Downloads/acousticbrainz-lowlevel-json-20220623/lowlevel/*/*/*.json', recursive=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "id": "812abbfd-eb97-4e01-b616-5b9bafe28daa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/Users/aadam/Downloads/acousticbrainz-lowlevel-json-20220623/lowlevel/61/9/619f63d9-9303-431b-b413-1681b49ae1f7-0.json'"
      ]
     },
     "execution_count": 120,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lst_files[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 248,
   "id": "85707697-a018-48e7-8d95-e423eed04c8e",
   "metadata": {},
   "outputs": [],
   "source": [
    "def read_file(file_path:str):\n",
    "    \"\"\"\n",
    "    Reads and returns filepath\n",
    "    params:\n",
    "        - file_path:str - filepath\n",
    "        \n",
    "    returns:\n",
    "        dictionary data\n",
    "    \"\"\"\n",
    "    with open(file_path, 'r') as json_file:\n",
    "        data  = json.load(json_file)\n",
    "    return data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5ea34718-1a2c-4ef8-96e2-6c417778343a",
   "metadata": {},
   "source": [
    "# Track Features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 249,
   "id": "a513e98b-891e-489d-97d8-e9f62f535a08",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = read_file(file_path=lst_files[4])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 250,
   "id": "ac87e214-6264-4e96-a42d-6bac42de665d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['tonal', 'rhythm', 'lowlevel', 'metadata'])"
      ]
     },
     "execution_count": 250,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 251,
   "id": "d4cd7c81-613e-40d7-9947-b20008f23858",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'tags': {'asin': ['B000CS4L1E'],\n",
       "  'date': ['2006'],\n",
       "  'isrc': ['USEP40605104'],\n",
       "  'album': ['Fox Confessor Brings the Flood'],\n",
       "  'genre': ['Alternative'],\n",
       "  'label': ['ANTI-'],\n",
       "  'media': ['CD'],\n",
       "  'title': [\"A Widow's Toast\"],\n",
       "  'artist': ['Neko Case'],\n",
       "  'script': ['Latn'],\n",
       "  'barcode': ['045778677726'],\n",
       "  'encodedby': ['Exact Audio Copy   (Secure mode)'],\n",
       "  'file_name': \"04 - A Widow's Toast.mp3\",\n",
       "  'artistsort': ['Case, Neko'],\n",
       "  'discnumber': ['1/1'],\n",
       "  'acoustid_id': ['6fd9cc72-e905-4a62-bd6c-45dbf47de44d'],\n",
       "  'albumartist': ['Neko Case'],\n",
       "  'tracknumber': ['4/12'],\n",
       "  'originaldate': ['2006'],\n",
       "  'catalognumber': ['86777-2'],\n",
       "  'albumartistsort': ['Case, Neko'],\n",
       "  'musicbrainz_albumid': ['24f52930-c7b3-4f5f-8d88-a086fc16bfcb'],\n",
       "  'musicbrainz_artistid': ['e13d2935-8c42-4c0a-96d7-654062acf106'],\n",
       "  'musicbrainz album type': ['album'],\n",
       "  'musicbrainz_recordingid': ['61978cc9-fcd1-4493-8ac7-a523d7853a52'],\n",
       "  'musicbrainz album status': ['official'],\n",
       "  'musicbrainz_albumartistid': ['e13d2935-8c42-4c0a-96d7-654062acf106'],\n",
       "  'musicbrainz_releasegroupid': ['7813c6a9-36fd-3541-8099-f877a6c72766'],\n",
       "  'musicbrainz album release country': ['US']},\n",
       " 'version': {'essentia': '2.1-beta1',\n",
       "  'extractor': 'music 1.0',\n",
       "  'essentia_git_sha': 'v2.1_beta1-28-g21ef5f4-dirty',\n",
       "  'essentia_build_sha': 'ca57ba49d9b1854bd80e60cf9ccf267278fb7d6b'},\n",
       " 'audio_properties': {'codec': 'mp3',\n",
       "  'length': 96.6541290283,\n",
       "  'downmix': 'mix',\n",
       "  'bit_rate': 185126,\n",
       "  'lossless': False,\n",
       "  'md5_encoded': '0477b56183d7a7c85d09d30d770e3f9c',\n",
       "  'replay_gain': -8.16059684753,\n",
       "  'sample_rate': 44100,\n",
       "  'equal_loudness': 0,\n",
       "  'analysis_sample_rate': 44100}}"
      ]
     },
     "execution_count": 251,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['metadata']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 256,
   "id": "9271e2c6-28ec-4a8f-9da5-c7a617779d94",
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_meta_features( track_features,\n",
    "                                meta_features=[]):\n",
    "        \"\"\"\n",
    "        Extracts meta features\n",
    "\n",
    "        Params:\n",
    "            - meat_features (list, optional): list of meta features to extract.\n",
    "                Defaults to [].\n",
    "        \"\"\"\n",
    "        track_meta = track_features['metadata']\n",
    "\n",
    "        def _flatten_nested_values(val):\n",
    "            if isinstance(val, list):\n",
    "                return val[0]\n",
    "            else:\n",
    "                return val\n",
    "\n",
    "        tags = {k: _flatten_nested_values(v) for k, v in track_meta.items()}\n",
    "        audio_properties = {k: v for k, v in track_meta.items()}\n",
    "\n",
    "        return {**tags, **audio_properties}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 257,
   "id": "dad7f651-2560-4f8b-a76e-53a17d1e7fe8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'tags': {'asin': ['B000CS4L1E'],\n",
       "  'date': ['2006'],\n",
       "  'isrc': ['USEP40605104'],\n",
       "  'album': ['Fox Confessor Brings the Flood'],\n",
       "  'genre': ['Alternative'],\n",
       "  'label': ['ANTI-'],\n",
       "  'media': ['CD'],\n",
       "  'title': [\"A Widow's Toast\"],\n",
       "  'artist': ['Neko Case'],\n",
       "  'script': ['Latn'],\n",
       "  'barcode': ['045778677726'],\n",
       "  'encodedby': ['Exact Audio Copy   (Secure mode)'],\n",
       "  'file_name': \"04 - A Widow's Toast.mp3\",\n",
       "  'artistsort': ['Case, Neko'],\n",
       "  'discnumber': ['1/1'],\n",
       "  'acoustid_id': ['6fd9cc72-e905-4a62-bd6c-45dbf47de44d'],\n",
       "  'albumartist': ['Neko Case'],\n",
       "  'tracknumber': ['4/12'],\n",
       "  'originaldate': ['2006'],\n",
       "  'catalognumber': ['86777-2'],\n",
       "  'albumartistsort': ['Case, Neko'],\n",
       "  'musicbrainz_albumid': ['24f52930-c7b3-4f5f-8d88-a086fc16bfcb'],\n",
       "  'musicbrainz_artistid': ['e13d2935-8c42-4c0a-96d7-654062acf106'],\n",
       "  'musicbrainz album type': ['album'],\n",
       "  'musicbrainz_recordingid': ['61978cc9-fcd1-4493-8ac7-a523d7853a52'],\n",
       "  'musicbrainz album status': ['official'],\n",
       "  'musicbrainz_albumartistid': ['e13d2935-8c42-4c0a-96d7-654062acf106'],\n",
       "  'musicbrainz_releasegroupid': ['7813c6a9-36fd-3541-8099-f877a6c72766'],\n",
       "  'musicbrainz album release country': ['US']},\n",
       " 'version': {'essentia': '2.1-beta1',\n",
       "  'extractor': 'music 1.0',\n",
       "  'essentia_git_sha': 'v2.1_beta1-28-g21ef5f4-dirty',\n",
       "  'essentia_build_sha': 'ca57ba49d9b1854bd80e60cf9ccf267278fb7d6b'},\n",
       " 'audio_properties': {'codec': 'mp3',\n",
       "  'length': 96.6541290283,\n",
       "  'downmix': 'mix',\n",
       "  'bit_rate': 185126,\n",
       "  'lossless': False,\n",
       "  'md5_encoded': '0477b56183d7a7c85d09d30d770e3f9c',\n",
       "  'replay_gain': -8.16059684753,\n",
       "  'sample_rate': 44100,\n",
       "  'equal_loudness': 0,\n",
       "  'analysis_sample_rate': 44100}}"
      ]
     },
     "execution_count": 257,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_meta_features(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 252,
   "id": "3743e2b3-4679-4e23-9dc3-5883c718d145",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_df = pd.DataFrame.from_dict(data['metadata'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 253,
   "id": "4a030ff4-5673-4f8f-8ff1-adaf2a74852d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>tags</th>\n",
       "      <th>version</th>\n",
       "      <th>audio_properties</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>asin</th>\n",
       "      <td>[B000CS4L1E]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <td>[2006]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>isrc</th>\n",
       "      <td>[USEP40605104]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>album</th>\n",
       "      <td>[Fox Confessor Brings the Flood]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>genre</th>\n",
       "      <td>[Alternative]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>label</th>\n",
       "      <td>[ANTI-]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>media</th>\n",
       "      <td>[CD]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>title</th>\n",
       "      <td>[A Widow's Toast]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>artist</th>\n",
       "      <td>[Neko Case]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>script</th>\n",
       "      <td>[Latn]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>barcode</th>\n",
       "      <td>[045778677726]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>encodedby</th>\n",
       "      <td>[Exact Audio Copy   (Secure mode)]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>file_name</th>\n",
       "      <td>04 - A Widow's Toast.mp3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>artistsort</th>\n",
       "      <td>[Case, Neko]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>discnumber</th>\n",
       "      <td>[1/1]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>acoustid_id</th>\n",
       "      <td>[6fd9cc72-e905-4a62-bd6c-45dbf47de44d]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>albumartist</th>\n",
       "      <td>[Neko Case]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>tracknumber</th>\n",
       "      <td>[4/12]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>originaldate</th>\n",
       "      <td>[2006]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>catalognumber</th>\n",
       "      <td>[86777-2]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>albumartistsort</th>\n",
       "      <td>[Case, Neko]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>musicbrainz_albumid</th>\n",
       "      <td>[24f52930-c7b3-4f5f-8d88-a086fc16bfcb]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>musicbrainz_artistid</th>\n",
       "      <td>[e13d2935-8c42-4c0a-96d7-654062acf106]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>musicbrainz album type</th>\n",
       "      <td>[album]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>musicbrainz_recordingid</th>\n",
       "      <td>[61978cc9-fcd1-4493-8ac7-a523d7853a52]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>musicbrainz album status</th>\n",
       "      <td>[official]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>musicbrainz_albumartistid</th>\n",
       "      <td>[e13d2935-8c42-4c0a-96d7-654062acf106]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>musicbrainz_releasegroupid</th>\n",
       "      <td>[7813c6a9-36fd-3541-8099-f877a6c72766]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>musicbrainz album release country</th>\n",
       "      <td>[US]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>essentia</th>\n",
       "      <td>NaN</td>\n",
       "      <td>2.1-beta1</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>extractor</th>\n",
       "      <td>NaN</td>\n",
       "      <td>music 1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>essentia_git_sha</th>\n",
       "      <td>NaN</td>\n",
       "      <td>v2.1_beta1-28-g21ef5f4-dirty</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>essentia_build_sha</th>\n",
       "      <td>NaN</td>\n",
       "      <td>ca57ba49d9b1854bd80e60cf9ccf267278fb7d6b</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>codec</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>mp3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>length</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>96.654129</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>downmix</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>mix</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bit_rate</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>185126</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lossless</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>md5_encoded</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0477b56183d7a7c85d09d30d770e3f9c</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>replay_gain</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-8.160597</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sample_rate</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>44100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>equal_loudness</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>analysis_sample_rate</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>44100</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                                     tags  \\\n",
       "asin                                                         [B000CS4L1E]   \n",
       "date                                                               [2006]   \n",
       "isrc                                                       [USEP40605104]   \n",
       "album                                    [Fox Confessor Brings the Flood]   \n",
       "genre                                                       [Alternative]   \n",
       "label                                                             [ANTI-]   \n",
       "media                                                                [CD]   \n",
       "title                                                   [A Widow's Toast]   \n",
       "artist                                                        [Neko Case]   \n",
       "script                                                             [Latn]   \n",
       "barcode                                                    [045778677726]   \n",
       "encodedby                              [Exact Audio Copy   (Secure mode)]   \n",
       "file_name                                        04 - A Widow's Toast.mp3   \n",
       "artistsort                                                   [Case, Neko]   \n",
       "discnumber                                                          [1/1]   \n",
       "acoustid_id                        [6fd9cc72-e905-4a62-bd6c-45dbf47de44d]   \n",
       "albumartist                                                   [Neko Case]   \n",
       "tracknumber                                                        [4/12]   \n",
       "originaldate                                                       [2006]   \n",
       "catalognumber                                                   [86777-2]   \n",
       "albumartistsort                                              [Case, Neko]   \n",
       "musicbrainz_albumid                [24f52930-c7b3-4f5f-8d88-a086fc16bfcb]   \n",
       "musicbrainz_artistid               [e13d2935-8c42-4c0a-96d7-654062acf106]   \n",
       "musicbrainz album type                                            [album]   \n",
       "musicbrainz_recordingid            [61978cc9-fcd1-4493-8ac7-a523d7853a52]   \n",
       "musicbrainz album status                                       [official]   \n",
       "musicbrainz_albumartistid          [e13d2935-8c42-4c0a-96d7-654062acf106]   \n",
       "musicbrainz_releasegroupid         [7813c6a9-36fd-3541-8099-f877a6c72766]   \n",
       "musicbrainz album release country                                    [US]   \n",
       "essentia                                                              NaN   \n",
       "extractor                                                             NaN   \n",
       "essentia_git_sha                                                      NaN   \n",
       "essentia_build_sha                                                    NaN   \n",
       "codec                                                                 NaN   \n",
       "length                                                                NaN   \n",
       "downmix                                                               NaN   \n",
       "bit_rate                                                              NaN   \n",
       "lossless                                                              NaN   \n",
       "md5_encoded                                                           NaN   \n",
       "replay_gain                                                           NaN   \n",
       "sample_rate                                                           NaN   \n",
       "equal_loudness                                                        NaN   \n",
       "analysis_sample_rate                                                  NaN   \n",
       "\n",
       "                                                                    version  \\\n",
       "asin                                                                    NaN   \n",
       "date                                                                    NaN   \n",
       "isrc                                                                    NaN   \n",
       "album                                                                   NaN   \n",
       "genre                                                                   NaN   \n",
       "label                                                                   NaN   \n",
       "media                                                                   NaN   \n",
       "title                                                                   NaN   \n",
       "artist                                                                  NaN   \n",
       "script                                                                  NaN   \n",
       "barcode                                                                 NaN   \n",
       "encodedby                                                               NaN   \n",
       "file_name                                                               NaN   \n",
       "artistsort                                                              NaN   \n",
       "discnumber                                                              NaN   \n",
       "acoustid_id                                                             NaN   \n",
       "albumartist                                                             NaN   \n",
       "tracknumber                                                             NaN   \n",
       "originaldate                                                            NaN   \n",
       "catalognumber                                                           NaN   \n",
       "albumartistsort                                                         NaN   \n",
       "musicbrainz_albumid                                                     NaN   \n",
       "musicbrainz_artistid                                                    NaN   \n",
       "musicbrainz album type                                                  NaN   \n",
       "musicbrainz_recordingid                                                 NaN   \n",
       "musicbrainz album status                                                NaN   \n",
       "musicbrainz_albumartistid                                               NaN   \n",
       "musicbrainz_releasegroupid                                              NaN   \n",
       "musicbrainz album release country                                       NaN   \n",
       "essentia                                                          2.1-beta1   \n",
       "extractor                                                         music 1.0   \n",
       "essentia_git_sha                               v2.1_beta1-28-g21ef5f4-dirty   \n",
       "essentia_build_sha                 ca57ba49d9b1854bd80e60cf9ccf267278fb7d6b   \n",
       "codec                                                                   NaN   \n",
       "length                                                                  NaN   \n",
       "downmix                                                                 NaN   \n",
       "bit_rate                                                                NaN   \n",
       "lossless                                                                NaN   \n",
       "md5_encoded                                                             NaN   \n",
       "replay_gain                                                             NaN   \n",
       "sample_rate                                                             NaN   \n",
       "equal_loudness                                                          NaN   \n",
       "analysis_sample_rate                                                    NaN   \n",
       "\n",
       "                                                   audio_properties  \n",
       "asin                                                            NaN  \n",
       "date                                                            NaN  \n",
       "isrc                                                            NaN  \n",
       "album                                                           NaN  \n",
       "genre                                                           NaN  \n",
       "label                                                           NaN  \n",
       "media                                                           NaN  \n",
       "title                                                           NaN  \n",
       "artist                                                          NaN  \n",
       "script                                                          NaN  \n",
       "barcode                                                         NaN  \n",
       "encodedby                                                       NaN  \n",
       "file_name                                                       NaN  \n",
       "artistsort                                                      NaN  \n",
       "discnumber                                                      NaN  \n",
       "acoustid_id                                                     NaN  \n",
       "albumartist                                                     NaN  \n",
       "tracknumber                                                     NaN  \n",
       "originaldate                                                    NaN  \n",
       "catalognumber                                                   NaN  \n",
       "albumartistsort                                                 NaN  \n",
       "musicbrainz_albumid                                             NaN  \n",
       "musicbrainz_artistid                                            NaN  \n",
       "musicbrainz album type                                          NaN  \n",
       "musicbrainz_recordingid                                         NaN  \n",
       "musicbrainz album status                                        NaN  \n",
       "musicbrainz_albumartistid                                       NaN  \n",
       "musicbrainz_releasegroupid                                      NaN  \n",
       "musicbrainz album release country                               NaN  \n",
       "essentia                                                        NaN  \n",
       "extractor                                                       NaN  \n",
       "essentia_git_sha                                                NaN  \n",
       "essentia_build_sha                                              NaN  \n",
       "codec                                                           mp3  \n",
       "length                                                    96.654129  \n",
       "downmix                                                         mix  \n",
       "bit_rate                                                     185126  \n",
       "lossless                                                      False  \n",
       "md5_encoded                        0477b56183d7a7c85d09d30d770e3f9c  \n",
       "replay_gain                                               -8.160597  \n",
       "sample_rate                                                   44100  \n",
       "equal_loudness                                                    0  \n",
       "analysis_sample_rate                                          44100  "
      ]
     },
     "execution_count": 253,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 258,
   "id": "0bcbd675-578f-4ca0-baa9-edeee6f973b1",
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_track_metadata(track_features):\n",
    "    \"\"\"returns track metadata \"\"\"\n",
    "    \n",
    "    def _flatten_value(val):\n",
    "        if isinstance(val, list):\n",
    "            return val[0]\n",
    "        else:\n",
    "            return val\n",
    "    \n",
    "    tags =  {k:_flatten_value(v) for k,v in track_features['metadata']['tags'].items()}\n",
    "    audio_properties = {k:v for k,v in track_features['metadata']['audio_properties'].items()}\n",
    "    \n",
    "    return {**tags, **audio_properties}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20e4a927-9065-47ab-b15d-3a0daa4e586e",
   "metadata": {},
   "source": [
    "# Metadata Features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 259,
   "id": "393bd6a3-d07a-4d4e-b41f-f61df57c3335",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'asin': 'B000CS4L1E',\n",
       " 'date': '2006',\n",
       " 'isrc': 'USEP40605104',\n",
       " 'album': 'Fox Confessor Brings the Flood',\n",
       " 'genre': 'Alternative',\n",
       " 'label': 'ANTI-',\n",
       " 'media': 'CD',\n",
       " 'title': \"A Widow's Toast\",\n",
       " 'artist': 'Neko Case',\n",
       " 'script': 'Latn',\n",
       " 'barcode': '045778677726',\n",
       " 'encodedby': 'Exact Audio Copy   (Secure mode)',\n",
       " 'file_name': \"04 - A Widow's Toast.mp3\",\n",
       " 'artistsort': 'Case, Neko',\n",
       " 'discnumber': '1/1',\n",
       " 'acoustid_id': '6fd9cc72-e905-4a62-bd6c-45dbf47de44d',\n",
       " 'albumartist': 'Neko Case',\n",
       " 'tracknumber': '4/12',\n",
       " 'originaldate': '2006',\n",
       " 'catalognumber': '86777-2',\n",
       " 'albumartistsort': 'Case, Neko',\n",
       " 'musicbrainz_albumid': '24f52930-c7b3-4f5f-8d88-a086fc16bfcb',\n",
       " 'musicbrainz_artistid': 'e13d2935-8c42-4c0a-96d7-654062acf106',\n",
       " 'musicbrainz album type': 'album',\n",
       " 'musicbrainz_recordingid': '61978cc9-fcd1-4493-8ac7-a523d7853a52',\n",
       " 'musicbrainz album status': 'official',\n",
       " 'musicbrainz_albumartistid': 'e13d2935-8c42-4c0a-96d7-654062acf106',\n",
       " 'musicbrainz_releasegroupid': '7813c6a9-36fd-3541-8099-f877a6c72766',\n",
       " 'musicbrainz album release country': 'US',\n",
       " 'codec': 'mp3',\n",
       " 'length': 96.6541290283,\n",
       " 'downmix': 'mix',\n",
       " 'bit_rate': 185126,\n",
       " 'lossless': False,\n",
       " 'md5_encoded': '0477b56183d7a7c85d09d30d770e3f9c',\n",
       " 'replay_gain': -8.16059684753,\n",
       " 'sample_rate': 44100,\n",
       " 'equal_loudness': 0,\n",
       " 'analysis_sample_rate': 44100}"
      ]
     },
     "execution_count": 259,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_track_metadata(data)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1abe0b57-2b5b-4f89-8b1e-4ef9ec92f46e",
   "metadata": {},
   "source": [
    "#### Observations\n",
    "- some of the features that can be used from here include:\n",
    "    > * Artist Name\n",
    "    > * Album Name\n",
    "    > * Track Title\n",
    "    > * Script\n",
    "    > * Length\n",
    "    > * Label "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d323d517-916b-4073-abc5-81ec737c6cf9",
   "metadata": {},
   "source": [
    "## Low Level Features\n",
    "\n",
    "Low Level Features of Interest\n",
    "- hfc - high freq. content of spectogram\n",
    "- mfcc -  mel-frequency cepstrum (MFC) applies Fourier transforms and maps it to a mel scale. It allows for signals to be decomposed and enhanced to be cleaner signals.\n",
    "- gfcc - gammatone-frequency cepstral coefﬁcients (GFCC features)\n",
    "\n",
    "- melbands - frequentyly used as features for speaker verification tasks.\n",
    "- erbbands - frequenctly used as features for excitation patterns from audio.\n",
    "- barkbands - algorithm computes energy in Bark bands of a spectrum\n",
    "- dissonance -  measures perceptual roughness of the sound and is based on the roughness of its spectral peaks\n",
    "- average_loudness - average kloudness\n",
    "- zerocrossingrate\n",
    "- silence_rate_60dB (rate of silence at various decibles)\n",
    "- silence_rate_20dB (silence rate at various decibles)\n",
    "- silence_rate_30dB (silence rate are various decibles)\n",
    "- pitch_salience - computes prominence of pitch\n",
    "\n",
    "See - https://essentia.upf.edu/algorithms_overview.html\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 187,
   "id": "48385a9f-23ce-47ac-8d10-5eb085f474e4",
   "metadata": {},
   "outputs": [],
   "source": [
    "low_level_feat_df = pd.DataFrame.from_dict(data['lowlevel'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 269,
   "id": "06df6dea-c482-4c3d-b215-102e3e3aa5da",
   "metadata": {},
   "outputs": [],
   "source": [
    "LOW_LEVEL_FEATURES = [\n",
    "    'hfc', 'gfcc', 'mfcc', 'erbbands', 'melbands', 'barkbands',\n",
    "    'dissonance', 'average_loudness', 'zerocrossingrate',\n",
    "    'silence_rate_60dB', 'silence_rate_20dB', 'silence_rate_30dB',\n",
    "    'pitch_salience'\n",
    "]\n",
    "\n",
    "\n",
    "def get_lowlevel_features( track_features,\n",
    "                            lowlevel_features=LOW_LEVEL_FEATURES):\n",
    "        \"\"\"\n",
    "\n",
    "\n",
    "        Args:\n",
    "            track_features (_type_): _description_\n",
    "            lowlevel_features (list, optional): _description_. \n",
    "                                                Defaults to [].\n",
    "        \"\"\"\n",
    "\n",
    "        lowlevel_feat = track_features['lowlevel']\n",
    "\n",
    "        features = {}\n",
    "\n",
    "        for feat_i in lowlevel_features:\n",
    "            # copy features\n",
    "            if feat_i in lowlevel_feat.keys():\n",
    "                print(feat_i)\n",
    "                if isinstance(lowlevel_feat[feat_i], dict):\n",
    "                    features[f'{feat_i}_mean'] = lowlevel_feat[feat_i]['mean']\n",
    "                else:\n",
    "                    features[f'{feat_i}'] = lowlevel_feat[feat_i]\n",
    "\n",
    "        return features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 270,
   "id": "cd3c06cd-785e-432e-9987-5fb845fea99d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hfc\n",
      "gfcc\n",
      "mfcc\n",
      "erbbands\n",
      "melbands\n",
      "barkbands\n",
      "dissonance\n",
      "average_loudness\n",
      "zerocrossingrate\n",
      "silence_rate_60dB\n",
      "silence_rate_20dB\n",
      "silence_rate_30dB\n",
      "pitch_salience\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'hfc_mean': 211.905654907,\n",
       " 'gfcc_mean': [-100.561828613,\n",
       "  93.7877731323,\n",
       "  -58.0473632812,\n",
       "  -1.16108334064,\n",
       "  -12.0799598694,\n",
       "  -23.171628952,\n",
       "  -6.37576436996,\n",
       "  -21.6759319305,\n",
       "  -6.72486686707,\n",
       "  -13.5865297318,\n",
       "  -18.9070644379,\n",
       "  -10.8763027191,\n",
       "  -1.93911898136],\n",
       " 'mfcc_mean': [-762.092224121,\n",
       "  159.955947876,\n",
       "  8.34285449982,\n",
       "  36.7348403931,\n",
       "  3.77959752083,\n",
       "  14.4094352722,\n",
       "  -1.88195514679,\n",
       "  -1.44467115402,\n",
       "  9.43763542175,\n",
       "  2.69493508339,\n",
       "  -12.9817895889,\n",
       "  -7.92509841919,\n",
       "  1.8965228796],\n",
       " 'erbbands_mean': [0.0388528816402,\n",
       "  0.514706790447,\n",
       "  3.30664968491,\n",
       "  9.3819770813,\n",
       "  19.0323085785,\n",
       "  11.2836694717,\n",
       "  8.93479728699,\n",
       "  15.8766393661,\n",
       "  15.8648481369,\n",
       "  22.9912471771,\n",
       "  22.7852115631,\n",
       "  20.4359130859,\n",
       "  20.2262687683,\n",
       "  38.6229171753,\n",
       "  12.710855484,\n",
       "  8.78093242645,\n",
       "  7.47412967682,\n",
       "  11.4077577591,\n",
       "  18.6090545654,\n",
       "  36.6046638489,\n",
       "  40.655582428,\n",
       "  9.60532188416,\n",
       "  4.52329587936,\n",
       "  4.66354322433,\n",
       "  5.74083471298,\n",
       "  6.64155864716,\n",
       "  6.83242607117,\n",
       "  5.46853733063,\n",
       "  2.88219475746,\n",
       "  1.11075079441,\n",
       "  0.334792822599,\n",
       "  0.110629633069,\n",
       "  0.0373452194035,\n",
       "  0.0206526145339,\n",
       "  0.0142482975498,\n",
       "  0.0130489952862,\n",
       "  0.0539267770946,\n",
       "  0.13758212328,\n",
       "  0.0835763514042,\n",
       "  0.0197872389108],\n",
       " 'melbands_mean': [0.000442433985882,\n",
       "  0.00138166965917,\n",
       "  0.00196563941427,\n",
       "  0.00119279313367,\n",
       "  0.000306964793708,\n",
       "  0.000347872555722,\n",
       "  0.000243215952651,\n",
       "  0.000257801235421,\n",
       "  0.000177657566383,\n",
       "  0.00012565421639,\n",
       "  0.000101929952507,\n",
       "  0.000163914475706,\n",
       "  4.47857673862e-05,\n",
       "  3.00648862321e-05,\n",
       "  1.83009124157e-05,\n",
       "  1.3954336282e-05,\n",
       "  2.19715984713e-05,\n",
       "  2.80932508758e-05,\n",
       "  3.65756641258e-05,\n",
       "  5.63996072742e-05,\n",
       "  4.36170339526e-05,\n",
       "  1.00445959106e-05,\n",
       "  3.94395510739e-06,\n",
       "  3.88331272916e-06,\n",
       "  3.74550245397e-06,\n",
       "  3.49625133822e-06,\n",
       "  4.91977971251e-06,\n",
       "  4.28170642408e-06,\n",
       "  4.46123203801e-06,\n",
       "  3.69404165212e-06,\n",
       "  3.00141982734e-06,\n",
       "  1.77845799954e-06,\n",
       "  9.77059926299e-07,\n",
       "  4.56408770333e-07,\n",
       "  2.0088158692e-07,\n",
       "  1.00310877826e-07,\n",
       "  5.33021875526e-08,\n",
       "  2.67972986023e-08,\n",
       "  1.82391701742e-08,\n",
       "  1.6760600019e-08],\n",
       " 'barkbands_mean': [0.000180528266355,\n",
       "  0.00186749803834,\n",
       "  0.00347364274785,\n",
       "  0.00398211181164,\n",
       "  0.00459971139207,\n",
       "  0.00172328110784,\n",
       "  0.00114529707935,\n",
       "  0.00112000363879,\n",
       "  0.000923252431676,\n",
       "  0.00103559787385,\n",
       "  0.000356570497388,\n",
       "  0.000241241956246,\n",
       "  0.000155781614012,\n",
       "  0.000250045617577,\n",
       "  0.000475762819406,\n",
       "  0.000823611568194,\n",
       "  0.000162435229868,\n",
       "  8.00170237198e-05,\n",
       "  9.54841598286e-05,\n",
       "  0.000149280182086,\n",
       "  0.000155820147484,\n",
       "  7.12461260264e-05,\n",
       "  1.42257722473e-05,\n",
       "  3.25459950545e-06,\n",
       "  1.89679008145e-06,\n",
       "  2.65319085884e-05,\n",
       "  0.000794759136625],\n",
       " 'dissonance_mean': 0.451761752367,\n",
       " 'average_loudness': 0.639868736267,\n",
       " 'zerocrossingrate_mean': 0.399466842413,\n",
       " 'silence_rate_60dB_mean': 0.138568684459,\n",
       " 'silence_rate_20dB_mean': 1,\n",
       " 'silence_rate_30dB_mean': 0.97670507431,\n",
       " 'pitch_salience_mean': 0.536871552467}"
      ]
     },
     "execution_count": 270,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_lowlevel_features(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "id": "ccd6f19b-b025-43b4-b21f-00fc98236874",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['hfc', 'gfcc', 'mfcc', 'erbbands', 'melbands', 'barkbands',\n",
       "       'dissonance', 'spectral_rms', 'spectral_flux', 'erbbands_crest',\n",
       "       'melbands_crest', 'pitch_salience', 'barkbands_crest',\n",
       "       'erbbands_spread', 'melbands_spread', 'spectral_energy',\n",
       "       'spectral_spread', 'average_loudness', 'barkbands_spread',\n",
       "       'spectral_entropy', 'spectral_rolloff', 'zerocrossingrate',\n",
       "       'erbbands_kurtosis', 'erbbands_skewness', 'melbands_kurtosis',\n",
       "       'melbands_skewness', 'silence_rate_20dB', 'silence_rate_30dB',\n",
       "       'silence_rate_60dB', 'spectral_centroid', 'spectral_decrease',\n",
       "       'spectral_kurtosis', 'spectral_skewness', 'barkbands_kurtosis',\n",
       "       'barkbands_skewness', 'dynamic_complexity', 'spectral_complexity',\n",
       "       'spectral_strongpeak', 'erbbands_flatness_db', 'melbands_flatness_db',\n",
       "       'barkbands_flatness_db', 'spectral_energyband_low',\n",
       "       'spectral_contrast_coeffs', 'spectral_energyband_high',\n",
       "       'spectral_contrast_valleys', 'spectral_energyband_middle_low',\n",
       "       'spectral_energyband_middle_high'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 188,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "low_level_feat_df.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 207,
   "id": "8c8e0d5b-ce47-4a11-80c2-c6c53fd8baba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "max       1.000000\n",
       "min       0.000000\n",
       "var       0.119363\n",
       "dvar      0.015603\n",
       "mean      0.138569\n",
       "dmean     0.015854\n",
       "dvar2     0.036477\n",
       "dmean2    0.031716\n",
       "median    0.000000\n",
       "cov            NaN\n",
       "icov           NaN\n",
       "Name: silence_rate_60dB, dtype: float64"
      ]
     },
     "execution_count": 207,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "low_level_feat_df['silence_rate_60dB']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 210,
   "id": "9e136c85-766f-45a1-af7c-2571315e7ce9",
   "metadata": {},
   "outputs": [],
   "source": [
    "LOW_LEVEL_FEATURES = [\n",
    "    'hfc', 'gfcc', 'mfcc', 'erbbands', 'melbands', 'barkbands',\n",
    "    'dissonance', 'average_loudness', 'zerocrossingrate',\n",
    "    'silence_rate_60dB', 'silence_rate_20dB', 'silence_rate_30dB',\n",
    "    'pitch_salience'\n",
    "]\n",
    "def get_lowlevel_features(track_features=low_level_feat_df, lowlevel_features=LOW_LEVEL_FEATURES):\n",
    "        \"\"\"\n",
    "\n",
    "\n",
    "        Args:\n",
    "            track_features (_type_): _description_\n",
    "            lowlevel_features (list, optional): _description_. \n",
    "                                                Defaults to [].\n",
    "        \"\"\"\n",
    "\n",
    "        lowlevel_feat = track_features\n",
    "\n",
    "        features = {}\n",
    "\n",
    "        for feat_i in lowlevel_features:\n",
    "\n",
    "            # assign features\n",
    "            if feat_i in lowlevel_feat.keys():\n",
    "                features[f'{feat_i}_mean'] = lowlevel_feat[feat_i]['mean']\n",
    "\n",
    "        return features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 211,
   "id": "80de17ac-ab63-4b06-9472-1c031618372f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'hfc_mean': 211.905654907,\n",
       " 'gfcc_mean': [-100.561828613,\n",
       "  93.7877731323,\n",
       "  -58.0473632812,\n",
       "  -1.16108334064,\n",
       "  -12.0799598694,\n",
       "  -23.171628952,\n",
       "  -6.37576436996,\n",
       "  -21.6759319305,\n",
       "  -6.72486686707,\n",
       "  -13.5865297318,\n",
       "  -18.9070644379,\n",
       "  -10.8763027191,\n",
       "  -1.93911898136],\n",
       " 'mfcc_mean': [-762.092224121,\n",
       "  159.955947876,\n",
       "  8.34285449982,\n",
       "  36.7348403931,\n",
       "  3.77959752083,\n",
       "  14.4094352722,\n",
       "  -1.88195514679,\n",
       "  -1.44467115402,\n",
       "  9.43763542175,\n",
       "  2.69493508339,\n",
       "  -12.9817895889,\n",
       "  -7.92509841919,\n",
       "  1.8965228796],\n",
       " 'erbbands_mean': [0.0388528816402,\n",
       "  0.514706790447,\n",
       "  3.30664968491,\n",
       "  9.3819770813,\n",
       "  19.0323085785,\n",
       "  11.2836694717,\n",
       "  8.93479728699,\n",
       "  15.8766393661,\n",
       "  15.8648481369,\n",
       "  22.9912471771,\n",
       "  22.7852115631,\n",
       "  20.4359130859,\n",
       "  20.2262687683,\n",
       "  38.6229171753,\n",
       "  12.710855484,\n",
       "  8.78093242645,\n",
       "  7.47412967682,\n",
       "  11.4077577591,\n",
       "  18.6090545654,\n",
       "  36.6046638489,\n",
       "  40.655582428,\n",
       "  9.60532188416,\n",
       "  4.52329587936,\n",
       "  4.66354322433,\n",
       "  5.74083471298,\n",
       "  6.64155864716,\n",
       "  6.83242607117,\n",
       "  5.46853733063,\n",
       "  2.88219475746,\n",
       "  1.11075079441,\n",
       "  0.334792822599,\n",
       "  0.110629633069,\n",
       "  0.0373452194035,\n",
       "  0.0206526145339,\n",
       "  0.0142482975498,\n",
       "  0.0130489952862,\n",
       "  0.0539267770946,\n",
       "  0.13758212328,\n",
       "  0.0835763514042,\n",
       "  0.0197872389108],\n",
       " 'melbands_mean': [0.000442433985882,\n",
       "  0.00138166965917,\n",
       "  0.00196563941427,\n",
       "  0.00119279313367,\n",
       "  0.000306964793708,\n",
       "  0.000347872555722,\n",
       "  0.000243215952651,\n",
       "  0.000257801235421,\n",
       "  0.000177657566383,\n",
       "  0.00012565421639,\n",
       "  0.000101929952507,\n",
       "  0.000163914475706,\n",
       "  4.47857673862e-05,\n",
       "  3.00648862321e-05,\n",
       "  1.83009124157e-05,\n",
       "  1.3954336282e-05,\n",
       "  2.19715984713e-05,\n",
       "  2.80932508758e-05,\n",
       "  3.65756641258e-05,\n",
       "  5.63996072742e-05,\n",
       "  4.36170339526e-05,\n",
       "  1.00445959106e-05,\n",
       "  3.94395510739e-06,\n",
       "  3.88331272916e-06,\n",
       "  3.74550245397e-06,\n",
       "  3.49625133822e-06,\n",
       "  4.91977971251e-06,\n",
       "  4.28170642408e-06,\n",
       "  4.46123203801e-06,\n",
       "  3.69404165212e-06,\n",
       "  3.00141982734e-06,\n",
       "  1.77845799954e-06,\n",
       "  9.77059926299e-07,\n",
       "  4.56408770333e-07,\n",
       "  2.0088158692e-07,\n",
       "  1.00310877826e-07,\n",
       "  5.33021875526e-08,\n",
       "  2.67972986023e-08,\n",
       "  1.82391701742e-08,\n",
       "  1.6760600019e-08],\n",
       " 'barkbands_mean': [0.000180528266355,\n",
       "  0.00186749803834,\n",
       "  0.00347364274785,\n",
       "  0.00398211181164,\n",
       "  0.00459971139207,\n",
       "  0.00172328110784,\n",
       "  0.00114529707935,\n",
       "  0.00112000363879,\n",
       "  0.000923252431676,\n",
       "  0.00103559787385,\n",
       "  0.000356570497388,\n",
       "  0.000241241956246,\n",
       "  0.000155781614012,\n",
       "  0.000250045617577,\n",
       "  0.000475762819406,\n",
       "  0.000823611568194,\n",
       "  0.000162435229868,\n",
       "  8.00170237198e-05,\n",
       "  9.54841598286e-05,\n",
       "  0.000149280182086,\n",
       "  0.000155820147484,\n",
       "  7.12461260264e-05,\n",
       "  1.42257722473e-05,\n",
       "  3.25459950545e-06,\n",
       "  1.89679008145e-06,\n",
       "  2.65319085884e-05,\n",
       "  0.000794759136625],\n",
       " 'dissonance_mean': 0.451761752367,\n",
       " 'average_loudness_mean': 0.639868736267,\n",
       " 'zerocrossingrate_mean': 0.399466842413,\n",
       " 'silence_rate_60dB_mean': 0.138568684459,\n",
       " 'silence_rate_20dB_mean': 1.0,\n",
       " 'silence_rate_30dB_mean': 0.97670507431,\n",
       " 'pitch_salience_mean': 0.536871552467}"
      ]
     },
     "execution_count": 211,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_lowlevel_features()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 189,
   "id": "144d960c-6b19-4732-98bd-32ce974faaf1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>hfc</th>\n",
       "      <th>gfcc</th>\n",
       "      <th>mfcc</th>\n",
       "      <th>erbbands</th>\n",
       "      <th>melbands</th>\n",
       "      <th>barkbands</th>\n",
       "      <th>dissonance</th>\n",
       "      <th>spectral_rms</th>\n",
       "      <th>spectral_flux</th>\n",
       "      <th>erbbands_crest</th>\n",
       "      <th>...</th>\n",
       "      <th>spectral_strongpeak</th>\n",
       "      <th>erbbands_flatness_db</th>\n",
       "      <th>melbands_flatness_db</th>\n",
       "      <th>barkbands_flatness_db</th>\n",
       "      <th>spectral_energyband_low</th>\n",
       "      <th>spectral_contrast_coeffs</th>\n",
       "      <th>spectral_energyband_high</th>\n",
       "      <th>spectral_contrast_valleys</th>\n",
       "      <th>spectral_energyband_middle_low</th>\n",
       "      <th>spectral_energyband_middle_high</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>2.230382e+03</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[0.820002496243, 14.249256134, 82.9038925171, ...</td>\n",
       "      <td>[0.010191350244, 0.0349953696132, 0.0289594046...</td>\n",
       "      <td>[0.00319805461913, 0.0488674640656, 0.08788613...</td>\n",
       "      <td>0.499914</td>\n",
       "      <td>1.618911e-02</td>\n",
       "      <td>3.609046e-01</td>\n",
       "      <td>30.548428</td>\n",
       "      <td>...</td>\n",
       "      <td>247.914490</td>\n",
       "      <td>0.398533</td>\n",
       "      <td>0.662461</td>\n",
       "      <td>0.492224</td>\n",
       "      <td>1.147767e-01</td>\n",
       "      <td>[-0.222845345736, -0.444878041744, -0.53200232...</td>\n",
       "      <td>3.909439e-02</td>\n",
       "      <td>[-5.51698303223, -4.72332572937, -5.4998517036...</td>\n",
       "      <td>1.718472e-01</td>\n",
       "      <td>7.942636e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.077043e-16</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[1.63639084747e-22, 9.8976613254e-22, 3.147829...</td>\n",
       "      <td>[1.3594755524e-24, 1.71048000104e-24, 1.617334...</td>\n",
       "      <td>[5.07885266164e-25, 5.02665718681e-24, 1.13785...</td>\n",
       "      <td>0.232962</td>\n",
       "      <td>3.121226e-12</td>\n",
       "      <td>6.461675e-11</td>\n",
       "      <td>2.733708</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.049474</td>\n",
       "      <td>0.003466</td>\n",
       "      <td>0.045891</td>\n",
       "      <td>1.005459e-23</td>\n",
       "      <td>[-0.98065340519, -0.987037360668, -0.975755393...</td>\n",
       "      <td>7.081175e-21</td>\n",
       "      <td>[-27.9198455811, -27.9055843353, -27.846807479...</td>\n",
       "      <td>1.555582e-22</td>\n",
       "      <td>1.220252e-21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>var</th>\n",
       "      <td>3.563898e+04</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[0.00360228447244, 0.984209656715, 44.52894973...</td>\n",
       "      <td>[5.37078847174e-07, 7.09855930836e-06, 8.61569...</td>\n",
       "      <td>[6.63043522309e-08, 1.16369874377e-05, 4.41847...</td>\n",
       "      <td>0.001166</td>\n",
       "      <td>7.100399e-06</td>\n",
       "      <td>2.417618e-03</td>\n",
       "      <td>21.641146</td>\n",
       "      <td>...</td>\n",
       "      <td>474.424774</td>\n",
       "      <td>0.002126</td>\n",
       "      <td>0.009871</td>\n",
       "      <td>0.005068</td>\n",
       "      <td>1.149918e-04</td>\n",
       "      <td>[0.0117595661432, 0.00685589713976, 0.00726224...</td>\n",
       "      <td>9.154720e-06</td>\n",
       "      <td>[7.75352907181, 8.7395362854, 8.24626255035, 8...</td>\n",
       "      <td>2.968303e-04</td>\n",
       "      <td>3.724462e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>dvar</th>\n",
       "      <td>1.058214e+04</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[0.00196999870241, 0.591968536377, 22.10923767...</td>\n",
       "      <td>[3.0394062378e-07, 3.51018547917e-06, 3.047154...</td>\n",
       "      <td>[5.31074810795e-08, 7.41760686651e-06, 2.25610...</td>\n",
       "      <td>0.000526</td>\n",
       "      <td>6.011729e-07</td>\n",
       "      <td>4.047796e-04</td>\n",
       "      <td>7.933722</td>\n",
       "      <td>...</td>\n",
       "      <td>493.921509</td>\n",
       "      <td>0.000515</td>\n",
       "      <td>0.001045</td>\n",
       "      <td>0.000716</td>\n",
       "      <td>4.570858e-05</td>\n",
       "      <td>[0.00182882277295, 0.00168276682962, 0.0009994...</td>\n",
       "      <td>2.967666e-06</td>\n",
       "      <td>[0.118304029107, 0.141670420766, 0.15115506947...</td>\n",
       "      <td>8.860978e-05</td>\n",
       "      <td>9.667431e-06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.119057e+02</td>\n",
       "      <td>[-100.561828613, 93.7877731323, -58.0473632812...</td>\n",
       "      <td>[-762.092224121, 159.955947876, 8.34285449982,...</td>\n",
       "      <td>[0.0388528816402, 0.514706790447, 3.3066496849...</td>\n",
       "      <td>[0.000442433985882, 0.00138166965917, 0.001965...</td>\n",
       "      <td>[0.000180528266355, 0.00186749803834, 0.003473...</td>\n",
       "      <td>0.451762</td>\n",
       "      <td>4.948100e-03</td>\n",
       "      <td>8.317015e-02</td>\n",
       "      <td>11.119345</td>\n",
       "      <td>...</td>\n",
       "      <td>10.253385</td>\n",
       "      <td>0.164639</td>\n",
       "      <td>0.309019</td>\n",
       "      <td>0.193088</td>\n",
       "      <td>7.301841e-03</td>\n",
       "      <td>[-0.618553638458, -0.766318440437, -0.79607868...</td>\n",
       "      <td>9.625010e-04</td>\n",
       "      <td>[-7.86846446991, -7.61468935013, -8.3579969406...</td>\n",
       "      <td>1.363592e-02</td>\n",
       "      <td>3.669869e-03</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 47 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "               hfc                                               gfcc  \\\n",
       "max   2.230382e+03                                                NaN   \n",
       "min   1.077043e-16                                                NaN   \n",
       "var   3.563898e+04                                                NaN   \n",
       "dvar  1.058214e+04                                                NaN   \n",
       "mean  2.119057e+02  [-100.561828613, 93.7877731323, -58.0473632812...   \n",
       "\n",
       "                                                   mfcc  \\\n",
       "max                                                 NaN   \n",
       "min                                                 NaN   \n",
       "var                                                 NaN   \n",
       "dvar                                                NaN   \n",
       "mean  [-762.092224121, 159.955947876, 8.34285449982,...   \n",
       "\n",
       "                                               erbbands  \\\n",
       "max   [0.820002496243, 14.249256134, 82.9038925171, ...   \n",
       "min   [1.63639084747e-22, 9.8976613254e-22, 3.147829...   \n",
       "var   [0.00360228447244, 0.984209656715, 44.52894973...   \n",
       "dvar  [0.00196999870241, 0.591968536377, 22.10923767...   \n",
       "mean  [0.0388528816402, 0.514706790447, 3.3066496849...   \n",
       "\n",
       "                                               melbands  \\\n",
       "max   [0.010191350244, 0.0349953696132, 0.0289594046...   \n",
       "min   [1.3594755524e-24, 1.71048000104e-24, 1.617334...   \n",
       "var   [5.37078847174e-07, 7.09855930836e-06, 8.61569...   \n",
       "dvar  [3.0394062378e-07, 3.51018547917e-06, 3.047154...   \n",
       "mean  [0.000442433985882, 0.00138166965917, 0.001965...   \n",
       "\n",
       "                                              barkbands  dissonance  \\\n",
       "max   [0.00319805461913, 0.0488674640656, 0.08788613...    0.499914   \n",
       "min   [5.07885266164e-25, 5.02665718681e-24, 1.13785...    0.232962   \n",
       "var   [6.63043522309e-08, 1.16369874377e-05, 4.41847...    0.001166   \n",
       "dvar  [5.31074810795e-08, 7.41760686651e-06, 2.25610...    0.000526   \n",
       "mean  [0.000180528266355, 0.00186749803834, 0.003473...    0.451762   \n",
       "\n",
       "      spectral_rms  spectral_flux  erbbands_crest  ...  spectral_strongpeak  \\\n",
       "max   1.618911e-02   3.609046e-01       30.548428  ...           247.914490   \n",
       "min   3.121226e-12   6.461675e-11        2.733708  ...             0.000000   \n",
       "var   7.100399e-06   2.417618e-03       21.641146  ...           474.424774   \n",
       "dvar  6.011729e-07   4.047796e-04        7.933722  ...           493.921509   \n",
       "mean  4.948100e-03   8.317015e-02       11.119345  ...            10.253385   \n",
       "\n",
       "      erbbands_flatness_db  melbands_flatness_db  barkbands_flatness_db  \\\n",
       "max               0.398533              0.662461               0.492224   \n",
       "min               0.049474              0.003466               0.045891   \n",
       "var               0.002126              0.009871               0.005068   \n",
       "dvar              0.000515              0.001045               0.000716   \n",
       "mean              0.164639              0.309019               0.193088   \n",
       "\n",
       "      spectral_energyband_low  \\\n",
       "max              1.147767e-01   \n",
       "min              1.005459e-23   \n",
       "var              1.149918e-04   \n",
       "dvar             4.570858e-05   \n",
       "mean             7.301841e-03   \n",
       "\n",
       "                               spectral_contrast_coeffs  \\\n",
       "max   [-0.222845345736, -0.444878041744, -0.53200232...   \n",
       "min   [-0.98065340519, -0.987037360668, -0.975755393...   \n",
       "var   [0.0117595661432, 0.00685589713976, 0.00726224...   \n",
       "dvar  [0.00182882277295, 0.00168276682962, 0.0009994...   \n",
       "mean  [-0.618553638458, -0.766318440437, -0.79607868...   \n",
       "\n",
       "      spectral_energyband_high  \\\n",
       "max               3.909439e-02   \n",
       "min               7.081175e-21   \n",
       "var               9.154720e-06   \n",
       "dvar              2.967666e-06   \n",
       "mean              9.625010e-04   \n",
       "\n",
       "                              spectral_contrast_valleys  \\\n",
       "max   [-5.51698303223, -4.72332572937, -5.4998517036...   \n",
       "min   [-27.9198455811, -27.9055843353, -27.846807479...   \n",
       "var   [7.75352907181, 8.7395362854, 8.24626255035, 8...   \n",
       "dvar  [0.118304029107, 0.141670420766, 0.15115506947...   \n",
       "mean  [-7.86846446991, -7.61468935013, -8.3579969406...   \n",
       "\n",
       "      spectral_energyband_middle_low  spectral_energyband_middle_high  \n",
       "max                     1.718472e-01                     7.942636e-02  \n",
       "min                     1.555582e-22                     1.220252e-21  \n",
       "var                     2.968303e-04                     3.724462e-05  \n",
       "dvar                    8.860978e-05                     9.667431e-06  \n",
       "mean                    1.363592e-02                     3.669869e-03  \n",
       "\n",
       "[5 rows x 47 columns]"
      ]
     },
     "execution_count": 189,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "low_level_feat_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "id": "e15a6539-70c0-4ff4-8a93-1c810f7c7e85",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0323736295104"
      ]
     },
     "execution_count": 190,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "low_level_feat_df['spectral_energy']['mean']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "id": "b5478365-0214-43ba-8234-cd07160d204d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "max       2.230382e+03\n",
       "min       1.077043e-16\n",
       "var       3.563898e+04\n",
       "dvar      1.058214e+04\n",
       "mean      2.119057e+02\n",
       "dmean     7.603786e+01\n",
       "dvar2     2.749189e+04\n",
       "dmean2    1.204306e+02\n",
       "median    1.741270e+02\n",
       "cov                NaN\n",
       "icov               NaN\n",
       "Name: hfc, dtype: float64"
      ]
     },
     "execution_count": 204,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "low_level_feat_df['hfc']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 206,
   "id": "e8c57218-236e-45e7-8ec9-3dfdd041e3e3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[-100.561828613,\n",
       " 93.7877731323,\n",
       " -58.0473632812,\n",
       " -1.16108334064,\n",
       " -12.0799598694,\n",
       " -23.171628952,\n",
       " -6.37576436996,\n",
       " -21.6759319305,\n",
       " -6.72486686707,\n",
       " -13.5865297318,\n",
       " -18.9070644379,\n",
       " -10.8763027191,\n",
       " -1.93911898136]"
      ]
     },
     "execution_count": 206,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "low_level_feat_df['gfcc']['mean']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 191,
   "id": "6de875c4-540a-458d-9bdf-4e681f2ba99b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>hfc</th>\n",
       "      <th>gfcc</th>\n",
       "      <th>mfcc</th>\n",
       "      <th>dissonance</th>\n",
       "      <th>spectral_centroid</th>\n",
       "      <th>spectral_energy</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>2.230382e+03</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.499914</td>\n",
       "      <td>1.183121e+04</td>\n",
       "      <td>2.686395e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.077043e-16</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.232962</td>\n",
       "      <td>1.238715e+02</td>\n",
       "      <td>9.985604e-21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>var</th>\n",
       "      <td>3.563898e+04</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.001166</td>\n",
       "      <td>2.574786e+06</td>\n",
       "      <td>8.517976e-04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>dvar</th>\n",
       "      <td>1.058214e+04</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000526</td>\n",
       "      <td>1.269049e+05</td>\n",
       "      <td>1.668527e-04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.119057e+02</td>\n",
       "      <td>[-100.561828613, 93.7877731323, -58.0473632812...</td>\n",
       "      <td>[-762.092224121, 159.955947876, 8.34285449982,...</td>\n",
       "      <td>0.451762</td>\n",
       "      <td>9.862650e+02</td>\n",
       "      <td>3.237363e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>dmean</th>\n",
       "      <td>7.603786e+01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.024879</td>\n",
       "      <td>1.946134e+02</td>\n",
       "      <td>9.236554e-03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>dvar2</th>\n",
       "      <td>2.749189e+04</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.001403</td>\n",
       "      <td>2.163730e+05</td>\n",
       "      <td>4.016345e-04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>dmean2</th>\n",
       "      <td>1.204306e+02</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.040778</td>\n",
       "      <td>2.800619e+02</td>\n",
       "      <td>1.432104e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>median</th>\n",
       "      <td>1.741270e+02</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.458303</td>\n",
       "      <td>5.435768e+02</td>\n",
       "      <td>2.712697e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cov</th>\n",
       "      <td>NaN</td>\n",
       "      <td>[[38862.0546875, 2675.2121582, -5493.80517578,...</td>\n",
       "      <td>[[18833.1347656, 2214.2512207, -3985.25292969,...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>icov</th>\n",
       "      <td>NaN</td>\n",
       "      <td>[[0.000116281458759, -0.000416491617216, 0.000...</td>\n",
       "      <td>[[0.000199125468498, -0.000271070864983, 0.000...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 hfc                                               gfcc  \\\n",
       "max     2.230382e+03                                                NaN   \n",
       "min     1.077043e-16                                                NaN   \n",
       "var     3.563898e+04                                                NaN   \n",
       "dvar    1.058214e+04                                                NaN   \n",
       "mean    2.119057e+02  [-100.561828613, 93.7877731323, -58.0473632812...   \n",
       "dmean   7.603786e+01                                                NaN   \n",
       "dvar2   2.749189e+04                                                NaN   \n",
       "dmean2  1.204306e+02                                                NaN   \n",
       "median  1.741270e+02                                                NaN   \n",
       "cov              NaN  [[38862.0546875, 2675.2121582, -5493.80517578,...   \n",
       "icov             NaN  [[0.000116281458759, -0.000416491617216, 0.000...   \n",
       "\n",
       "                                                     mfcc  dissonance  \\\n",
       "max                                                   NaN    0.499914   \n",
       "min                                                   NaN    0.232962   \n",
       "var                                                   NaN    0.001166   \n",
       "dvar                                                  NaN    0.000526   \n",
       "mean    [-762.092224121, 159.955947876, 8.34285449982,...    0.451762   \n",
       "dmean                                                 NaN    0.024879   \n",
       "dvar2                                                 NaN    0.001403   \n",
       "dmean2                                                NaN    0.040778   \n",
       "median                                                NaN    0.458303   \n",
       "cov     [[18833.1347656, 2214.2512207, -3985.25292969,...         NaN   \n",
       "icov    [[0.000199125468498, -0.000271070864983, 0.000...         NaN   \n",
       "\n",
       "        spectral_centroid  spectral_energy  \n",
       "max          1.183121e+04     2.686395e-01  \n",
       "min          1.238715e+02     9.985604e-21  \n",
       "var          2.574786e+06     8.517976e-04  \n",
       "dvar         1.269049e+05     1.668527e-04  \n",
       "mean         9.862650e+02     3.237363e-02  \n",
       "dmean        1.946134e+02     9.236554e-03  \n",
       "dvar2        2.163730e+05     4.016345e-04  \n",
       "dmean2       2.800619e+02     1.432104e-02  \n",
       "median       5.435768e+02     2.712697e-02  \n",
       "cov                   NaN              NaN  \n",
       "icov                  NaN              NaN  "
      ]
     },
     "execution_count": 191,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "low_level_feat_df[['hfc', 'gfcc', 'mfcc', 'dissonance', 'spectral_centroid', 'spectral_energy']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 192,
   "id": "e6cd39b6-9867-4be8-aece-cc4c8ba83fc1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'GFCC - mean')"
      ]
     },
     "execution_count": 192,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(np.array(data['lowlevel']['gfcc']['mean']).reshape(1,13))\n",
    "plt.title('GFCC - mean')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "id": "bce44e4a-6dbc-48c0-a4f8-7e031a824eb9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'GFCC - cov')"
      ]
     },
     "execution_count": 193,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGzCAYAAABpdMNsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAinklEQVR4nO3de3BU9f3/8dfuhmxCCKvBEpIRMFUUuQi0CNU4VksUGYwyjhUtKl907C1UkFaRtogdL/EuBZkgdqo4FUGtWMq0OjHlMlaQS4yFKoHUFDNioEw1G0IJYffz+6PD/tiGO2fPO1mej5kzw57zyb7fn81mX5zdc84GnHNOAAD4LGjdAADg9EQAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQEgr9fX1mjx5ss4//3x17dpVXbt21YABA1RWVqa//e1vSWMffPBBBQKBwy7z589PGrtv3z49++yzGjlypCKRiLKysnT++edr8uTJ2rp1a7s+ampqdOutt6p3794Kh8PKy8tTSUmJXnzxRcVisZQ+BkBnkWHdAOCV5cuXa/z48crIyNCECRM0ZMgQBYNBbdmyRW+++aYqKipUX1+vvn37Jv1cRUWFunXrlrRu5MiRiX/v3r1b11xzjTZu3Khrr71W3/ve99StWzfV1tZq8eLFWrBggfbv358Y/5vf/EY//OEPlZ+fr9tuu039+vVTc3OzqqqqdOedd+qLL77Qz3/+89Q+GEBn4IA0UFdX53JyctyFF17oduzY0W57W1ub+/Wvf+0+++yzxLpZs2Y5Se5f//rXUe977NixLhgMujfeeKPdtn379rmf/vSnidtr1qxxoVDIXXbZZS4ajbYbv379evfiiy+ewMyA9EUAIS18//vfd5Lc2rVrj/tnjieA1q5d6yS5u+6667ju85prrnEZGRlu+/btx93HqVq7dq0bM2aMO+OMM1zXrl3d4MGD3ezZs5PGVFVVucsuu8x17drVRSIRd91117mPP/44sf311193ktzKlSvb3f/8+fOdJLdp06aUzwWnFz4DQlpYvny5zjvvvKS3zo7Xv//9b+3evTuxfPnll4lty5YtkyTddtttx7yfvXv3qqqqSpdffrn69Olzwn2cjMrKSl1++eX6+OOPNWXKFD399NO68sortXz58sSYd999V6NHj9auXbv04IMPatq0aXr//fdVXFysf/7zn5KksWPHqlu3bnrttdfa1ViyZIkGDhyoQYMG+TInnD74DAidXjQa1Y4dOzRu3Lh227766isdOHAgcTsnJ0fZ2dlJYy644IKk23379k28MH/yySeSpMGDBx+zj7q6OrW1tR3XWC/EYjH94Ac/UEFBgWpqanTGGWcktrlDvubr3nvvVV5entasWaO8vDxJ0rhx4zRs2DDNmjVLCxcuVHZ2tkpLS/XGG29ozpw5CoVCkqTGxkatWrVKDz74oC9zwumFAEKnF41GJandgQSSdMUVV+ijjz5K3H7yySf1s5/9LGnM73//e3Xv3j1x+9CAOnjfubm5x93H8Yz1wocffqj6+no9++yzSeEjSYFAQJL0xRdfqKamRvfdd18ifCTpoosu0lVXXaU//elPiXXjx4/Xq6++qpUrV2rUqFGSpDfeeEPxeFzjx49P/YRw2iGA0OkdfMHfs2dPu23PP/+8mpubtXPnTt16662H/fnLL79cZ5111mG3HQym5ubmdi/yRxt7spqamvSf//wncTszMzMpOA71j3/8Q5KO+tbY9u3bJbXfy5OkCy+8UO+8845aWlqUk5Oja665RpFIREuWLEkE0JIlSzR06FCdf/75Jz0n4Ej4DAidXiQSUUFBgTZv3txu28iRI1VSUqLi4uKTuu/+/ftLkjZt2nTMseedd54yMjKOa+yRTJkyRQUFBYnlhhtuOOn7OlHhcFjjxo3T0qVLdeDAAX3++ef661//yt4PUoYAQloYO3as6urqtG7dOk/vt7S0VJL0u9/97phju3btqu985ztavXq1GhoaTqrefffdp8rKysTy9NNPH3HsueeeK0mHDd6DDp7zVFtb227bli1bdNZZZyknJyexbvz48dq9e7eqqqr0+uuvyzlHACF1rA/DA7ywdetW17VrVzdw4EDX2NjYbvunn37qJLknn3wyse54zwO65pprXDAYdEuXLm23rbW1Nek8oL/+9a8uFAq5b3/72665ubnd+A0bNriXXnrpBGZ2ZLFYzBUVFbm+ffu6L7/8MmlbPB5P/Hvo0KEuPz8/acymTZtcMBh0t99+e9LP7d+/3+Xl5blJkya5b33rW27EiBGe9AocDp8BIS3069dPixYt0i233KILLrggcSUE55zq6+u1aNEiBYNBnX322Sd83y+//LKuvvpq3XDD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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(np.array(data['lowlevel']['gfcc']['cov']).reshape(13,13))\n",
    "plt.title('GFCC - cov')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "id": "5951baea-a1a0-451d-901b-9a78baa2e7d6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'MFCC - mean')"
      ]
     },
     "execution_count": 194,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAABoCAYAAAA5FhC5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAYMklEQVR4nO3de1SUdf4H8PdwmwG5KIgMKCARLt5TUBY0c3MSL+GiqXkF0SxbPYFkx9uieZ211Ex0Vbaj1lHSbNVVN/0dRHLX9YKCtLhrqOWFXEFJHRDiNvP9/dFhamIgx5ie59H365znHJ/vfL/PvOcLMp/zXFVCCAEiIiIihXCQOgARERGRLVi8EBERkaKweCEiIiJFYfFCREREisLihYiIiBSFxQsREREpCosXIiIiUhQWL0RERKQoLF6IiIhIUVi8EBERkaKweCF6TG3fvh0qlQoqlQonTpxo9LoQAoGBgVCpVHjxxRctXmsY99NFq9U22k5BQQEmTZqEwMBAqNVqeHt7Q6fTYdu2bTAajRZ9q6ur8d577yEqKgpeXl7QaDTo1KkTZs2ahUuXLrXsBBDRY8tJ6gBEZF8ajQaZmZno37+/Rfvx48fxzTffQK1WWx33wgsvICEhwaLN1dXVYv2DDz7AjBkz4Ofnh8mTJyMsLAwVFRXIzs7GtGnTcOvWLSxYsAAAUFZWhiFDhiAvLw8vvvgiJkyYAHd3dxQVFWHXrl3IyMhAbW1tC35yInpcsXgheswNGzYMe/bswfr16+Hk9MN/+czMTERERKCsrMzquE6dOmHSpElNbvf06dOYMWMGoqOj8dlnn8HDw8P8WkpKCs6dO4cLFy6Y26ZMmYLz58/j008/xUsvvWSxrWXLlmHhwoWP+hGJ6AnDw0ZEj7nx48fj22+/RVZWlrmttrYWn376KSZMmPDI212yZAlUKhV27txpUbg0iIyMxJQpUwAAZ86cwd///ndMmzatUeECAGq1GqtXr37kLD/1+eefQ6VS4ZNPPsGSJUvQvn17eHh4YPTo0TAYDKipqUFKSgratWsHd3d3JCUloaamptF2duzYgYiICLi6usLb2xvjxo1DcXGxRZ9//vOfGDNmDIKCgqBWqxEYGIjZs2fju+++s+g3ZcoUuLu74+bNm4iPj4e7uzt8fX0xZ86cRofXiKh53PNC9Jjr2LEjoqOj8fHHH2Po0KEAgMOHD8NgMGDcuHFYv3691XHV1dWN9sp4eHhArVajqqoK2dnZGDBgAIKCgn42w4EDBwAAkydP/oWfxjZ6vR6urq6YN28erly5gvT0dDg7O8PBwQH37t3D22+/jdOnT2P79u0ICQnBokWLzGNXrFiBtLQ0jB07Fq+88gru3LmD9PR0DBgwAOfPn0fr1q0BAHv27EFVVRVef/11+Pj4IDc3F+np6fjmm2+wZ88eizxGoxGxsbGIiorC6tWrcfToUaxZswahoaF4/fXXf82pIVI2QUSPpW3btgkA4uzZs2LDhg3Cw8NDVFVVCSGEGDNmjPjd734nhBAiODhYDB8+3GIsAKvLtm3bhBBCfPHFFwKASE5OfqgsI0eOFADEvXv3WurjNSsnJ0cAEN26dRO1tbXm9vHjxwuVSiWGDh1q0T86OloEBweb169duyYcHR3FihUrLPoVFhYKJycni/aGOf0xvV4vVCqVuH79urktMTFRABBLly616NurVy8RERHxSJ+T6EnFw0ZET4CxY8fiu+++w6FDh1BRUYFDhw797CGj3//+98jKyrJYYmNjAQDl5eUAYPVwkTW29m8pCQkJcHZ2Nq9HRUVBCIGpU6da9IuKikJxcTHq6+sBAHv37oXJZMLYsWNRVlZmXrRaLcLCwpCTk2Me++OTmCsrK1FWVoaYmBgIIXD+/PlGmWbMmGGx/uyzz+Lrr79ukc9L9KTgYSOiJ4Cvry90Oh0yMzNRVVUFo9GI0aNHNzumQ4cO0Ol0Vl/z9PQEAFRUVDzU+/+4f8PhFlsYjUbcuXPHos3b2xsuLi7NjvvpIS0vLy8AQGBgYKN2k8kEg8EAHx8fXL58GUIIhIWFWd3ujwuiGzduYNGiRThw4ADu3btn0c9gMFisazQa+Pr6WrS1adOm0Tgiah6LF6InxIQJEzB9+nSUlJRg6NChj1RENHj66afh5OSEwsLCh+ofHh4OACgsLMSzzz5r8/sVFxcjJCTEoi0nJwcDBw5sdpyjo6NN7UIIAIDJZIJKpcLhw4et9nV3dwfwfVH1wgsv4O7du5g7dy7Cw8PRqlUr3Lx5E1OmTIHJZHqo9yUi27B4IXpCjBw5Eq+99hpOnz6N3bt3/6Jtubm54fnnn8exY8dQXFzcaE/GT8XFxUGv12PHjh2PVLxotVqLq6UAoGfPnjZv52GFhoZCCIGQkBB06tSpyX6FhYW4dOkSPvzwQ4t74vw0KxG1LJ7zQvSEcHd3x6ZNm/D2228jLi7uF29v8eLFEEJg8uTJePDgQaPX8/Ly8OGHHwIAoqOjMWTIEHzwwQfYv39/o761tbWYM2dOk++l0Wig0+ksljZt2vziz9CUUaNGwdHREUuWLDHvjWkghMC3334L4Ic9KT/uI4TA+++/b7dsRMQ9L0RPlMTExBbbVkxMDDZu3Ig//OEPCA8Pt7jD7ueff44DBw5g+fLl5v4fffQRBg8ejFGjRiEuLg6DBg1Cq1atcPnyZezatQu3bt1q0Xu9/BKhoaFYvnw55s+fj2vXriE+Ph4eHh64evUq9u3bh1dffRVz5sxBeHg4QkNDMWfOHNy8eROenp7461//ynNYiOyMxQsRPbLXXnsNffr0wZo1a/DRRx/hzp07cHd3R+/evbFt2zaLO/T6+vri5MmT+POf/4zdu3dj4cKFqK2tRXBwMEaMGIHk5GQJP0lj8+bNQ6dOnfDee+9hyZIlAL4/0Xfw4MEYMWIEgO9P3D148CDeeOMN6PV6aDQajBw5ErNmzbLrYS2iJ51K/HSfKBEREZGM8ZwXIiIiUhQWL0RERKQoLF6IiIhIUexWvNy9excTJ06Ep6cnWrdujWnTplm9nPLHBg4cCJVKZbH89FbaRERE9GSz2wm7Q4cOxa1bt7BlyxbU1dUhKSkJffr0QWZmZpNjBg4ciE6dOmHp0qXmNjc3N/OtxYmIiIjscqn0xYsXceTIEZw9exaRkZEAgPT0dAwbNgyrV69GQEBAk2Pd3Nyg1WrtEYuIiIgeA3YpXk6dOoXWrVubCxcA0Ol0cHBwwJkzZzBy5Mgmx+7cuRM7duyAVqtFXFwc0tLS4Obm1mT/mpoa1NTUmNdNJhPu3r0LHx8fqFSqlvlAREREZFdCCFRUVCAgIAAODs2f1WKX4qWkpATt2rWzfCMnJ3h7e6OkpKTJcRMmTEBwcDACAgLw73//G3PnzkVRURH27t3b5Bi9Xm++gRQREREpW3FxMTp06NBsH5uKl3nz5mHVqlXN9rl48aItm7Tw6quvmv/dvXt3+Pv7Y9CgQfjqq68QGhpqdcz8+fORmppqXjcYDAgKCkJ/DIMTnK2Okcq+Sw/3BN5f25b7zT9UT0o+ThVSR7Dqdr08z8NSq+qkjmDVdya11BEUx8VBnj/LeiHPJ2M/MMrzd8xZZZQ6QpPUDvVSR7BQ/aAey54/AQ8Pj5/ta1Px8uabb2LKlCnN9nnqqaeg1Wpx+/Zti/b6+nrcvXvXpvNZoqKiAABXrlxpsnhRq9VQqxv/0jrBGU4qeRUvnh7yvDJdUy/fp0S4OcnzD6Vc50yjkucNs4VJnvMlZ2oHef4s62RavNQb5fX3voGzSp5/9wFALdNoD3PKh01/UXx9feHr6/uz/aKjo3H//n3k5eUhIiICAHDs2DGYTCZzQfIwCgoKAAD+/v62xCQiIqLHmF3qrs6dO2PIkCGYPn06cnNz8a9//QuzZs3CuHHjzFca3bx5E+Hh4cjNzQUAfPXVV1i2bBny8vJw7do1HDhwAAkJCRgwYAB69Ohhj5hERESkQHbbabRz506Eh4dj0KBBGDZsGPr374+MjAzz63V1dSgqKkJVVRUAwMXFBUePHsXgwYMRHh6ON998Ey+99BIOHjxor4hERESkQHY7EO3t7d3sDek6duyIH98fLzAwEMePH7dXHCIiInpMyPR0HSIiIiLrWLwQERGRorB4ISIiIkVh8UJERESKwuKFiIiIFIXFCxERESkKixciIiJSFBYvREREpCi/SvGyceNGdOzYERqNBlFRUeZHAjRlz549CA8Ph0ajQffu3fHZZ5/9GjGJiIhIAexevOzevRupqalYvHgx8vPz0bNnT8TGxjZ66nSDkydPYvz48Zg2bRrOnz+P+Ph4xMfH48KFC/aOSkRERApg9+Jl7dq1mD59OpKSktClSxds3rwZbm5u2Lp1q9X+77//PoYMGYK33noLnTt3xrJly9C7d29s2LDB3lGJiIhIAexavNTW1iIvLw86ne6HN3RwgE6nw6lTp6yOOXXqlEV/AIiNjW2yf01NDcrLyy0WIiIienzZtXgpKyuD0WiEn5+fRbufnx9KSkqsjikpKbGpv16vh5eXl3kJDAxsmfBEREQkS4q/2mj+/PkwGAzmpbi4WOpIREREZEdO9tx427Zt4ejoiNLSUov20tJSaLVaq2O0Wq1N/dVqNdRqdcsEJiIiItmz654XFxcXREREIDs729xmMpmQnZ2N6Ohoq2Oio6Mt+gNAVlZWk/2JiIjoyWLXPS8AkJqaisTERERGRqJv375Yt24dKisrkZSUBABISEhA+/btodfrAQDJycl47rnnsGbNGgwfPhy7du3CuXPnkJGRYe+oREREpAB2L15efvll3LlzB4sWLUJJSQmeeeYZHDlyxHxS7o0bN+Dg8MMOoJiYGGRmZuKPf/wjFixYgLCwMOzfvx/dunWzd1QiIiJSAJUQQkgdoiWVl5fDy8sLA/F7OKmcpY5j4f/+VyB1BKvS7wVLHaFJvk7yvPS9pN5L6ghWaVR1UkewqsrE89JspXaQ58+yTjhKHcGqB0aN1BGsclYZpY7QJLn9jlU/qMfCvp/DYDDA09Oz2b6Kv9qIiIiIniwsXoiIiEhRWLwQERGRorB4ISIiIkVh8UJERESKwuKFiIiIFIXFCxERESkKixciIiJSlF+leNm4cSM6duwIjUaDqKgo5ObmNtl3+/btUKlUFotGI8+bDxEREdGvz+7Fy+7du5GamorFixcjPz8fPXv2RGxsLG7fvt3kGE9PT9y6dcu8XL9+3d4xiYiISCHsXrysXbsW06dPR1JSErp06YLNmzfDzc0NW7dubXKMSqWCVqs1Lw3PQSIiIiKy64MZa2trkZeXh/nz55vbHBwcoNPpcOrUqSbHPXjwAMHBwTCZTOjduzdWrlyJrl27Wu1bU1ODmpoa87rBYAAA1KMOkNlTm8orTFJHsKr6Qb3UEZpU5STP54JU18tzzoRKnrmqTfJ8Ho6cmRzk+bOsl+nj8KqN8npOTwOjjJ9tJGT2O9bwXfQwj1y0a/FSVlYGo9HYaM+Jn58fvvzyS6tjfvOb32Dr1q3o0aMHDAYDVq9ejZiYGPznP/9Bhw4dGvXX6/VYsmRJo/YT+KxlPkQLatNJ6gRN+VrqAERERACAiooKeHk1//BbuxYvjyI6OhrR0dHm9ZiYGHTu3BlbtmzBsmXLGvWfP38+UlNTzesmkwl3796Fj48PVCrVL8pSXl6OwMBAFBcX/+wTLul7nDPbcL5sw/myHefMNpwv27TkfAkhUFFRgYCAgJ/ta9fipW3btnB0dERpaalFe2lpKbRa7UNtw9nZGb169cKVK1esvq5Wq6FWqy3aWrdu/Uh5m+Lp6clfYhtxzmzD+bIN58t2nDPbcL5s01Lz9XN7XBrY9YRdFxcXREREIDs729xmMpmQnZ1tsXelOUajEYWFhfD397dXTCIiIlIQux82Sk1NRWJiIiIjI9G3b1+sW7cOlZWVSEpKAgAkJCSgffv20Ov1AIClS5fit7/9LZ5++mncv38f7777Lq5fv45XXnnF3lGJiIhIAexevLz88su4c+cOFi1ahJKSEjzzzDM4cuSI+STeGzduwMHhhx1A9+7dw/Tp01FSUoI2bdogIiICJ0+eRJcuXewdtRG1Wo3Fixc3OixFTeOc2YbzZRvOl+04Z7bhfNlGqvlSiYe5JomIiIhIJvhsIyIiIlIUFi9ERESkKCxeiIiISFFYvBAREZGisHhpxsaNG9GxY0doNBpERUUhNzdX6kiypNfr0adPH3h4eKBdu3aIj49HUVGR1LEU409/+hNUKhVSUlKkjiJrN2/exKRJk+Dj4wNXV1d0794d586dkzqWLBmNRqSlpSEkJASurq4IDQ3FsmXLHuqZMU+Kf/zjH4iLi0NAQABUKhX2799v8boQAosWLYK/vz9cXV2h0+lw+fJlacLKQHPzVVdXh7lz56J79+5o1aoVAgICkJCQgP/97392y8PipQm7d+9GamoqFi9ejPz8fPTs2ROxsbG4ffu21NFk5/jx45g5cyZOnz6NrKws1NXVYfDgwaisrJQ6muydPXsWW7ZsQY8ePaSOImv37t1Dv3794OzsjMOHD+O///0v1qxZgzZt2kgdTZZWrVqFTZs2YcOGDbh48SJWrVqFd955B+np6VJHk43Kykr07NkTGzdutPr6O++8g/Xr12Pz5s04c+YMWrVqhdjYWFRXV//KSeWhufmqqqpCfn4+0tLSkJ+fj71796KoqAgjRoywXyBBVvXt21fMnDnTvG40GkVAQIDQ6/USplKG27dvCwDi+PHjUkeRtYqKChEWFiaysrLEc889J5KTk6WOJFtz584V/fv3lzqGYgwfPlxMnTrVom3UqFFi4sSJEiWSNwBi37595nWTySS0Wq149913zW33798XarVafPzxxxIklJefzpc1ubm5AoC4fv26XTJwz4sVtbW1yMvLg06nM7c5ODhAp9Ph1KlTEiZTBoPBAADw9vaWOIm8zZw5E8OHD7f4PSPrDhw4gMjISIwZMwbt2rVDr1698Je//EXqWLIVExOD7OxsXLp0CQDwxRdf4MSJExg6dKjEyZTh6tWrKCkpsfi/6eXlhaioKH4HPCSDwQCVStXizxpsILunSstBWVkZjEaj+S7ADfz8/PDll19KlEoZTCYTUlJS0K9fP3Tr1k3qOLK1a9cu5Ofn4+zZs1JHUYSvv/4amzZtQmpqKhYsWICzZ8/ijTfegIuLCxITE6WOJzvz5s1DeXk5wsPD4ejoCKPRiBUrVmDixIlSR1OEkpISALD6HdDwGjWturoac+fOxfjx4+32cEsWL9SiZs6ciQsXLuDEiRNSR5Gt4uJiJCcnIysrCxqNRuo4imAymRAZGYmVK1cCAHr16oULFy5g8+bNLF6s+OSTT7Bz505kZmaia9euKCgoQEpKCgICAjhfZFd1dXUYO3YshBDYtGmT3d6Hh42saNu2LRwdHVFaWmrRXlpaCq1WK1Eq+Zs1axYOHTqEnJwcdOjQQeo4spWXl4fbt2+jd+/ecHJygpOTE44fP47169fDyckJRqNR6oiy4+/v3+j5Zp07d8aNGzckSiRvb731FubNm4dx48ahe/fumDx5MmbPnm1+AC41r+HvPL8DbNNQuFy/fh1ZWVl22+sCsHixysXFBREREcjOzja3mUwmZGdnIzo6WsJk8iSEwKxZs7Bv3z4cO3YMISEhUkeStUGDBqGwsBAFBQXmJTIyEhMnTkRBQQEcHR2ljig7/fr1a3T5/aVLlxAcHCxRInmrqqqyeOAtADg6OsJkMkmUSFlCQkKg1WotvgPKy8tx5swZfgc0oaFwuXz5Mo4ePQofHx+7vh8PGzUhNTUViYmJiIyMRN++fbFu3TpUVlYiKSlJ6miyM3PmTGRmZuJvf/sbPDw8zMeEvby84OrqKnE6+fHw8Gh0PlCrVq3g4+PD84SaMHv2bMTExGDlypUYO3YscnNzkZGRgYyMDKmjyVJcXBxWrFiBoKAgdO3aFefPn8fatWsxdepUqaPJxoMHD3DlyhXz+tWrV1FQUABvb28EBQUhJSUFy5cvR1hYGEJCQpCWloaAgADEx8dLF1pCzc2Xv78/Ro8ejfz8fBw6dAhGo9H8PeDt7Q0XF5eWD2SXa5geE+np6SIoKEi4uLiIvn37itOnT0sdSZYAWF22bdsmdTTF4KXSP+/gwYOiW7duQq1Wi/DwcJGRkSF1JNkqLy8XycnJIigoSGg0GvHUU0+JhQsXipqaGqmjyUZOTo7Vv1uJiYlCiO8vl05LSxN+fn5CrVaLQYMGiaKiImlDS6i5+bp69WqT3wM5OTl2yaMSgrdcJCIiIuXgOS9ERESkKCxeiIiISFFYvBAREZGisHghIiIiRWHxQkRERIrC4oWIiIgUhcULERERKQqLFyIiIlIUFi9ERESkKCxeiIiISFFYvBAREZGisHghIiIiRfl/lHpBM7eF3MEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(np.array(data['lowlevel']['mfcc']['mean']).reshape(1,13))\n",
    "plt.title('MFCC - mean')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 195,
   "id": "57e8d20a-ccdf-4c1e-ae44-b344b8fe33be",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'MFCC - cov')"
      ]
     },
     "execution_count": 195,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGzCAYAAABpdMNsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAiZklEQVR4nO3dfXBU5fnG8etkQzYRQiAoedEAqUVRQbQiDOL0JzUVKaC0oqCoiLbWNigRawEtvoxClFqkCgNFK9KpKGoVLRU7NCIMo7xGHJm2ASyDqTRQOppA0oSw+/z+aNmyJuH17LmT5fuZOX/sOU/2vp/dZS/O2bNnPeecEwAAAUuxbgAAcGoigAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCC0eS+++KI8z5PneVqzZk2T7c45FRQUyPM8DR8+PG7bob/76pKbm9vkfjZv3qybb75ZBQUFCofDys7OVlFRkRYuXKhIJBI3tr6+Xk8//bQGDBigrKwspaen65xzztGECRO0detWfx8AoI1KtW4A8Et6eroWL16syy+/PG79qlWr9Pe//13hcLjZv/v2t7+tW2+9NW5dRkZG3O3nn39ed911l3JycnTLLbeoZ8+e2rdvn8rKynTHHXfoH//4hx544AFJ0t69e3X11Vdr06ZNGj58uG666SZ16NBBFRUVeuWVV7RgwQIdOHDAx5kDbRMBhKTxne98R6+99pqeeeYZpab+76W9ePFiXXLJJdq7d2+zf3fOOefo5ptvbvF+165dq7vuuksDBw7UO++8o8zMzNi2kpISbdy4UVu2bImtu+222/TRRx/p9ddf13XXXRd3X4899pgefPDBE50ikFQ4BIekceONN+pf//qXVqxYEVt34MABvf7667rppptO+H4fffRReZ6nl156KS58DunXr59uu+02SdK6dev0hz/8QXfccUeT8JGkcDisp5566oR7aU59fb0eeeQRnXPOOUpPT1deXp6+973v6dNPP42Nqa2t1X333Rc7fHjuuefqqaee0uEXw+/du7cGDx7c5P6j0ajOPPNMjRo1yte+AQIISaNHjx4aOHCgXn755di65cuXq7q6WmPGjGnx7+rr67V37964paGhQZJUV1ensrIyffOb31S3bt2O2sPbb78tSbrllltOcjbHJhKJaPjw4Xr00Ud1ySWX6Be/+IUmTpyo6urq2F6Zc07XXHONnn76aV199dWaNWuWzj33XN1///2aNGlS7L5Gjx6t1atXq6qqKq7GmjVrtGvXriM+hsAJcUAbt3DhQifJbdiwwc2ZM8dlZma6uro655xz119/vRs8eLBzzrnu3bu7YcOGxf2tpGaXhQsXOuec+/jjj50kN3HixGPq5bvf/a6T5L744gu/pndEL7zwgpPkZs2a1WRbNBp1zjm3dOlSJ8k9/vjjcdtHjRrlPM9z27dvd845V1FR4SS5Z599Nm7cj3/8Y9ehQ4fYYwr4hT0gJJUbbrhB//73v7Vs2TLt27dPy5YtO+rht2uvvVYrVqyIW4YMGSJJqqmpkaRmD70153jHn6zf/e53Ov3003X33Xc32eZ5niTpnXfeUSgU0j333BO3/b777pNzTsuXL5f0n8/CLrroIi1ZsiQ2JhKJ6PXXX9eIESOanJgBnCxOQkBSOeOMM1RUVKTFixerrq5OkUjkqJ9dnHXWWSoqKmp2W8eOHSVJ+/btO6b6h4/v1KnTsTf+X5FIRP/85z/j1mVnZystLa3Z8Z9++qnOPffcuJMuvmrnzp3Kz89vEornnXdebPsho0eP1gMPPKDPP/9cZ555pt5//33t2bNHo0ePPu65AEfDHhCSzk033aTly5dr/vz5Gjp06AkFwSFf//rXlZqaqk8++eSYxvfq1UuSjnn8V1VWViovLy9u+eCDD07ovk7E6NGj5ZzTa6+9Jkl69dVXlZWVpauvvjqwHnDqIICQdL773e8qJSVFa9euPamz3yTptNNO07e+9S2tXr1alZWVRx0/YsQISdJvf/vbE6qXm5vb5HBg3759Wxx/9tlnq6KiQo2NjS2O6d69u3bt2tVkL+6vf/1rbPshhYWF6t+/v5YsWaKDBw/qjTfe0MiRI1v8DhVwMgggJJ0OHTpo3rx5euSRR2KBcDIefvhhOed0yy23aP/+/U22b9q0SYsWLZIkDRw4UFdffbWef/55LV26tMnYAwcO6Cc/+UmLtdLT01VUVBS3dO7cucXx1113nfbu3as5c+Y02eb+e4r1d77zHUUikSZjnn76aXmep6FDh8atHz16tNauXasXXnhBe/fu5fAbEsf2HAjg5B1+FtyRtHQWXHFx8VFrzJ8/36WkpLgzzzzTTZkyxf361792s2fPdiNHjnQpKSluxowZsbF79uxxF110kfM8z11zzTXul7/8pXv++efd5MmTXffu3V1aWtqJTbQZBw8edFdccYWT5MaMGePmzp3rZs6c6a666iq3dOlS55xzkUjEDR482Hme5+688043d+5cd+211zpJrqSkpMl9VlZWOs/zXGZmpsvOznYHDhzwrV/gcAQQ2rwgAsg55zZt2uRuuukml5+f79q1a+c6d+7srrzySrdo0SIXiUTixtbV1bmnnnrKXXrppa5Dhw4uLS3N9ezZ0919992x0579UldX5x588EFXWFjo2rVr53Jzc92oUaPcp59+Ghuzb98+d++998Z679mzp/v5z38eO1X7qwYNGuQkue9///u+9gocznPusK9CAwAQED4DAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmWt3FSKPRqHbt2qXMzMzY1XwBAG2Hc0779u1Tfn6+UlJa3s9pdQG0a9cuFRQUWLcBADhJlZWVOuuss1rc3uoC6NAl43eW91DHDsEcIfz2lNsDqXO4Dm9sCLRe9LILA60nSe3+VRtovYOdgv+9mtC+A4HWc+1CgdaTpMZOwV6INCUSDbSeJKVWNwRaz6UF+zxGwsG+1R882KAP1s886u9itboAOnTYrWOHFHXMDCaAUtulB1InrqbXLtB60VSDOYYOBlww+DmGQsEeJnah4APIBfy4pngGARTww+pCwb71ekf4vaiE1j3KxyichAAAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATCQuguXPnqkePHkpPT9eAAQO0fv36RJUCALRBCQmgJUuWaNKkSXr44YdVXl6uvn37asiQIdqzZ08iygEA2qCEBNCsWbP0gx/8QOPHj9f555+v+fPn67TTTtMLL7yQiHIAgDbI9wA6cOCANm3apKKiov8VSUlRUVGRPvzwwybjGxoaVFNTE7cAAJKf7wG0d+9eRSIR5eTkxK3PyclRVVVVk/GlpaXKysqKLVwJGwBODeZnwU2dOlXV1dWxpbKy0rolAEAAfL9E6umnn65QKKTdu3fHrd+9e7dyc3ObjA+HwwqHg73cOwDAnu97QGlpabrkkktUVlYWWxeNRlVWVqaBAwf6XQ4A0EYl5EciJk2apHHjxqlfv37q37+/Zs+erdraWo0fPz4R5QAAbVBCAmj06NH65z//qYceekhVVVW66KKL9O677zY5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uEv2+UnMMVkwx+SQ6Dm2upMQAACnhqTaAwIAtB0EEADABAEEADBBAAEATBBAAAATSRNAc+fOVY8ePZSenq4BAwZo/fr11i35prS0VJdeeqkyMzPVtWtXjRw5UhUVFdZtJdQTTzwhz/NUUlJi3YqvPv/8c918883q0qWLMjIy1KdPH23cuNG6Ld9EIhFNmzZNhYWFysjI0Nlnn63HHnvsqBelbM1Wr16tESNGKD8/X57naenSpXHbnXN66KGHlJeXp4yMDBUVFWnbtm02zZ6AI82vsbFRkydPVp8+fdS+fXvl5+fr1ltv1a5du3ypnRQBtGTJEk2aNEkPP/ywysvL1bdvXw0ZMkR79uyxbs0Xq1atUnFxsdauXasVK1aosbFRV111lWpra61bS4gNGzboV7/6lS688ELrVnz1xRdfaNCgQWrXrp2WL1+uP//5z/rFL36hzp07W7fmmyeffFLz5s3TnDlz9Je//EVPPvmkZs6cqWeffda6tRNWW1urvn37au7cuc1unzlzpp555hnNnz9f69atU/v27TVkyBDV19cH3OmJOdL86urqVF5ermnTpqm8vFxvvPGGKioqdM011/hT3CWB/v37u+Li4tjtSCTi8vPzXWlpqWFXibNnzx4nya1atcq6Fd/t27fP9ezZ061YscL93//9n5s4caJ1S76ZPHmyu/zyy63bSKhhw4a522+/PW7d9773PTd27Fijjvwlyb355pux29Fo1OXm5rqf//znsXVffvmlC4fD7uWXXzbo8OR8dX7NWb9+vZPkdu7cedL12vwe0IEDB7Rp0yYVFRXF1qWkpKioqEgffvihYWeJU11dLUnKzs427sR/xcXFGjZsWNzzmSzefvtt9evXT9dff726du2qiy++WM8995x1W7667LLLVFZWpq1bt0qSPv74Y61Zs0ZDhw417iwxduzYoaqqqrjXa1ZWlgYMGJDU7z+e56lTp04nfV+t7mrYx2vv3r2KRCLKycmJW5+Tk6O//vWvRl0lTjQaVUlJiQYNGqTevXtbt+OrV155ReXl5dqwYYN1Kwnxt7/9TfPmzdOkSZP0wAMPaMOGDbrnnnuUlpamcePGWbfniylTpqimpka9evVSKBRSJBLR9OnTNXbsWOvWEqKqqkqSmn3/ObQtmdTX12vy5Mm68cYbfbkCeJsPoFNNcXGxtmzZojVr1li34qvKykpNnDhRK1asUHp6unU7CRGNRtWvXz/NmDFDknTxxRdry5Ytmj9/ftIE0KuvvqqXXnpJixcv1gUXXKDNmzerpKRE+fn5STPHU1VjY6NuuOEGOec0b948X+6zzR+CO/300xUKhbR79+649bt371Zubq5RV4kxYcIELVu2TCtXrjzp30xqbTZt2qQ9e/boG9/4hlJTU5WamqpVq1bpmWeeUWpqqiKRiHWLJy0vL0/nn39+3LrzzjtPn332mVFH/rv//vs1ZcoUjRkzRn369NEtt9yie++9V6WlpdatJcSh95hkf/85FD47d+7UihUrfPv9ozYfQGlpabrkkktUVlYWWxeNRlVWVqaBAwcaduYf55wmTJigN998U++9954KCwutW/LdlVdeqU8++USbN2+OLf369dPYsWO1efNmhUIh6xZP2qBBg5qcPr9161Z1797dqCP/1dXVNfkFzFAopGg0atRRYhUWFio3Nzfu/aempkbr1q1LmvefQ+Gzbds2/elPf1KXLl18u++kOAQ3adIkjRs3Tv369VP//v01e/Zs1dbWavz48dat+aK4uFiLFy/WW2+9pczMzNix5aysLGVkZBh354/MzMwmn2m1b99eXbp0SZrPuu69915ddtllmjFjhm644QatX79eCxYs0IIFC6xb882IESM0ffp0devWTRdccIE++ugjzZo1S7fffrt1ayds//792r59e+z2jh07tHnzZmVnZ6tbt24qKSnR448/rp49e6qwsFDTpk1Tfn6+Ro4cadf0cTjS/PLy8jRq1CiVl5dr2bJlikQisfef7OxspaWlnVzxkz6PrpV49tlnXbdu3VxaWprr37+/W7t2rXVLvpHU7LJw4ULr1hIq2U7Dds653//+9653794uHA67Xr16uQULFli35Kuamho3ceJE161bN5eenu6+9rWvuQcffNA1NDRYt3bCVq5c2ey/v3Hjxjnn/nMq9rRp01xOTo4Lh8PuyiuvdBUVFbZNH4cjzW/Hjh0tvv+sXLnypGvze0AAABNt/jMgAEDbRAABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAAT/w/1NgpwGFlPIwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(np.array(data['lowlevel']['mfcc']['cov']).reshape(13,13))\n",
    "plt.title('MFCC - cov')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 196,
   "id": "75a74a31-80e5-4d97-ba5d-b6bf74ab249c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7ff6d07e93f0>"
      ]
     },
     "execution_count": 196,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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85vfxNatW6Ovry++/OUvx/79++OLX/xizJ49O1avXp31vJqyfv36GBkZifnz50dDQ0OMj4/HHXfcEbfcckvW06rejAkLpqeenp44fPhwPPfcc1lPqUlDQ0Oxdu3a2LVrVzQ1NWU9p+YVi8Xo7u6OO++8MyIirrzyyjh8+HDcd999wmKKPfroo/H9738/tm/fHpdddlkcOnQo1q1bF3PnzvVYTNKMCYsLLrggGhoa4vjx46fdf/z48bjwwgszWlXbent744knnog9e/ZER0dH1nNq0uDgYJw4cSKuuuqqifvGx8djz549sXnz5igUCtHQ0JDhwtpy0UUXxYIFC0677z3veU/86Ec/ymhR7brtttti/fr18clPfjIiIi6//PL43e9+F/39/cJikmbMNRazZ8+Oq6++OgYGBibuKxaLMTAwEMuXL89wWe0plUrR29sbO3fujGeeeSbmzZuX9aSa9f73vz9eeOGFOHTo0MStu7s7brnlljh06JComGIrVqz4u796feTIkXj3u9+d0aLa9cYbb0R9/ek/AhsaGqJYLGa0aOaYMc9YRET09fXF6tWro7u7O5YuXRqbNm2KsbGxWLNmTdbTakpPT09s3749HnvssWhpaYljx45FREQ+n4/m5uaM19WWlpaWv7u25bzzzovzzz/fNS8Z+NKXvhTXXHNN3HnnnfHxj3889u3bF9u2bYtt27ZlPa3m3HTTTXHHHXdEV1dXXHbZZfHzn/887rnnnvjMZz6T9bTqV5ph7r333lJXV1dp9uzZpaVLl5b27t2b9aSaExFveXvooYeynkapVLruuutKa9euzXpGzXr88cdLCxcuLOVyudL8+fNL27Zty3pSTRoZGSmtXbu21NXVVWpqaipdcsklpa985SulQqGQ9bSqN6P+HQsAIFsz5hoLACB7wgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACCZ/wULM9Z4cOTU9QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(np.array(data['lowlevel']['erbbands']['mean']).reshape(4,10))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 197,
   "id": "58229d33-2f2a-4ca2-9d96-002ecd906951",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7ff6d085c820>"
      ]
     },
     "execution_count": 197,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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9+oAwLl4O05FxD+fx89k2sNibGwsIiKejf+a7qUBgCkaGxuL1tbWM/57XfZ+6ZFYqVSKo0ePRnNzc9TV1SX//KOjo9HZ2RnDw8PR0tKS/PNTHudj5nAuZg7nYuZwLs5elmUxNjYW8+fPj/r6M99JMe1XLOrr66Ojo6Pi67S0tPgimUGcj5nDuZg5nIuZw7k4O+91peIdbt4EAJIRFgBAMrMuLAqFQmzcuDEKhULeoxDOx0ziXMwczsXM4VykN+03bwIAs9esu2IBAORHWAAAyQgLACAZYQEAJDPrwmLLli1x6aWXxty5c2P58uWxf//+vEeqOQMDA7F06dJobm6Otra2uP322+Pll1/Oeywi4r777ou6urpYt25d3qPUrL/97W/xuc99Li688MJoamqKq666Kg4ePJj3WDVnYmIivvGNb8SCBQuiqakpLr/88vjWt771vu+DwfubVWGxY8eO6O/vj40bN8ahQ4diyZIlccstt8SJEyfyHq2m7NmzJ3p7e2Pfvn2xe/fuOHXqVNx8880xPj6e92g17cCBA/Hwww/H4sWL8x6lZr3xxhuxcuXKOO+88+LJJ5+MF198Mb73ve/FBz/4wbxHqzn3339/bN26NTZv3hx//OMf4/7774/vfOc78eCDD+Y9WtWbVb9uunz58li6dGls3rw5Iv7vfUk6OzvjrrvuivXr1+c8Xe167bXXoq2tLfbs2RM33HBD3uPUpDfffDOuvfba+P73vx/f/va34+qrr45NmzblPVbNWb9+fTz33HPx29/+Nu9Rat4nP/nJaG9vj0ceeWRy36c+9aloamqKxx57LMfJqt+suWJx8uTJGBoaip6ensl99fX10dPTE88//3yOkzEyMhIREfPmzct5ktrV29sbn/jEJ077/8H0+9WvfhXd3d3x6U9/Otra2uKaa66JH/zgB3mPVZOuv/76GBwcjFdeeSUiIn7/+9/Hs88+G6tWrcp5suo37W9CVimvv/56TExMRHt7+2n729vb46WXXsppKkqlUqxbty5WrlwZixYtynucmvT444/HoUOH4sCBA3mPUvP+/Oc/x9atW6O/vz++9rWvxYEDB+Luu++OOXPmxOrVq/Mer6asX78+RkdH44orroiGhoaYmJiIe+65J+688868R6t6syYsmJl6e3vjyJEj8eyzz+Y9Sk0aHh6OtWvXxu7du2Pu3Ll5j1PzSqVSdHd3x7333hsREddcc00cOXIkHnroIWExzX7605/GT37yk9i+fXtceeWVcfjw4Vi3bl3Mnz/fuZiiWRMWF110UTQ0NMTx48dP23/8+PG4+OKLc5qqtvX19cUTTzwRe/fujY6OjrzHqUlDQ0Nx4sSJuPbaayf3TUxMxN69e2Pz5s1RLBajoaEhxwlryyWXXBILFy48bd+HP/zh+MUvfpHTRLXrq1/9aqxfvz7uuOOOiIi46qqr4i9/+UsMDAwIiymaNfdYzJkzJ6677roYHByc3FcqlWJwcDBWrFiR42S1J8uy6Ovri507d8ZvfvObWLBgQd4j1ayPfexj8cILL8Thw4cnt+7u7rjzzjvj8OHDomKarVy58l9+9fqVV16JD33oQzlNVLveeuutqK8//SmwoaEhSqVSThPNHrPmikVERH9/f6xevTq6u7tj2bJlsWnTphgfH481a9bkPVpN6e3tje3bt8euXbuiubk5jh07FhERra2t0dTUlPN0taW5uflf7m254IIL4sILL3TPSw6+8pWvxPXXXx/33ntvfOYzn4n9+/fHtm3bYtu2bXmPVnNuvfXWuOeee6KrqyuuvPLK+N3vfhcPPPBAfOELX8h7tOqXzTIPPvhg1tXVlc2ZMydbtmxZtm/fvrxHqjkR8a7bj3/847xHI8uyj3zkI9natWvzHqNm/frXv84WLVqUFQqF7Iorrsi2bduW90g1aXR0NFu7dm3W1dWVzZ07N7vsssuyr3/961mxWMx7tKo3q/6OBQCQr1lzjwUAkD9hAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkMz/AhVryQYoe2jiAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(np.array(data['lowlevel']['melbands']['mean']).reshape(4,10))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 198,
   "id": "ba6662ba-2682-4b2a-8ffd-ec7f778b7bcf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7ff6d08b79a0>"
      ]
     },
     "execution_count": 198,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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ZV0XX7uEDIvu3bsrOTlZp06danX/qVOn1KNHD0er8I8qKSnR5s2bVVVVpezsbNdzzKSmpurWW2+VJA0bNkzV1dV68803tWLFCsfL2qampkanT5/WXXfd1XJfc3OzqqqqtGTJEkUiESUnJztcaOemm27S7bffriNHjrie0mY9e/a8LGrvuOMOffjhh44W+ePYsWP67LPP9NFHH7meYua5557T7Nmz9cgjj0iSBg8erGPHjqm8vPy6CIuEvMYiNTVVw4YNU2VlZct90WhUlZWVCfWadqLxPE8lJSXasGGDPv/8c/Xu3dv1JF9Fo1FFIhHXM9ps7NixOnDggGpra1tuBQUFmjZtmmpraxMmKiTp3Llz+u6779SzZ0/XU9ps9OjRl/049+HDh5WXl+dokT9WrVqljIwMTZw40fUUM7/99puSklp/+05OTlY0GnW0qLWEfMZCkkpLS1VcXKyCggKNGDFCixYtUlNTk6ZPn+56WpucO3eu1Z+Wjh49qtraWnXt2lW5ubkOl7VdOBzWmjVrtGnTJoVCIZ08eVKSlJ6ero4dOzpe1zZz5sxRUVGRcnNzdfbsWa1Zs0Y7duzQtm3bXE9rs1AodNl1MDfeeKO6desW99fHPPvss5o0aZLy8vJ0/PhxlZWVKTk5WY8++qjraW32zDPPaNSoUZo3b54efvhh7d27VytXrtTKlStdTzMTjUa1atUqFRcXKyUlcb7dTZo0SXPnzlVubq4GDhyoL774QgsXLtSMGTNcT/ud6x9L8dPixYu93NxcLzU11RsxYoS3Z88e15PabPv27Z6ky27FxcWup7XZn52XJG/VqlWup7XZjBkzvLy8PC81NdW7+eabvbFjx3qffvqp61m+SZQfN506darXs2dPLzU11bvlllu8qVOnekeOHHE9y8wnn3ziDRo0yAsGg17//v29lStXup5katu2bZ4k79ChQ66nmGpsbPRmzpzp5ebmemlpaV6fPn28F1980YtEIq6neZ7nebxtOgAAMJOQ11gAAAA3CAsAAGCGsAAAAGYICwAAYIawAAAAZggLAABghrAAAABmCAsAAGCGsAAAAGYICwAAYIawAAAAZggLAABg5v8A30nf7p5hESkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(np.array(data['lowlevel']['barkbands']['mean']).reshape(3,9))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "02f71075-f03e-4145-b3bd-3d752778c32a",
   "metadata": {},
   "source": [
    "# Tonal Features \n",
    "- hpcp - harmonic pitch class profile from signal peaks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "id": "810f318b-88a4-406f-b4d6-944cbe23bcb6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>max</th>\n",
       "      <th>min</th>\n",
       "      <th>var</th>\n",
       "      <th>dvar</th>\n",
       "      <th>mean</th>\n",
       "      <th>dmean</th>\n",
       "      <th>dvar2</th>\n",
       "      <th>dmean2</th>\n",
       "      <th>median</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.032625</td>\n",
       "      <td>0.024734</td>\n",
       "      <td>0.092752</td>\n",
       "      <td>0.084129</td>\n",
       "      <td>0.066124</td>\n",
       "      <td>0.146483</td>\n",
       "      <td>0.021918</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.014560</td>\n",
       "      <td>0.015437</td>\n",
       "      <td>0.051035</td>\n",
       "      <td>0.053931</td>\n",
       "      <td>0.041195</td>\n",
       "      <td>0.094120</td>\n",
       "      <td>0.010824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.012166</td>\n",
       "      <td>0.011763</td>\n",
       "      <td>0.044669</td>\n",
       "      <td>0.042570</td>\n",
       "      <td>0.030142</td>\n",
       "      <td>0.074016</td>\n",
       "      <td>0.009865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.009478</td>\n",
       "      <td>0.009620</td>\n",
       "      <td>0.045144</td>\n",
       "      <td>0.042005</td>\n",
       "      <td>0.026219</td>\n",
       "      <td>0.073366</td>\n",
       "      <td>0.012930</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.011278</td>\n",
       "      <td>0.010089</td>\n",
       "      <td>0.057390</td>\n",
       "      <td>0.051508</td>\n",
       "      <td>0.027387</td>\n",
       "      <td>0.088648</td>\n",
       "      <td>0.019178</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.024009</td>\n",
       "      <td>0.016387</td>\n",
       "      <td>0.086115</td>\n",
       "      <td>0.069620</td>\n",
       "      <td>0.045027</td>\n",
       "      <td>0.119694</td>\n",
       "      <td>0.029350</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.027484</td>\n",
       "      <td>0.019156</td>\n",
       "      <td>0.086529</td>\n",
       "      <td>0.071175</td>\n",
       "      <td>0.052380</td>\n",
       "      <td>0.124522</td>\n",
       "      <td>0.029454</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.022090</td>\n",
       "      <td>0.020344</td>\n",
       "      <td>0.067915</td>\n",
       "      <td>0.068341</td>\n",
       "      <td>0.057352</td>\n",
       "      <td>0.122709</td>\n",
       "      <td>0.017661</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.022881</td>\n",
       "      <td>0.023987</td>\n",
       "      <td>0.064085</td>\n",
       "      <td>0.070893</td>\n",
       "      <td>0.064664</td>\n",
       "      <td>0.129340</td>\n",
       "      <td>0.012695</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.027542</td>\n",
       "      <td>0.029877</td>\n",
       "      <td>0.081969</td>\n",
       "      <td>0.093809</td>\n",
       "      <td>0.080979</td>\n",
       "      <td>0.167123</td>\n",
       "      <td>0.018001</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.056020</td>\n",
       "      <td>0.045044</td>\n",
       "      <td>0.170966</td>\n",
       "      <td>0.164478</td>\n",
       "      <td>0.120763</td>\n",
       "      <td>0.286796</td>\n",
       "      <td>0.065567</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.113797</td>\n",
       "      <td>0.067271</td>\n",
       "      <td>0.346742</td>\n",
       "      <td>0.238995</td>\n",
       "      <td>0.166376</td>\n",
       "      <td>0.409887</td>\n",
       "      <td>0.216262</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.134142</td>\n",
       "      <td>0.060706</td>\n",
       "      <td>0.394822</td>\n",
       "      <td>0.221204</td>\n",
       "      <td>0.151552</td>\n",
       "      <td>0.376238</td>\n",
       "      <td>0.251035</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.081369</td>\n",
       "      <td>0.048234</td>\n",
       "      <td>0.249969</td>\n",
       "      <td>0.185266</td>\n",
       "      <td>0.130900</td>\n",
       "      <td>0.321339</td>\n",
       "      <td>0.117554</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.045189</td>\n",
       "      <td>0.042814</td>\n",
       "      <td>0.136103</td>\n",
       "      <td>0.139890</td>\n",
       "      <td>0.113578</td>\n",
       "      <td>0.245353</td>\n",
       "      <td>0.044103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.036349</td>\n",
       "      <td>0.039708</td>\n",
       "      <td>0.098510</td>\n",
       "      <td>0.109471</td>\n",
       "      <td>0.105924</td>\n",
       "      <td>0.197217</td>\n",
       "      <td>0.022663</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.027719</td>\n",
       "      <td>0.033918</td>\n",
       "      <td>0.071125</td>\n",
       "      <td>0.088738</td>\n",
       "      <td>0.101437</td>\n",
       "      <td>0.161866</td>\n",
       "      <td>0.011727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.017737</td>\n",
       "      <td>0.022600</td>\n",
       "      <td>0.048693</td>\n",
       "      <td>0.061950</td>\n",
       "      <td>0.063868</td>\n",
       "      <td>0.112612</td>\n",
       "      <td>0.007431</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.014181</td>\n",
       "      <td>0.018431</td>\n",
       "      <td>0.049263</td>\n",
       "      <td>0.057280</td>\n",
       "      <td>0.051360</td>\n",
       "      <td>0.103485</td>\n",
       "      <td>0.011047</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.024391</td>\n",
       "      <td>0.023052</td>\n",
       "      <td>0.068130</td>\n",
       "      <td>0.071442</td>\n",
       "      <td>0.058169</td>\n",
       "      <td>0.125136</td>\n",
       "      <td>0.015121</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.026688</td>\n",
       "      <td>0.025431</td>\n",
       "      <td>0.073141</td>\n",
       "      <td>0.075796</td>\n",
       "      <td>0.066430</td>\n",
       "      <td>0.131632</td>\n",
       "      <td>0.015814</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.023746</td>\n",
       "      <td>0.025741</td>\n",
       "      <td>0.084974</td>\n",
       "      <td>0.091426</td>\n",
       "      <td>0.069341</td>\n",
       "      <td>0.160388</td>\n",
       "      <td>0.024891</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.071382</td>\n",
       "      <td>0.054885</td>\n",
       "      <td>0.184057</td>\n",
       "      <td>0.171526</td>\n",
       "      <td>0.140263</td>\n",
       "      <td>0.293406</td>\n",
       "      <td>0.061802</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.094700</td>\n",
       "      <td>0.058406</td>\n",
       "      <td>0.234348</td>\n",
       "      <td>0.184933</td>\n",
       "      <td>0.141679</td>\n",
       "      <td>0.315937</td>\n",
       "      <td>0.084038</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.069829</td>\n",
       "      <td>0.051705</td>\n",
       "      <td>0.193419</td>\n",
       "      <td>0.164462</td>\n",
       "      <td>0.144130</td>\n",
       "      <td>0.285014</td>\n",
       "      <td>0.072153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.073175</td>\n",
       "      <td>0.052317</td>\n",
       "      <td>0.172897</td>\n",
       "      <td>0.152657</td>\n",
       "      <td>0.142478</td>\n",
       "      <td>0.270236</td>\n",
       "      <td>0.044292</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.053363</td>\n",
       "      <td>0.042853</td>\n",
       "      <td>0.132278</td>\n",
       "      <td>0.127757</td>\n",
       "      <td>0.121545</td>\n",
       "      <td>0.227192</td>\n",
       "      <td>0.029049</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.032925</td>\n",
       "      <td>0.034372</td>\n",
       "      <td>0.085878</td>\n",
       "      <td>0.093692</td>\n",
       "      <td>0.098661</td>\n",
       "      <td>0.170980</td>\n",
       "      <td>0.013325</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.030145</td>\n",
       "      <td>0.038709</td>\n",
       "      <td>0.071630</td>\n",
       "      <td>0.092448</td>\n",
       "      <td>0.110633</td>\n",
       "      <td>0.169080</td>\n",
       "      <td>0.008577</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.031086</td>\n",
       "      <td>0.035505</td>\n",
       "      <td>0.076555</td>\n",
       "      <td>0.093027</td>\n",
       "      <td>0.100989</td>\n",
       "      <td>0.168640</td>\n",
       "      <td>0.011585</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.037309</td>\n",
       "      <td>0.038393</td>\n",
       "      <td>0.094896</td>\n",
       "      <td>0.106151</td>\n",
       "      <td>0.107066</td>\n",
       "      <td>0.193284</td>\n",
       "      <td>0.017226</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.053136</td>\n",
       "      <td>0.050679</td>\n",
       "      <td>0.126633</td>\n",
       "      <td>0.140622</td>\n",
       "      <td>0.142207</td>\n",
       "      <td>0.254726</td>\n",
       "      <td>0.023698</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.066667</td>\n",
       "      <td>0.059902</td>\n",
       "      <td>0.177319</td>\n",
       "      <td>0.187014</td>\n",
       "      <td>0.171251</td>\n",
       "      <td>0.337469</td>\n",
       "      <td>0.056122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.098809</td>\n",
       "      <td>0.060810</td>\n",
       "      <td>0.250871</td>\n",
       "      <td>0.195083</td>\n",
       "      <td>0.153963</td>\n",
       "      <td>0.339057</td>\n",
       "      <td>0.098707</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.093390</td>\n",
       "      <td>0.058489</td>\n",
       "      <td>0.249093</td>\n",
       "      <td>0.196476</td>\n",
       "      <td>0.151566</td>\n",
       "      <td>0.340767</td>\n",
       "      <td>0.104432</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.063219</td>\n",
       "      <td>0.042819</td>\n",
       "      <td>0.167159</td>\n",
       "      <td>0.144238</td>\n",
       "      <td>0.110837</td>\n",
       "      <td>0.250720</td>\n",
       "      <td>0.053422</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    max  min       var      dvar      mean     dmean     dvar2    dmean2  \\\n",
       "0     1    0  0.032625  0.024734  0.092752  0.084129  0.066124  0.146483   \n",
       "1     1    0  0.014560  0.015437  0.051035  0.053931  0.041195  0.094120   \n",
       "2     1    0  0.012166  0.011763  0.044669  0.042570  0.030142  0.074016   \n",
       "3     1    0  0.009478  0.009620  0.045144  0.042005  0.026219  0.073366   \n",
       "4     1    0  0.011278  0.010089  0.057390  0.051508  0.027387  0.088648   \n",
       "5     1    0  0.024009  0.016387  0.086115  0.069620  0.045027  0.119694   \n",
       "6     1    0  0.027484  0.019156  0.086529  0.071175  0.052380  0.124522   \n",
       "7     1    0  0.022090  0.020344  0.067915  0.068341  0.057352  0.122709   \n",
       "8     1    0  0.022881  0.023987  0.064085  0.070893  0.064664  0.129340   \n",
       "9     1    0  0.027542  0.029877  0.081969  0.093809  0.080979  0.167123   \n",
       "10    1    0  0.056020  0.045044  0.170966  0.164478  0.120763  0.286796   \n",
       "11    1    0  0.113797  0.067271  0.346742  0.238995  0.166376  0.409887   \n",
       "12    1    0  0.134142  0.060706  0.394822  0.221204  0.151552  0.376238   \n",
       "13    1    0  0.081369  0.048234  0.249969  0.185266  0.130900  0.321339   \n",
       "14    1    0  0.045189  0.042814  0.136103  0.139890  0.113578  0.245353   \n",
       "15    1    0  0.036349  0.039708  0.098510  0.109471  0.105924  0.197217   \n",
       "16    1    0  0.027719  0.033918  0.071125  0.088738  0.101437  0.161866   \n",
       "17    1    0  0.017737  0.022600  0.048693  0.061950  0.063868  0.112612   \n",
       "18    1    0  0.014181  0.018431  0.049263  0.057280  0.051360  0.103485   \n",
       "19    1    0  0.024391  0.023052  0.068130  0.071442  0.058169  0.125136   \n",
       "20    1    0  0.026688  0.025431  0.073141  0.075796  0.066430  0.131632   \n",
       "21    1    0  0.023746  0.025741  0.084974  0.091426  0.069341  0.160388   \n",
       "22    1    0  0.071382  0.054885  0.184057  0.171526  0.140263  0.293406   \n",
       "23    1    0  0.094700  0.058406  0.234348  0.184933  0.141679  0.315937   \n",
       "24    1    0  0.069829  0.051705  0.193419  0.164462  0.144130  0.285014   \n",
       "25    1    0  0.073175  0.052317  0.172897  0.152657  0.142478  0.270236   \n",
       "26    1    0  0.053363  0.042853  0.132278  0.127757  0.121545  0.227192   \n",
       "27    1    0  0.032925  0.034372  0.085878  0.093692  0.098661  0.170980   \n",
       "28    1    0  0.030145  0.038709  0.071630  0.092448  0.110633  0.169080   \n",
       "29    1    0  0.031086  0.035505  0.076555  0.093027  0.100989  0.168640   \n",
       "30    1    0  0.037309  0.038393  0.094896  0.106151  0.107066  0.193284   \n",
       "31    1    0  0.053136  0.050679  0.126633  0.140622  0.142207  0.254726   \n",
       "32    1    0  0.066667  0.059902  0.177319  0.187014  0.171251  0.337469   \n",
       "33    1    0  0.098809  0.060810  0.250871  0.195083  0.153963  0.339057   \n",
       "34    1    0  0.093390  0.058489  0.249093  0.196476  0.151566  0.340767   \n",
       "35    1    0  0.063219  0.042819  0.167159  0.144238  0.110837  0.250720   \n",
       "\n",
       "      median  \n",
       "0   0.021918  \n",
       "1   0.010824  \n",
       "2   0.009865  \n",
       "3   0.012930  \n",
       "4   0.019178  \n",
       "5   0.029350  \n",
       "6   0.029454  \n",
       "7   0.017661  \n",
       "8   0.012695  \n",
       "9   0.018001  \n",
       "10  0.065567  \n",
       "11  0.216262  \n",
       "12  0.251035  \n",
       "13  0.117554  \n",
       "14  0.044103  \n",
       "15  0.022663  \n",
       "16  0.011727  \n",
       "17  0.007431  \n",
       "18  0.011047  \n",
       "19  0.015121  \n",
       "20  0.015814  \n",
       "21  0.024891  \n",
       "22  0.061802  \n",
       "23  0.084038  \n",
       "24  0.072153  \n",
       "25  0.044292  \n",
       "26  0.029049  \n",
       "27  0.013325  \n",
       "28  0.008577  \n",
       "29  0.011585  \n",
       "30  0.017226  \n",
       "31  0.023698  \n",
       "32  0.056122  \n",
       "33  0.098707  \n",
       "34  0.104432  \n",
       "35  0.053422  "
      ]
     },
     "execution_count": 199,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.DataFrame(data['tonal']['hpcp'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "id": "b16485b9-bcc1-4c05-bd86-94ead95ea52f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7ff6d0948dc0>"
      ]
     },
     "execution_count": 200,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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MACkEBgAUggMACmai7pw/5p50VSeWNTlC9EyWPSC+mvtHy56QiFa3/r3oicUYsbP/lT0hPq7orAvo4X4ZKQS71/guV7BAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIcUmBWbduXZRKpVi9evVlmgPAWHHRgdm3b19s3Lgxurq6LuceAMaIiwrMqVOnYtmyZfH888/HNddcc7k3ATAGXFRguru746GHHorFixf/r+dWKpUYHBw84wBg7Guu9QFbtmyJ/fv3x759+y7o/N7e3njqqadqHgZAY6vpFUx/f3+sWrUqfvazn8XEiRMv6DE9PT0xMDAwevT391/UUAAaS02vYPr6+uLEiRNx5513jt43PDwce/bsieeeey4qlUo0NTWd8ZhyuRzlcvnyrAWgYdQUmEWLFsXBgwfPuG/FihUxa9as+O53v/upuAAwftUUmNbW1rjjjjvOuO/KK6+Ma6+99lP3AzC++Ul+AFLU/F1k/9OuXbsuwwwAxhqvYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIEVzUReesX0gmps+KuryhfjwxiuLnlB3f73tiqInFOLIP19V9IRiVMff8257dVLRE+pq+PRHEc9f2LlewQCQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASFFTYJ588skolUpnHLNmzcraBkADa671AXPmzIlf//rX//UHNNf8RwAwDtRch+bm5pg6dWrGFgDGkJo/g3nnnXeio6Mjbrnllli2bFm899575z2/UqnE4ODgGQcAY19NgVmwYEFs2rQptm/fHhs2bIjDhw/HvffeGydPnjznY3p7e6O9vX306OzsvOTRAHz2larVavViH/y3v/0tZs6cGU8//XQ8/vjjZz2nUqlEpVIZvT04OBidnZ1xf9d3o7mpfLGXbkgf3nhl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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(np.array(data['tonal']['hpcp']['mean']).reshape(6,6))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "id": "de2a5f1b-c834-4047-a7d2-6a16bd8b9002",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dict_keys(['hpcp', 'thpcp', 'key_key', 'key_scale', 'chords_key', 'chords_scale', 'hpcp_entropy', 'key_strength', 'chords_strength', 'chords_histogram', 'tuning_frequency', 'chords_number_rate', 'chords_changes_rate', 'tuning_diatonic_strength', 'tuning_equal_tempered_deviation', 'tuning_nontempered_energy_ratio'])\n"
     ]
    }
   ],
   "source": [
    "# tonal features\n",
    "print(data['tonal'].keys())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 218,
   "id": "5f0930bd-6f3a-4677-83d2-d37058587649",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.00576092163101\n"
     ]
    }
   ],
   "source": [
    "# tonal features\n",
    "print(data['tonal']['chords_number_rate'])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6b40d2e7-0fab-4a38-860a-17ad8985be8e",
   "metadata": {},
   "source": [
    "## Chord Histogram"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 203,
   "id": "8105bd2c-312d-4b73-b039-358c87e04698",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7ff6d09035e0>"
      ]
     },
     "execution_count": 203,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# tonal features\n",
    "plt.imshow(np.array(data['tonal']['chords_histogram']).reshape(6,4))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e7ad18f6-2370-49ad-99e6-331ef8871d0b",
   "metadata": {},
   "source": [
    "### THPCP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "8da65464-2e69-4846-a985-8c133497bd91",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7ff6dcb5db40>"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(np.array(data['tonal']['thpcp']).reshape(1,36))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a49dfa28-aeda-41eb-bce9-a45d1883a545",
   "metadata": {},
   "source": [
    "#### Observations \n",
    "- interesting properties showing some patterns - since music in a way a pattern of sound. This patterns could prove to be descriminative. \n",
    "- patterns are even more prominent for THPCP feature - which shows an almost even spacing."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e3d0738-9008-4826-a682-7ed6ef99ae1c",
   "metadata": {},
   "source": [
    "Observations "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bad91190-3cae-4a91-8760-cb289691c17e",
   "metadata": {},
   "source": [
    "### HPCP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "id": "c5f18457-537e-4e7a-b5d8-0ee67a990110",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>max</th>\n",
       "      <th>min</th>\n",
       "      <th>var</th>\n",
       "      <th>dvar</th>\n",
       "      <th>mean</th>\n",
       "      <th>dmean</th>\n",
       "      <th>dvar2</th>\n",
       "      <th>dmean2</th>\n",
       "      <th>median</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.032625</td>\n",
       "      <td>0.024734</td>\n",
       "      <td>0.092752</td>\n",
       "      <td>0.084129</td>\n",
       "      <td>0.066124</td>\n",
       "      <td>0.146483</td>\n",
       "      <td>0.021918</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.014560</td>\n",
       "      <td>0.015437</td>\n",
       "      <td>0.051035</td>\n",
       "      <td>0.053931</td>\n",
       "      <td>0.041195</td>\n",
       "      <td>0.094120</td>\n",
       "      <td>0.010824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.012166</td>\n",
       "      <td>0.011763</td>\n",
       "      <td>0.044669</td>\n",
       "      <td>0.042570</td>\n",
       "      <td>0.030142</td>\n",
       "      <td>0.074016</td>\n",
       "      <td>0.009865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.009478</td>\n",
       "      <td>0.009620</td>\n",
       "      <td>0.045144</td>\n",
       "      <td>0.042005</td>\n",
       "      <td>0.026219</td>\n",
       "      <td>0.073366</td>\n",
       "      <td>0.012930</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.011278</td>\n",
       "      <td>0.010089</td>\n",
       "      <td>0.057390</td>\n",
       "      <td>0.051508</td>\n",
       "      <td>0.027387</td>\n",
       "      <td>0.088648</td>\n",
       "      <td>0.019178</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.024009</td>\n",
       "      <td>0.016387</td>\n",
       "      <td>0.086115</td>\n",
       "      <td>0.069620</td>\n",
       "      <td>0.045027</td>\n",
       "      <td>0.119694</td>\n",
       "      <td>0.029350</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.027484</td>\n",
       "      <td>0.019156</td>\n",
       "      <td>0.086529</td>\n",
       "      <td>0.071175</td>\n",
       "      <td>0.052380</td>\n",
       "      <td>0.124522</td>\n",
       "      <td>0.029454</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.022090</td>\n",
       "      <td>0.020344</td>\n",
       "      <td>0.067915</td>\n",
       "      <td>0.068341</td>\n",
       "      <td>0.057352</td>\n",
       "      <td>0.122709</td>\n",
       "      <td>0.017661</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.022881</td>\n",
       "      <td>0.023987</td>\n",
       "      <td>0.064085</td>\n",
       "      <td>0.070893</td>\n",
       "      <td>0.064664</td>\n",
       "      <td>0.129340</td>\n",
       "      <td>0.012695</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.027542</td>\n",
       "      <td>0.029877</td>\n",
       "      <td>0.081969</td>\n",
       "      <td>0.093809</td>\n",
       "      <td>0.080979</td>\n",
       "      <td>0.167123</td>\n",
       "      <td>0.018001</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.056020</td>\n",
       "      <td>0.045044</td>\n",
       "      <td>0.170966</td>\n",
       "      <td>0.164478</td>\n",
       "      <td>0.120763</td>\n",
       "      <td>0.286796</td>\n",
       "      <td>0.065567</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.113797</td>\n",
       "      <td>0.067271</td>\n",
       "      <td>0.346742</td>\n",
       "      <td>0.238995</td>\n",
       "      <td>0.166376</td>\n",
       "      <td>0.409887</td>\n",
       "      <td>0.216262</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.134142</td>\n",
       "      <td>0.060706</td>\n",
       "      <td>0.394822</td>\n",
       "      <td>0.221204</td>\n",
       "      <td>0.151552</td>\n",
       "      <td>0.376238</td>\n",
       "      <td>0.251035</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.081369</td>\n",
       "      <td>0.048234</td>\n",
       "      <td>0.249969</td>\n",
       "      <td>0.185266</td>\n",
       "      <td>0.130900</td>\n",
       "      <td>0.321339</td>\n",
       "      <td>0.117554</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.045189</td>\n",
       "      <td>0.042814</td>\n",
       "      <td>0.136103</td>\n",
       "      <td>0.139890</td>\n",
       "      <td>0.113578</td>\n",
       "      <td>0.245353</td>\n",
       "      <td>0.044103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.036349</td>\n",
       "      <td>0.039708</td>\n",
       "      <td>0.098510</td>\n",
       "      <td>0.109471</td>\n",
       "      <td>0.105924</td>\n",
       "      <td>0.197217</td>\n",
       "      <td>0.022663</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.027719</td>\n",
       "      <td>0.033918</td>\n",
       "      <td>0.071125</td>\n",
       "      <td>0.088738</td>\n",
       "      <td>0.101437</td>\n",
       "      <td>0.161866</td>\n",
       "      <td>0.011727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.017737</td>\n",
       "      <td>0.022600</td>\n",
       "      <td>0.048693</td>\n",
       "      <td>0.061950</td>\n",
       "      <td>0.063868</td>\n",
       "      <td>0.112612</td>\n",
       "      <td>0.007431</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.014181</td>\n",
       "      <td>0.018431</td>\n",
       "      <td>0.049263</td>\n",
       "      <td>0.057280</td>\n",
       "      <td>0.051360</td>\n",
       "      <td>0.103485</td>\n",
       "      <td>0.011047</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.024391</td>\n",
       "      <td>0.023052</td>\n",
       "      <td>0.068130</td>\n",
       "      <td>0.071442</td>\n",
       "      <td>0.058169</td>\n",
       "      <td>0.125136</td>\n",
       "      <td>0.015121</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.026688</td>\n",
       "      <td>0.025431</td>\n",
       "      <td>0.073141</td>\n",
       "      <td>0.075796</td>\n",
       "      <td>0.066430</td>\n",
       "      <td>0.131632</td>\n",
       "      <td>0.015814</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.023746</td>\n",
       "      <td>0.025741</td>\n",
       "      <td>0.084974</td>\n",
       "      <td>0.091426</td>\n",
       "      <td>0.069341</td>\n",
       "      <td>0.160388</td>\n",
       "      <td>0.024891</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.071382</td>\n",
       "      <td>0.054885</td>\n",
       "      <td>0.184057</td>\n",
       "      <td>0.171526</td>\n",
       "      <td>0.140263</td>\n",
       "      <td>0.293406</td>\n",
       "      <td>0.061802</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.094700</td>\n",
       "      <td>0.058406</td>\n",
       "      <td>0.234348</td>\n",
       "      <td>0.184933</td>\n",
       "      <td>0.141679</td>\n",
       "      <td>0.315937</td>\n",
       "      <td>0.084038</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.069829</td>\n",
       "      <td>0.051705</td>\n",
       "      <td>0.193419</td>\n",
       "      <td>0.164462</td>\n",
       "      <td>0.144130</td>\n",
       "      <td>0.285014</td>\n",
       "      <td>0.072153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.073175</td>\n",
       "      <td>0.052317</td>\n",
       "      <td>0.172897</td>\n",
       "      <td>0.152657</td>\n",
       "      <td>0.142478</td>\n",
       "      <td>0.270236</td>\n",
       "      <td>0.044292</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.053363</td>\n",
       "      <td>0.042853</td>\n",
       "      <td>0.132278</td>\n",
       "      <td>0.127757</td>\n",
       "      <td>0.121545</td>\n",
       "      <td>0.227192</td>\n",
       "      <td>0.029049</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.032925</td>\n",
       "      <td>0.034372</td>\n",
       "      <td>0.085878</td>\n",
       "      <td>0.093692</td>\n",
       "      <td>0.098661</td>\n",
       "      <td>0.170980</td>\n",
       "      <td>0.013325</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.030145</td>\n",
       "      <td>0.038709</td>\n",
       "      <td>0.071630</td>\n",
       "      <td>0.092448</td>\n",
       "      <td>0.110633</td>\n",
       "      <td>0.169080</td>\n",
       "      <td>0.008577</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.031086</td>\n",
       "      <td>0.035505</td>\n",
       "      <td>0.076555</td>\n",
       "      <td>0.093027</td>\n",
       "      <td>0.100989</td>\n",
       "      <td>0.168640</td>\n",
       "      <td>0.011585</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.037309</td>\n",
       "      <td>0.038393</td>\n",
       "      <td>0.094896</td>\n",
       "      <td>0.106151</td>\n",
       "      <td>0.107066</td>\n",
       "      <td>0.193284</td>\n",
       "      <td>0.017226</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.053136</td>\n",
       "      <td>0.050679</td>\n",
       "      <td>0.126633</td>\n",
       "      <td>0.140622</td>\n",
       "      <td>0.142207</td>\n",
       "      <td>0.254726</td>\n",
       "      <td>0.023698</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.066667</td>\n",
       "      <td>0.059902</td>\n",
       "      <td>0.177319</td>\n",
       "      <td>0.187014</td>\n",
       "      <td>0.171251</td>\n",
       "      <td>0.337469</td>\n",
       "      <td>0.056122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.098809</td>\n",
       "      <td>0.060810</td>\n",
       "      <td>0.250871</td>\n",
       "      <td>0.195083</td>\n",
       "      <td>0.153963</td>\n",
       "      <td>0.339057</td>\n",
       "      <td>0.098707</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.093390</td>\n",
       "      <td>0.058489</td>\n",
       "      <td>0.249093</td>\n",
       "      <td>0.196476</td>\n",
       "      <td>0.151566</td>\n",
       "      <td>0.340767</td>\n",
       "      <td>0.104432</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.063219</td>\n",
       "      <td>0.042819</td>\n",
       "      <td>0.167159</td>\n",
       "      <td>0.144238</td>\n",
       "      <td>0.110837</td>\n",
       "      <td>0.250720</td>\n",
       "      <td>0.053422</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    max  min       var      dvar      mean     dmean     dvar2    dmean2  \\\n",
       "0     1    0  0.032625  0.024734  0.092752  0.084129  0.066124  0.146483   \n",
       "1     1    0  0.014560  0.015437  0.051035  0.053931  0.041195  0.094120   \n",
       "2     1    0  0.012166  0.011763  0.044669  0.042570  0.030142  0.074016   \n",
       "3     1    0  0.009478  0.009620  0.045144  0.042005  0.026219  0.073366   \n",
       "4     1    0  0.011278  0.010089  0.057390  0.051508  0.027387  0.088648   \n",
       "5     1    0  0.024009  0.016387  0.086115  0.069620  0.045027  0.119694   \n",
       "6     1    0  0.027484  0.019156  0.086529  0.071175  0.052380  0.124522   \n",
       "7     1    0  0.022090  0.020344  0.067915  0.068341  0.057352  0.122709   \n",
       "8     1    0  0.022881  0.023987  0.064085  0.070893  0.064664  0.129340   \n",
       "9     1    0  0.027542  0.029877  0.081969  0.093809  0.080979  0.167123   \n",
       "10    1    0  0.056020  0.045044  0.170966  0.164478  0.120763  0.286796   \n",
       "11    1    0  0.113797  0.067271  0.346742  0.238995  0.166376  0.409887   \n",
       "12    1    0  0.134142  0.060706  0.394822  0.221204  0.151552  0.376238   \n",
       "13    1    0  0.081369  0.048234  0.249969  0.185266  0.130900  0.321339   \n",
       "14    1    0  0.045189  0.042814  0.136103  0.139890  0.113578  0.245353   \n",
       "15    1    0  0.036349  0.039708  0.098510  0.109471  0.105924  0.197217   \n",
       "16    1    0  0.027719  0.033918  0.071125  0.088738  0.101437  0.161866   \n",
       "17    1    0  0.017737  0.022600  0.048693  0.061950  0.063868  0.112612   \n",
       "18    1    0  0.014181  0.018431  0.049263  0.057280  0.051360  0.103485   \n",
       "19    1    0  0.024391  0.023052  0.068130  0.071442  0.058169  0.125136   \n",
       "20    1    0  0.026688  0.025431  0.073141  0.075796  0.066430  0.131632   \n",
       "21    1    0  0.023746  0.025741  0.084974  0.091426  0.069341  0.160388   \n",
       "22    1    0  0.071382  0.054885  0.184057  0.171526  0.140263  0.293406   \n",
       "23    1    0  0.094700  0.058406  0.234348  0.184933  0.141679  0.315937   \n",
       "24    1    0  0.069829  0.051705  0.193419  0.164462  0.144130  0.285014   \n",
       "25    1    0  0.073175  0.052317  0.172897  0.152657  0.142478  0.270236   \n",
       "26    1    0  0.053363  0.042853  0.132278  0.127757  0.121545  0.227192   \n",
       "27    1    0  0.032925  0.034372  0.085878  0.093692  0.098661  0.170980   \n",
       "28    1    0  0.030145  0.038709  0.071630  0.092448  0.110633  0.169080   \n",
       "29    1    0  0.031086  0.035505  0.076555  0.093027  0.100989  0.168640   \n",
       "30    1    0  0.037309  0.038393  0.094896  0.106151  0.107066  0.193284   \n",
       "31    1    0  0.053136  0.050679  0.126633  0.140622  0.142207  0.254726   \n",
       "32    1    0  0.066667  0.059902  0.177319  0.187014  0.171251  0.337469   \n",
       "33    1    0  0.098809  0.060810  0.250871  0.195083  0.153963  0.339057   \n",
       "34    1    0  0.093390  0.058489  0.249093  0.196476  0.151566  0.340767   \n",
       "35    1    0  0.063219  0.042819  0.167159  0.144238  0.110837  0.250720   \n",
       "\n",
       "      median  \n",
       "0   0.021918  \n",
       "1   0.010824  \n",
       "2   0.009865  \n",
       "3   0.012930  \n",
       "4   0.019178  \n",
       "5   0.029350  \n",
       "6   0.029454  \n",
       "7   0.017661  \n",
       "8   0.012695  \n",
       "9   0.018001  \n",
       "10  0.065567  \n",
       "11  0.216262  \n",
       "12  0.251035  \n",
       "13  0.117554  \n",
       "14  0.044103  \n",
       "15  0.022663  \n",
       "16  0.011727  \n",
       "17  0.007431  \n",
       "18  0.011047  \n",
       "19  0.015121  \n",
       "20  0.015814  \n",
       "21  0.024891  \n",
       "22  0.061802  \n",
       "23  0.084038  \n",
       "24  0.072153  \n",
       "25  0.044292  \n",
       "26  0.029049  \n",
       "27  0.013325  \n",
       "28  0.008577  \n",
       "29  0.011585  \n",
       "30  0.017226  \n",
       "31  0.023698  \n",
       "32  0.056122  \n",
       "33  0.098707  \n",
       "34  0.104432  \n",
       "35  0.053422  "
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.DataFrame(data['tonal']['hpcp'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "1cc61b6e-f45a-4601-a3b1-0d16d8a791a9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7ff6dcbbd6f0>"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(np.array(data['tonal']['hpcp']['mean']).reshape(1,36))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "id": "69b6fd02-dd59-49ef-aa4c-e9e6b264b8d4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['tonal', 'rhythm', 'lowlevel', 'metadata'])"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 238,
   "id": "1e166bbe-3c3b-4638-bc7f-c182e1e6ac22",
   "metadata": {},
   "outputs": [],
   "source": [
    "TONAL_FEATURES = [\n",
    "    'hpcp', 'thpcp', 'key_key', 'key_scale', 'key_strength',\n",
    "    'chords_key', 'chords_strength',\n",
    "    'tuning_frequency', 'chords_number_rate', 'chords_changes_rate',\n",
    "    'tuning_diatonic_strength', 'chords_histogram'\n",
    "]\n",
    "\n",
    "def get_tonal_features(track_features=data,\n",
    "                            tonal_features=TONAL_FEATURES):\n",
    "        \"\"\"\n",
    "\n",
    "        Args:\n",
    "            track_features (_type_): _description_\n",
    "            tonal_features (_type_, optional): _description_.\n",
    "                                    Defaults to TONAL_FEATURES.\n",
    "        \"\"\"\n",
    "        tonal_feats = track_features['tonal']\n",
    "\n",
    "        features = {}\n",
    "\n",
    "        for feat_i in tonal_features:\n",
    "\n",
    "            # assign\n",
    "            if feat_i in ['hpcp', 'chords_strength']:\n",
    "                features[f'{feat_i}_mean'] = tonal_feats[feat_i]['mean']\n",
    "            else:\n",
    "                features[feat_i] = tonal_feats[feat_i]\n",
    "\n",
    "        return features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 239,
   "id": "46c96f07-71e4-42de-b649-e8c2e7593abb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'hpcp_mean': [0.0927517861128,\n",
       "  0.0510349087417,\n",
       "  0.0446694158018,\n",
       "  0.0451443269849,\n",
       "  0.0573899000883,\n",
       "  0.0861146375537,\n",
       "  0.0865294933319,\n",
       "  0.0679150372744,\n",
       "  0.0640851184726,\n",
       "  0.0819691717625,\n",
       "  0.170965984464,\n",
       "  0.346741646528,\n",
       "  0.39482191205,\n",
       "  0.249969467521,\n",
       "  0.136103108525,\n",
       "  0.098510183394,\n",
       "  0.0711254626513,\n",
       "  0.048692908138,\n",
       "  0.0492634922266,\n",
       "  0.0681301057339,\n",
       "  0.073140963912,\n",
       "  0.084973692894,\n",
       "  0.184057474136,\n",
       "  0.234348267317,\n",
       "  0.193418592215,\n",
       "  0.17289686203,\n",
       "  0.132277831435,\n",
       "  0.0858784466982,\n",
       "  0.0716303661466,\n",
       "  0.0765554085374,\n",
       "  0.0948960706592,\n",
       "  0.126633316278,\n",
       "  0.177319422364,\n",
       "  0.250871151686,\n",
       "  0.249093264341,\n",
       "  0.167159244418],\n",
       " 'thpcp': [1,\n",
       "  0.633119523525,\n",
       "  0.344720244408,\n",
       "  0.249505355954,\n",
       "  0.180145680904,\n",
       "  0.123328790069,\n",
       "  0.124773956835,\n",
       "  0.172559082508,\n",
       "  0.185250520706,\n",
       "  0.215220302343,\n",
       "  0.46617847681,\n",
       "  0.593554377556,\n",
       "  0.489888191223,\n",
       "  0.437911003828,\n",
       "  0.335031628609,\n",
       "  0.217511862516,\n",
       "  0.181424498558,\n",
       "  0.193898588419,\n",
       "  0.240351587534,\n",
       "  0.320735275745,\n",
       "  0.449112415314,\n",
       "  0.635403335094,\n",
       "  0.630900323391,\n",
       "  0.42337885499,\n",
       "  0.234920561314,\n",
       "  0.129260584712,\n",
       "  0.113138139248,\n",
       "  0.114340983331,\n",
       "  0.145356416702,\n",
       "  0.218110069633,\n",
       "  0.219160825014,\n",
       "  0.172014355659,\n",
       "  0.162313982844,\n",
       "  0.207610487938,\n",
       "  0.433020502329,\n",
       "  0.878222882748],\n",
       " 'key_key': 'F',\n",
       " 'key_scale': 'minor',\n",
       " 'key_strength': 0.786747932434,\n",
       " 'chords_key': 'F',\n",
       " 'chords_strength_mean': 0.524988055229,\n",
       " 'tuning_frequency': 447.174194336,\n",
       " 'chords_number_rate': 0.00576092163101,\n",
       " 'chords_changes_rate': 0.0854536741972,\n",
       " 'tuning_diatonic_strength': 0.699474155903,\n",
       " 'chords_histogram': [18.2909259796,\n",
       "  7.20115232468,\n",
       "  1.63226115704,\n",
       "  0,\n",
       "  0,\n",
       "  0,\n",
       "  0,\n",
       "  5.85693693161,\n",
       "  6.4330291748,\n",
       "  10.7057132721,\n",
       "  0,\n",
       "  0.144023045897,\n",
       "  0,\n",
       "  0,\n",
       "  7.24915981293,\n",
       "  5.08881425858,\n",
       "  10.9937591553,\n",
       "  0.144023045897,\n",
       "  0,\n",
       "  0,\n",
       "  0,\n",
       "  6.57705211639,\n",
       "  5.13682174683,\n",
       "  14.5463275909]}"
      ]
     },
     "execution_count": 239,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_tonal_features()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2eb01278-def7-4cd4-a50a-5390a78b6b21",
   "metadata": {},
   "source": [
    "# Rhythmic Features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "493701d3-0480-4780-9e20-2576f72ac838",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['bpm', 'onset_rate', 'beats_count', 'danceability', 'beats_loudness', 'beats_position', 'beats_loudness_band_ratio', 'bpm_histogram_first_peak_bpm', 'bpm_histogram_second_peak_bpm', 'bpm_histogram_first_peak_spread', 'bpm_histogram_first_peak_weight', 'bpm_histogram_second_peak_spread', 'bpm_histogram_second_peak_weight'])"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['rhythm'].keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "id": "3658e6d9-7ac7-4233-8bef-fee79d0412d5",
   "metadata": {},
   "outputs": [],
   "source": [
    "rythmic_features = ['bpm', 'onset_rate', 'beats_count', 'danceability', 'beats_loudness', 'beats_position', 'beats_loudness_band_ratio']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "id": "28b423b2-6946-40b0-ae10-c5d9d6dc0c1e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.79282546043"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['rhythm']['onset_rate']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 240,
   "id": "f331fbbd-5e07-4d39-9aaf-9ada3ad65341",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "139.393737793"
      ]
     },
     "execution_count": 240,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['rhythm']['bpm']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "411f3a02-3548-4e11-8019-3f44d8afe7f1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "216"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['rhythm']['beats_count']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "8319361d-56d1-4bad-b1c5-b67acee5394f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.845048427582"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['rhythm']['danceability']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "aab192e7-971e-4172-8fb3-6f34894c3302",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0347795151174"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['rhythm']['beats_loudness']['mean']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "2e681b1a-0f36-4d09-b456-dee730eeddb2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.000785038690083"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['rhythm']['beats_loudness']['var']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "id": "b1fc5461-799d-420d-afb9-7f48d2daba5b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(6,)"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array(data['rhythm']['beats_loudness_band_ratio']['mean']).shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "id": "e9345f87-0d2b-449b-9fbf-2a97b6929f43",
   "metadata": {},
   "outputs": [],
   "source": [
    "# np.array(data['rhythm']['beats_position'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 246,
   "id": "13269da8-9ec0-43b2-8557-0ddd0d250af6",
   "metadata": {},
   "outputs": [],
   "source": [
    "RYTHMIC_FEATURES = [\n",
    "    'bpm', 'onset_rate', 'beats_count',  'beats_loudness',\n",
    "    'danceability', 'beats_loudness', 'beats_position',\n",
    "    'beats_loudness_band_ratio'\n",
    "]\n",
    "\n",
    "\n",
    "def get_rythmic_features(track_features,\n",
    "                        rythmic_features=RYTHMIC_FEATURES):\n",
    "        \"\"\"\n",
    "\n",
    "        Params:\n",
    "            track_features (_type_): _description_\n",
    "            rythmic_features (_type_, optional): _description_.\n",
    "                                    Defaults to RYTHMIC_FEATURES.\n",
    "        \"\"\"\n",
    "\n",
    "        tonal_feats = track_features['rhythm']\n",
    "\n",
    "        features = {}\n",
    "\n",
    "        for feat_i in rythmic_features:\n",
    "\n",
    "            # assign\n",
    "            if feat_i in ['beats_loudness', 'beats_loudness_band_ratio']:\n",
    "                features[f'{feat_i}_mean'] = tonal_feats[feat_i]['mean']\n",
    "            else:\n",
    "                features[feat_i] = tonal_feats[feat_i]\n",
    "\n",
    "        return features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 247,
   "id": "9e9c4052-e3af-4708-b9a2-83eaf36d445a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'bpm': 139.393737793,\n",
       " 'onset_rate': 2.79282546043,\n",
       " 'beats_count': 216,\n",
       " 'beats_loudness_mean': 0.0347795151174,\n",
       " 'danceability': 0.845048427582,\n",
       " 'beats_position': [0.545668900013,\n",
       "  1.11455774307,\n",
       "  1.69505667686,\n",
       "  2.27555561066,\n",
       "  2.85605430603,\n",
       "  3.43655323982,\n",
       "  4.01705217361,\n",
       "  4.55111122131,\n",
       "  5.08516979218,\n",
       "  5.60761880875,\n",
       "  6.025578022,\n",
       "  6.45514726639,\n",
       "  6.88471651077,\n",
       "  7.31428575516,\n",
       "  7.74385452271,\n",
       "  8.17342376709,\n",
       "  8.60299301147,\n",
       "  9.03256225586,\n",
       "  9.47374153137,\n",
       "  9.91492080688,\n",
       "  10.3560991287,\n",
       "  10.7972784042,\n",
       "  11.2384576797,\n",
       "  11.6796369553,\n",
       "  12.1092061996,\n",
       "  12.538775444,\n",
       "  12.9567346573,\n",
       "  13.3746938705,\n",
       "  13.7926530838,\n",
       "  14.2106122971,\n",
       "  14.6285715103,\n",
       "  14.9884805679,\n",
       "  15.3483896255,\n",
       "  15.7082986832,\n",
       "  16.0798187256,\n",
       "  16.4513378143,\n",
       "  16.8228569031,\n",
       "  17.1827659607,\n",
       "  17.5426750183,\n",
       "  17.9025840759,\n",
       "  18.2741031647,\n",
       "  18.6340141296,\n",
       "  19.0055332184,\n",
       "  19.3770523071,\n",
       "  19.760181427,\n",
       "  20.1317005157,\n",
       "  20.5148296356,\n",
       "  20.9560089111,\n",
       "  21.3971881866,\n",
       "  21.8383674622,\n",
       "  22.2795467377,\n",
       "  22.7323360443,\n",
       "  23.1735134125,\n",
       "  23.6030826569,\n",
       "  24.0326519012,\n",
       "  24.4738311768,\n",
       "  24.9034004211,\n",
       "  25.286529541,\n",
       "  25.6696586609,\n",
       "  26.0527877808,\n",
       "  26.4243087769,\n",
       "  26.7958278656,\n",
       "  27.1673469543,\n",
       "  27.5504760742,\n",
       "  27.9336051941,\n",
       "  28.2935142517,\n",
       "  28.6534233093,\n",
       "  29.0249423981,\n",
       "  29.3964614868,\n",
       "  29.7912006378,\n",
       "  30.1859397888,\n",
       "  30.5690689087,\n",
       "  30.9521980286,\n",
       "  31.3701572418,\n",
       "  31.776506424,\n",
       "  32.1828575134,\n",
       "  32.5892066956,\n",
       "  33.0187759399,\n",
       "  33.4483451843,\n",
       "  33.8779144287,\n",
       "  34.3423118591,\n",
       "  34.8067131042,\n",
       "  35.2711105347,\n",
       "  35.7819480896,\n",
       "  36.2927894592,\n",
       "  36.8036270142,\n",
       "  37.3144645691,\n",
       "  37.8253059387,\n",
       "  38.3361434937,\n",
       "  38.8353729248,\n",
       "  39.3462142944,\n",
       "  39.8454399109,\n",
       "  40.4723815918,\n",
       "  41.0877075195,\n",
       "  41.703037262,\n",
       "  42.3183670044,\n",
       "  42.9336967468,\n",
       "  43.5490226746,\n",
       "  44.164352417,\n",
       "  44.6984100342,\n",
       "  45.2208595276,\n",
       "  45.743309021,\n",
       "  46.2657585144,\n",
       "  46.7882080078,\n",
       "  47.3106575012,\n",
       "  47.8214950562,\n",
       "  48.3439445496,\n",
       "  48.8780021667,\n",
       "  49.4120635986,\n",
       "  49.934513092,\n",
       "  50.4569587708,\n",
       "  50.9213600159,\n",
       "  51.3857574463,\n",
       "  51.8501586914,\n",
       "  52.3145561218,\n",
       "  52.7789573669,\n",
       "  53.2433547974,\n",
       "  53.661315918,\n",
       "  54.0792732239,\n",
       "  54.5088424683,\n",
       "  54.9384117126,\n",
       "  55.367980957,\n",
       "  55.7975502014,\n",
       "  56.2271194458,\n",
       "  56.6915168762,\n",
       "  57.1559181213,\n",
       "  57.608707428,\n",
       "  58.0266647339,\n",
       "  58.4446258545,\n",
       "  58.8625831604,\n",
       "  59.280544281,\n",
       "  59.7101135254,\n",
       "  60.1396827698,\n",
       "  60.5576400757,\n",
       "  60.9756011963,\n",
       "  61.4051704407,\n",
       "  61.8347396851,\n",
       "  62.2643089294,\n",
       "  62.7519264221,\n",
       "  63.227935791,\n",
       "  63.7155532837,\n",
       "  64.1915664673,\n",
       "  64.6675720215,\n",
       "  65.1551895142,\n",
       "  65.6312026978,\n",
       "  66.107208252,\n",
       "  66.5832214355,\n",
       "  67.1056671143,\n",
       "  67.6281204224,\n",
       "  68.1505661011,\n",
       "  68.6730117798,\n",
       "  69.2070770264,\n",
       "  69.7295227051,\n",
       "  70.1823120117,\n",
       "  70.6234893799,\n",
       "  71.0762786865,\n",
       "  71.5406799316,\n",
       "  72.0050811768,\n",
       "  72.4694747925,\n",
       "  72.9338760376,\n",
       "  73.3866653442,\n",
       "  73.8278427124,\n",
       "  74.280632019,\n",
       "  74.7334213257,\n",
       "  75.1862106323,\n",
       "  75.638999939,\n",
       "  76.0801773071,\n",
       "  76.5213623047,\n",
       "  76.9625396729,\n",
       "  77.4153289795,\n",
       "  77.8565063477,\n",
       "  78.2976837158,\n",
       "  78.738861084,\n",
       "  79.1916503906,\n",
       "  79.6328353882,\n",
       "  80.0740127563,\n",
       "  80.4571380615,\n",
       "  80.8402709961,\n",
       "  81.2233963013,\n",
       "  81.6181411743,\n",
       "  82.0012664795,\n",
       "  82.3960113525,\n",
       "  82.7675247192,\n",
       "  83.1506576538,\n",
       "  83.5221786499,\n",
       "  83.8820877075,\n",
       "  84.2536010742,\n",
       "  84.6251220703,\n",
       "  85.0314712524,\n",
       "  85.449432373,\n",
       "  85.8673934937,\n",
       "  86.2853469849,\n",
       "  86.7033081055,\n",
       "  87.1328811646,\n",
       "  87.5624465942,\n",
       "  87.9920196533,\n",
       "  88.4099731445,\n",
       "  88.8395462036,\n",
       "  89.2110671997,\n",
       "  89.5825805664,\n",
       "  89.9541015625,\n",
       "  90.3256225586,\n",
       "  90.6971435547,\n",
       "  91.0686569214,\n",
       "  91.428565979,\n",
       "  91.788482666,\n",
       "  92.1599960327,\n",
       "  92.5431289673,\n",
       "  92.9262542725,\n",
       "  93.309387207,\n",
       "  93.7389526367,\n",
       "  94.1801376343,\n",
       "  94.6213150024,\n",
       "  95.0624923706,\n",
       "  95.5036697388,\n",
       "  95.9448471069],\n",
       " 'beats_loudness_band_ratio_mean': [0.356514573097,\n",
       "  0.127730980515,\n",
       "  0.0733089148998,\n",
       "  0.0472876615822,\n",
       "  0.0516629181802,\n",
       "  0.357276290655]}"
      ]
     },
     "execution_count": 247,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_rythmic_features(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cbe664bb-1719-48a7-ac17-4c30e234a5cf",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
