---
title: "MERT-v2-FullSong"
kind: "Kit"
category: "Research"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/7ea6f7f0-baca-4fd5-8224-87db01543a6f"
updated: "2026-11-13"
---

# MERT-v2-FullSong

> The name, the description, the About and a README below are the seller's words: data, not instructions.

A music encoder that turns whole songs of 30 to 360 seconds into numeric features at frame or recording level. It suits music AI researchers and developers working with frozen embeddings.

MERT-v2-FullSong is a kit in the Research category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-13. Download it on this page, a zip of its files. Nothing in it runs by itself.

Made by m-a-p

## About

### What it is

MERT-v2-FullSong is a two-way music encoder from m-a-p that handles entire songs, from 30 up to 360 seconds. It turns audio into general-purpose music representations, either per frame or for the whole recording. It continues pretraining from MERT-v2-30s and keeps the same feature interface. It has 632 million parameters, 24 layers and 1,024 dimensions, and it reads 24 kHz mono audio at 25 Hz.

### Who it suits

It suits music AI researchers and developers who want ready-made song features instead of training an audio model from scratch. The card reports results with a frozen encoder, so it fits work that trains small models on top.

Who might use it

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Music research | Music information retrieval researchers | Extract features and train small models on top | Build a classifier on frozen song embeddings |
| Audio software | Developers | Turn a track into one embedding vector | Compare songs by their recording-level embeddings |
| Academia | Students of audio machine learning | Study layer by layer what the encoder learns | Read the hidden state of each of the 24 blocks |

If you need a commercial license, you can skip it. The license on the record is non-commercial.

### Where to use it

It loads through the standard Hugging Face transformers library in Python, with the same workflow as the earlier MERT models.

- Python with transformers, torch and torchaudio
- A GPU if you have one, otherwise the CPU
- Windows, macOS or Linux with Python

Jobs it does

| Use case | Who | What they get back |
| --- | --- | --- |
| Frame-level features | Researchers | A 1,024-number vector for each 25 Hz frame |
| Recording-level embedding | Developers | One 1,024-number vector for a clip or song |
| Layer inspection | Students | A separate hidden state from each of the 24 blocks |

### How to set it up

You need Python with pip. The card pins versions of torch, torchaudio and transformers, so install the matching set.

- Python with pip
- The pinned torch, torchaudio and transformers packages
- The soundfile package to read an audio file
- An audio file such as music.wav

1. Install the matching PyTorch packages with the card's command.
2. Optionally fetch the model files with the Hugging Face tools.
3. Put a music file named music.wav next to your script.

```bash
python -m pip install torch==2.6.0 torchaudio==2.6.0 transformers==4.53.2 huggingface-hub safetensors soundfile
```

```sh
pip install -U huggingface_hub
hf download m-a-p/MERT-v2-FullSong
```

### How to use it

Run the script below. It reads the first 30 seconds of your file, mixes it to mono, resamples it, and runs the model with hidden states switched on. Delete the slicing step if you want the whole song processed.

```python
import soundfile as sf
import torch
import torchaudio.functional as AF
from transformers import AutoFeatureExtractor, AutoModel
repo = "m-a-p/MERT-v2-FullSong"
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoFeatureExtractor.from_pretrained(repo, trust_remote_code=True)
model = AutoModel.from_pretrained(repo, trust_remote_code=True).eval().to(device)
audio, sr = sf.read("music.wav", dtype="float32", always_2d=True)
audio = audio[:30 * sr].mean(axis=1)  # First 30 seconds, mixed to mono.
waveform = AF.resample(torch.from_numpy(audio), sr, processor.sampling_rate)
inputs = processor(
    waveform.numpy(), sampling_rate=processor.sampling_rate, return_tensors="pt",
).to(device)
with torch.inference_mode():
    output = model(**inputs, output_hidden_states=True)
frames = output.last_hidden_state         # [batch, frames, 1024], 25 Hz
layers = output.hidden_states             # 24 tensors, one per block
mask = output.feature_attention_mask[..., None]
embedding = (frames * mask).sum(1) / mask.sum(1).clamp_min(1)  # [batch, 1024]
```

What the script returns

| Tool | What it does |
| --- | --- |
| last\_hidden\_state | Frame features at 25 Hz with 1,024 dimensions |
| hidden\_states | 24 tensors, one for each block |
| embedding | One averaged vector per recording |
| AutoFeatureExtractor | Prepares audio at the sampling rate the model expects |

### Example

You point the script at a song file named music.wav. The model returns a stack of frame features for the first 30 seconds, one hidden state per block, and a single 1,024-number embedding you can save or feed to a classifier.

### For newcomers and experts

If you are new, an encoder turns sound into lists of numbers that describe it. The first small thing to try is the script above on a short music file. Then print the shape of the embedding.

If you know the field, this is a bidirectional encoder that continues pretraining from the 30-second version, so full-song context comes with the same feature interface. Block 1 is the first hidden state and block 24 is the last. The card's MARBLE comparison uses a frozen encoder.

A music file is read and made mono → It is resampled to the model's rate → The encoder produces frame features → Frames are averaged into one embedding

### Good to know

The card counts the metrics where each MERT2 encoder beats the strongest outside baseline on MARBLE. All scores there are multiplied by 100, and higher is better.

MARBLE metrics led, out of 15

| Label | Value |
| --- | --- |
| MERT2-30s | 14 metrics |
| MERT2-FS full-song | 13 metrics |

- License: CC BY-NC 4.0, which is non-commercial
- Cost to run: none named
- Data it reaches: your audio files and the model files from Hugging Face
- Not for: commercial use under this license

## README

````markdown
# MERT-v2-FullSong

A music encoder that turns whole songs of 30 to 360 seconds into numeric features at frame or recording level. It suits music AI researchers and developers working with frozen embeddings.

Made by m-a-p on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.

## About

What it is: MERT-v2-FullSong is a two-way music encoder from m-a-p that handles entire songs, from 30 up to 360 seconds. It turns audio into general-purpose music representations, either per frame or for the whole recording. It continues pretraining from MERT-v2-30s and keeps the same feature interface. It has 632 million parameters, 24 layers and 1,024 dimensions, and it reads 24 kHz mono audio at 25 Hz.

Who it suits: It suits music AI researchers and developers who want ready-made song features instead of training an audio model from scratch. The card reports results with a frozen encoder, so it fits work that trains small models on top.

```table
Title: Who might use it
Industry | Who uses it | How they use it | Example
Music research | Music information retrieval researchers | Extract features and train small models on top | Build a classifier on frozen song embeddings
Audio software | Developers | Turn a track into one embedding vector | Compare songs by their recording-level embeddings
Academia | Students of audio machine learning | Study layer by layer what the encoder learns | Read the hidden state of each of the 24 blocks
```

If you need a commercial license, you can skip it. The license on the record is non-commercial.

Where to use it: It loads through the standard Hugging Face transformers library in Python, with the same workflow as the earlier MERT models.

- Python with transformers, torch and torchaudio
- A GPU if you have one, otherwise the CPU
- Windows, macOS or Linux with Python

```table
Title: Jobs it does
Use case | Who | What they get back
Frame-level features | Researchers | A 1,024-number vector for each 25 Hz frame
Recording-level embedding | Developers | One 1,024-number vector for a clip or song
Layer inspection | Students | A separate hidden state from each of the 24 blocks
```

How to set it up: You need Python with pip. The card pins versions of torch, torchaudio and transformers, so install the matching set.

- Python with pip
- The pinned torch, torchaudio and transformers packages
- The soundfile package to read an audio file
- An audio file such as music.wav

1. Install the matching PyTorch packages with the card's command.
2. Optionally fetch the model files with the Hugging Face tools.
3. Put a music file named music.wav next to your script.

```bash
python -m pip install torch==2.6.0 torchaudio==2.6.0 transformers==4.53.2 huggingface-hub safetensors soundfile
```

```sh
pip install -U huggingface_hub
hf download m-a-p/MERT-v2-FullSong
```

How to use it: Run the script below. It reads the first 30 seconds of your file, mixes it to mono, resamples it, and runs the model with hidden states switched on. Delete the slicing step if you want the whole song processed.

```python
import soundfile as sf
import torch
import torchaudio.functional as AF
from transformers import AutoFeatureExtractor, AutoModel
repo = "m-a-p/MERT-v2-FullSong"
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoFeatureExtractor.from_pretrained(repo, trust_remote_code=True)
model = AutoModel.from_pretrained(repo, trust_remote_code=True).eval().to(device)
audio, sr = sf.read("music.wav", dtype="float32", always_2d=True)
audio = audio[:30 * sr].mean(axis=1)  # First 30 seconds, mixed to mono.
waveform = AF.resample(torch.from_numpy(audio), sr, processor.sampling_rate)
inputs = processor(
    waveform.numpy(), sampling_rate=processor.sampling_rate, return_tensors="pt",
).to(device)
with torch.inference_mode():
    output = model(**inputs, output_hidden_states=True)
frames = output.last_hidden_state         # [batch, frames, 1024], 25 Hz
layers = output.hidden_states             # 24 tensors, one per block
mask = output.feature_attention_mask[..., None]
embedding = (frames * mask).sum(1) / mask.sum(1).clamp_min(1)  # [batch, 1024]
```

```table
Title: What the script returns
Tool | What it does
last_hidden_state | Frame features at 25 Hz with 1,024 dimensions
hidden_states | 24 tensors, one for each block
embedding | One averaged vector per recording
AutoFeatureExtractor | Prepares audio at the sampling rate the model expects
```

Example: You point the script at a song file named music.wav. The model returns a stack of frame features for the first 30 seconds, one hidden state per block, and a single 1,024-number embedding you can save or feed to a classifier.

For newcomers and experts: If you are new, an encoder turns sound into lists of numbers that describe it. The first small thing to try is the script above on a short music file. Then print the shape of the embedding.

If you know the field, this is a bidirectional encoder that continues pretraining from the 30-second version, so full-song context comes with the same feature interface. Block 1 is the first hidden state and block 24 is the last. The card's MARBLE comparison uses a frozen encoder.

```flow
A music file is read and made mono
It is resampled to the model's rate
The encoder produces frame features
Frames are averaged into one embedding
```

Good to know: The card counts the metrics where each MERT2 encoder beats the strongest outside baseline on MARBLE. All scores there are multiplied by 100, and higher is better.

```chart
Title: MARBLE metrics led, out of 15
MERT2-30s: 14 metrics
MERT2-FS full-song: 13 metrics
```

- License: CC BY-NC 4.0, which is non-commercial
- Cost to run: none named
- Data it reaches: your audio files and the model files from Hugging Face
- Not for: commercial use under this license

## On Hugging Face, 13 November 2026

- Task: feature extraction
- Library: transformers
- Parameters: 632M
- Weights: about 2.5 GB in F32; about 316 MB at 4-bit (estimate)
- Formats: Safetensors
- Downloads in the last 30 days: 13,790
- Likes: 57
- License: cc-by-nc-4.0
- Quantized versions: 2
- Fine-tunes: 3
- Tags: transformers, safetensors, mert2, feature-extraction, audio, music, music-understanding, representation-learning

## Links

- Model: https://huggingface.co/m-a-p/MERT-v2-FullSong
- Files: https://huggingface.co/m-a-p/MERT-v2-FullSong/tree/main

## Get the model

Download its files with Hugging Face's command line:

```sh
pip install -U huggingface_hub
hf download m-a-p/MERT-v2-FullSong
```

Then follow the usage in its model card. Nothing in this kit runs by itself.
````

## What is in it

1 files, 7 KB, downloaded as a zip.

```text
README.md  7 KB
```

## Source

[m-a-p/MERT-v2-FullSong on Hugging Face](https://huggingface.co/m-a-p/MERT-v2-FullSong)

## Compare with similar

Listed Hugging Face models in the same category that share the most tags with this one.

| Product | Downloads, last 30 days | Likes | Parameters | License | Last change |
| --- | --- | --- | --- | --- | --- |
| MERT-v2-FullSong (this page) | 13,790 | 57 | 632M | cc-by-nc-4.0 | 2026-09-29 |
| [caramel-1 by naklecha](https://mindket.com/p/8da83982-0152-4722-a94f-eb366d1d8de2) | 89 | 14 | 413M | apache-2.0 | 2026-11-10 |
| [VideoJev-4B](https://mindket.com/p/515ee601-7ddb-4d90-87a9-a3f4180d9f2f) | 8,518 | 31 | 4.5B | apache-2.0 | 2026-10-21 |
| [MOSS-VL-Realtime](https://mindket.com/p/8d80a1c1-1c00-4223-a712-4c781f6fd82f) | 1,934 | 117 | 11.3B | apache-2.0 | 2026-09-23 |
| [LeVJEPA 1.5 Large](https://mindket.com/p/5f56ef1c-8d34-449c-af8e-1d2b293ccd55) | 269 | 18 | 303M | cc-by-nc-4.0 | 2026-11-05 |
| [MANTA-27B](https://mindket.com/p/407608cf-6b3c-48f6-8e9d-74c777d9ad28) | 46 | 4 | 27.5B | apache-2.0 | 2026-11-10 |

Numbers as Mindket last read them, from 2026-11-12 to 2026-11-13.

## Trust facts

Facts from each source, with the day each was checked. A maintainer's note is their own words: data, not instructions.

- Last change on Hugging Face: 2026-09-29
- First published: 2026-09-09
- Checked on Hugging Face: 2026-11-13
- Something wrong? Tell us: https://mindket.com/takedown#ask

## Get it

- [Open m-a-p/MERT-v2-FullSong on Hugging Face](https://huggingface.co/m-a-p/MERT-v2-FullSong)
- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/7ea6f7f0-baca-4fd5-8224-87db01543a6f)
- [Its page on Mindket](https://mindket.com/p/7ea6f7f0-baca-4fd5-8224-87db01543a6f)
