Introduction

How to search the Bach 370 chorales with chorale-search.

chorale-search finds musical patterns across the 370 four-part chorales harmonized by J.S. Bach. A search is a single JSON object — a Query — that you send to the Search page (or the /api/chorale-search endpoint directly). The query describes a short sequence of notes, intervals or harmonies and some optional constraints, and the engine returns every place in the corpus where that sequence occurs.

A minimal query looks like this:

{
    "feature": "deg",
    "voices": "all",
    "pattern": [
        { "deg": "3" },
        { "deg": "2" },
        { "deg": ["1", "3"] }
    ]
}

This finds every 3-note run where the scale degree goes 3 → 2 → 1-or-3, in any voice. Paste it into the Search page to see it in action.