Uncanny Listening
Human-algorithmic listening: what makes a pop song uncanny to a trained ear, and where an algorithm agrees.
Escucha humano-algorítmica: qué hace inquietante una canción pop para un oído entrenado, y dónde coincide un algoritmo.
What it does
Qué hace
You open a folder of songs: each sub-folder is a class (for example the songs you hear as uncanny and the ones you do not; any number of classes). The page describes every song and every 10-second segment by its sound: dynamics (rms), harmony (chroma), timbre (spectral contrast), structural complexity (spectral flux), brightness and more. It then compares your classes with what an algorithm finds on its own (k-means, and other clusterings), and with a transparent model trained on your labels whose knobs weight each family of descriptors, like a pedal. Turn a knob and the model's boundary moves on every map; the songs that change side are listed, to hear.
Abres una carpeta de canciones: cada subcarpeta es una clase (por ejemplo, las que oyes como inquietantes y las que no; cualquier número de clases). La página describe cada canción y cada segmento de 10 segundos por su sonido: dinámica (rms), armonía (croma), timbre (contraste espectral), complejidad estructural (flujo espectral), brillo y más. Después compara tus clases con lo que un algoritmo encuentra por sí solo (k-means y otros agrupamientos), y con un modelo transparente entrenado con tus etiquetas, cuyas perillas ponderan cada familia de descriptores, como un pedal. Gira una perilla y la frontera del modelo se mueve en todos los mapas; las canciones que cambian de lado aparecen en una lista, para escucharlas.
- Maps: PCA and the pairs of descriptors, linked: select, brush or trace in one and the same songs light up in all.
- Song timeline: one song's 10-s segments over time, the model on each, and where it crosses the boundary. Press and move along it to hear each segment.
- Descriptors: every descriptor's distribution per class and its effect size, ranked.
- By ear: listen, then change a song's class; every view follows, and each edit is kept with its time and can be undone.
- Mapas: PCA y los pares de descriptores, enlazados: selecciona o traza en uno y las mismas canciones se iluminan en todos.
- Línea de tiempo: los segmentos de 10 s de una canción, el modelo en cada uno y dónde cruza la frontera. Pulsa y recórrela para oír cada segmento.
- Descriptores: la distribución de cada descriptor por clase y su tamaño del efecto, ordenados.
- De oído: escucha y cambia la clase de una canción; todas las vistas la siguen, y cada edición se guarda con su hora y puede deshacerse.
Your audio stays with you
Tu audio se queda contigo
Nothing is uploaded. The analysis runs in this browser tab, on your computer; this page holds no audio
and no data. The default preset reproduces the researcher's analysis (DarkLibrosa's summary mode, whole songs and 10-s
segments): it reads .flac files, as that analysis did; switch to "every audio file" to include the rest.
An hour of audio takes about a minute on a recent laptop (217 songs, 17 hours: 8 minutes).
No se sube nada. El análisis se hace en esta pestaña del navegador, en tu ordenador; esta página no
contiene audio ni datos. El preset por defecto reproduce el análisis de la investigadora (modo resumen de DarkLibrosa, canciones
enteras y segmentos de 10 s): lee archivos .flac, como ese análisis; cambia a «todos los archivos de audio»
para incluir el resto. Una hora de audio tarda alrededor de un minuto en un portátil reciente (217 canciones, 17 horas: 8 minutos).
Outputs: a session file (the analysis, labels and edits, knobs, selections and traces; no audio; open it again and link the folder to listen), the tables as CSV, any view as an SVG or PNG figure (the paper look reads best in print), and a methods note in English or Spanish written from what was computed.
Resultados: un archivo de sesión (el análisis, etiquetas y ediciones, perillas, selecciones y recorridos; sin audio; ábrelo de nuevo y enlaza la carpeta para escuchar), las tablas en CSV, cualquier vista como figura SVG o PNG (el aspecto papel se lee mejor impreso) y una nota de métodos en inglés o español escrita a partir de lo que se calculó.
Playing into Ableton Live
Tocar en Ableton Live
An extra, for exploring creatively: the Live panel links to the Dark Music Corpus Hub device in a Live set. What you play or walk here reaches Live: the clip itself (set DMC Corpus's root to the same folder) and, as keys, the descriptors, the label, k-means and the model. Chrome asks once for local network access; Firefox links; Safari cannot link to Live.
Un extra, para explorar creativamente: el panel Live se enlaza con el dispositivo DMC Hub de Dark Music Corpus en un set de Live. Lo que reproduces o recorres aquí llega a Live: el propio clip (pon la raíz de DMC Corpus en la misma carpeta) y, como claves, los descriptores, la etiqueta, k-means y el modelo. Chrome pide una vez acceso a la red local; Firefox enlaza; Safari no puede enlazar con Live.
Credits
Créditos
| Research · Investigación | Ana Marjalizo (University of Barcelona · Universitat de Barcelona) |
| Design · Diseño | Miguel Angel Crozzoli · implemented with Claude AI agents · built with DarkSonification |
| Concepts | Thor Magnusson, Sonic Writing (2019) — the signal–symbol framework · M. A. Crozzoli et al., Dark Sonification, ICAD 2025 |
| Methods | MIR features after librosa 0.11 (McFee et al., SciPy 2015): spectral contrast (Jiang et al. 2002), onset strength and peak picking (Böck, Krebs, Schedl 2012), tempo (Ellis 2007), mel filterbank (Slaney 1998) · DarkLibrosa (DarkSonification) · after scikit-learn (Pedregosa et al., JMLR 2011): MinMax, PCA (Pearson 1901; Hotelling 1933), k-means++ (Arthur, Vassilvitskii 2007) and Lloyd (1982), kernel density (Rosenblatt 1956; Parzen 1962), logistic regression (Cox 1958) with L-BFGS (Liu, Nocedal 1989), stratified cross-validation (Kohavi 1995), adjusted Rand index (Hubert, Arabie 1985) · NumPy's random stream (Harris et al., Nature 2020), Mersenne Twister (Matsumoto, Nishimura 1998) · Hungarian assignment (Kuhn 1955; Munkres 1957) · DBSCAN (Ester, Kriegel, Sander, Xu, KDD 1996) · mid / side stereo after Blumlein (GB 394,325, 1931) · MFCC (Davis, Mermelstein 1980) · from the Dark Music Corpus engine: Ward linkage (1963), Gaussian mixtures by EM (Dempster, Laird, Rubin 1977), spectral clustering (Ng, Jordan, Weiss 2001), HDBSCAN (Campello et al. 2013) · Cohen's d (1988) · Nadaraya–Watson kernel regression (1964) · FLAC (Xiph.Org, RFC 9639) · resampling to the libsoxr HQ specification with a Kaiser window (1974) · the Live template's difference voice after Plomp, Levelt (1965) |
| Layout | After Dark Re-wilding's display (with Alice Eldridge): the controls panel and the perceptual legend |
| In this page | D3.js v7 (ISC; Bostock, Ogievetsky, Heer, IEEE TVCG 2011) · umap-js with ml-matrix and ml-levenberg-marquardt (MIT; bundled with the engine) · the Dark Music Corpus web engine (MIT) · hyparquet and hyparquet-writer (Hyperparam, MIT) for parquet tables · optional CLAP embeddings (Wu et al., ICASSP 2023; LAION models, Apache-2.0: larger_clap_music_and_speech, larger_clap_music, clap-htsat-fused), 8-bit ONNX audio encoders prepared for Dark Music Corpus, shipped with this page with their notices; run by ONNX Runtime Web v1.30.0 (Microsoft, MIT), with the ClapFeatureExtractor ported from Hugging Face Transformers (Apache-2.0) in Dark Music Corpus's engine (MIT) · the coi-sw.js service worker from Dark Music Corpus (MIT) · Rubik and Karla fonts (SIL OFL 1.1) · the Dark Sonification style kit |
| Live link | The Dark Music Corpus Hub and its Max for Live devices (Cycling '74 / Ableton) |
| Hosting | GitHub Pages |