DOI: 10.5281/zenodo.14854216
title: RPMC_L2

description: Dataset Overview

This is the Rock, Punk, Metal, and Core - Livehouse Lighting (RPMC-L2) Dataset.



Purpose: Dataset for studying the relationship between music and lighting in live music performances

Music Genres: Rock, Punk, Metal, and Core

Total Files: 699 files of synchronized music and lighting data

Collection Method: Collected from professional live performance venues

Data Format: HDF5 file format (.h5)

Total Size: ~40 GB


Dataset Data Structure

1. music (dict)



Contains audio-related features, stored as np.ndarray arrays. Each feature has a shape (X, L), where L is the sequence length.





Feature
Shape
Description




openl3
(512, L)
OpenL3 deep audio embedding.


mel_spectrogram
(128, L)
Mel spectrogram.


mel_spectrogram_db
(128, L)
Mel spectrogram in decibels.


cqt
(84, L)
Constant-Q transform (CQT).


stft
(1025, L)
Short-time Fourier transform (STFT).


mfcc
(128, L)
Mel-frequency cepstral coefficients.


chroma_stft
(12, L)
Chroma features from STFT.


chroma_cqt
(12, L)
Chroma features from CQT.


chroma_cens
(12, L)
Chroma Energy Normalized Statistics.


spectral_centroids
(1, L)
Spectral centroid.


spectral_bandwidth
(1, L)
Spectral bandwidth.


spectral_contrast
(7, L)
Spectral contrast.


spectral_rolloff
(1, L)
Spectral rolloff frequency.


zero_crossing_rate
(1, L)
Zero-crossing rate.




2. light (dict)



Contains lighting-related data, structured as np.ndarray arrays with specific ranges and shapes.





Feature
Range
Shape
Description




threshold
0 to 240
(F, 3, 256)
Frame-specific light threshold data.




Details of threshold (per frame):



Frame (np.ndarray): Length F, where each frame has a shape (3, 256):



h (Hue):



Values range from 0 to 179.

Shape: (180, padded to 256).



s (Saturation):



Values range from 0 to 255.

Shape: (256,).



v (Value):



Values range from 0 to 255.

Shape: (256,).






This structure organizes the datasets into two main categories: music features for audio characteristics and light features for lighting data, enabling efficient data processing and analysis.

Data Usage

1. Merge the Files

Use the cat command to merge the split files into a single .h5 file:

cat RPMC_L2_part_aa RPMC_L2_part_ab RPMC_L2_part_ac RPMC_L2_part_ad > RPMC_L2.h5


2. Read the Merged File

Use the following Python code to read the merged .h5 file and iterate through its contents:

import os
import h5py

root_folder = "/path/to/your/folder"  # Replace with your actual folder path

with h5py.File(os.path.join(root_folder, 'RPMC_L2.h5'), 'r') as f:
    for key in f.keys():  # Iterate through each file hash
        print(f"\nFile {key}:")
        for group_name in f[key].keys():  # Iterate through 'music' and 'light' groups
            print(f"\nGroup: {group_name}")
            for dataset_name in f[key][group_name].keys():  # Iterate through specific datasets
                print(f"{dataset_name}: {f[key][group_name][dataset_name].shape}")




f.keys(): Retrieves the top-level keys, typically representing file hashes.

f[key].keys(): Accesses the groups within each file (e.g., music and light).

f[key][group_name].keys(): Accesses the specific datasets within each group.