Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ US 2015/0016613 A1). Expired and abandoned patent documents are published
prior art, free for anyone to practice. Presets marked "measured-tape" or
"measured-mss" encode frequencies, beat rates, and timings measured by
spectral analysis of personal copies of commercial recordings; such
measurements are unprotectable facts. No audio, narration, or music from
measurements are unprotectable facts. Presets marked "best-effort" carry
numbers contributed by others, from their own analysis of commercial
recordings; farfield has not verified them, and they claim only to be
plausible approximations. No audio, narration, or music from
any recording is included in or reproduced by this project.

Trademark disclaimer: Hemi-Sync® and Gateway Experience® are registered
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,15 @@ own custom meditation sessions and have fun with it.
modulation depths and layer timelines from any stereo recording — it's
how the measured presets were made, and how the test suite verifies
every render against its numbers.
- **16 bundled presets** (in [`presets/`](presets/)) in four provenance
- **19 bundled presets** (in [`presets/`](presets/)) in five provenance
groups, strongest first:
measured from the original tapes, measured from the MSS remasters, from
the patents, and original designs. The measurement data behind the
first two groups is published in
[`docs/tape-analysis/`](docs/tape-analysis/).
the patents, best-effort reconstructions, and original designs. The
measurement data behind the first two groups is published in
[`docs/tape-analysis/`](docs/tape-analysis/). Best-effort presets are
community-contributed guesses at a recording that farfield has not
verified with its own pipeline; their notes say what is claimed and
what was chosen by ear.

The measured presets were reverse engineered by spectral analysis of
personal copies of the classic gateway-era recordings and their modern
Expand Down
12 changes: 10 additions & 2 deletions farfield/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,18 @@
"measured-tape": "measured from the original tapes",
"measured-mss": "measured from the MSS remasters",
"patent": "from the patents",
"best-effort": "best-effort reconstructions (unverified)",
"original": "original designs",
}
"""Plain-English group headings for the machine-readable fidelity tiers.
The machine values stay in the YAML and the sidecar; these are what a
person sees in `list`."""

TIER_LABELS = {**TIER_HEADINGS, "original": "original design"}
TIER_LABELS = {
**TIER_HEADINGS,
"best-effort": "best-effort reconstruction (unverified)",
"original": "original design",
}
"""Singular variant for a single session's `describe` line."""


Expand All @@ -49,7 +54,10 @@ def format_duration(seconds: float) -> str:
return f"{minutes}:{secs:02d}"


_TIER_ORDER = {"measured-tape": 0, "measured-mss": 1, "patent": 2, "original": 3}
_TIER_ORDER = {
"measured-tape": 0, "measured-mss": 1, "patent": 2, "best-effort": 3,
"original": 4,
}


def list_lines(directory: Path) -> list[str]:
Expand Down
7 changes: 5 additions & 2 deletions farfield/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,12 @@

from farfield.waveshape import DEFAULT_HARMONICS

FIDELITY_TIERS = frozenset({"measured-tape", "measured-mss", "patent", "original"})
FIDELITY_TIERS = frozenset(
{"measured-tape", "measured-mss", "patent", "best-effort", "original"})
"""Provenance tiers, strongest first: measured from the original tapes,
measured from the MSS remasters, from the patents, original designs."""
measured from the MSS remasters, from the patents, best-effort
reconstructions (claims about a recording that farfield has not verified
with its own pipeline), original designs."""

DEFAULT_SAMPLE_RATE = 48000
DEFAULT_PEAK_DBFS = -3.0
Expand Down
2 changes: 2 additions & 0 deletions farfield/viz_template.html
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
.tier[data-tier="measured-tape"] { color: #3987e5; }
.tier[data-tier="measured-mss"] { color: #9085e9; }
.tier[data-tier="patent"] { color: #199e70; }
.tier[data-tier="best-effort"] { color: #d0603a; }
.tier[data-tier="original"] { color: #c98500; }
.spacer { flex: 1; }
.chip {
Expand Down Expand Up @@ -291,6 +292,7 @@ <h2>Live waveform</h2>
"measured-tape": "measured from the original tapes",
"measured-mss": "measured from the MSS remasters",
"patent": "from the patents",
"best-effort": "best-effort reconstruction (unverified)",
"original": "original design",
};
const tierEl = document.getElementById("tier");
Expand Down
64 changes: 64 additions & 0 deletions presets/focus-11-gamma-pink.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: focus-11-gamma-pink
title: "Focus 11 — 40 Hz SAM triad (unverified)"
fidelity: best-effort
notes: |
BEST-EFFORT, UNVERIFIED. Contributed by a community member, who measured
it with AI-assisted analysis of their own copy of a newer commercial
Focus 11 release (identified by them as "SyncCreation 2.0", a 320 kbps
MP3), sustained window 16:00-27:00. Farfield has NOT re-measured this
recording, no measurement data is published in docs/tape-analysis/, and
the numbers below are taken on trust. Treat it as a plausible sketch,
not a transcription.

What is claimed: three shared carriers under 40 Hz closed-path
spatial angle modulation (antiphase phase modulation, the technique in
sam-gamma.yaml), over a pink bed. If confirmed, this would be the first
recording found to use SAM at all: the MSS remasters measured in this
repository came back SAM-absent. That claim is exactly what farfield's
mid/side estimator exists to check, and it has not been run here.

Two things in its favour and two against:
- The carriers 256.869 / 323.625 / 384.875 Hz sit within 0.01 Hz of a
C-major triad (C4 / E4 / G4) in equal temperament at A = 432 Hz,
which a deliberate design would produce and noise would not.
- The depths imply +/-548, +/-559 and +/-592 us of interaural delay,
beyond the ~510 us maximum of the spherical-head model used in
sam-gamma.yaml. Possible, but unexplained.
- The pink-bed level (-7.4 dB) was set by ear, not measured.
- The source window is rendered as one sustained 30:00 hold; any entry,
exit or drift in the original is not represented.
sample_rate: 48000
output:
peak_dbfs: -3.0
defaults:
harmonics:
- 1.0
segments:
- duration: '30:00'
groups:
- name: gamma257
level_db: -4.0
sam:
carrier_hz: 256.869
rate_hz: 40.0
depth_rad: 0.442
path: closed
- name: gamma324
level_db: 0.0
sam:
carrier_hz: 323.625
rate_hz: 40.0
depth_rad: 0.568
path: closed
- name: gamma385
level_db: -1.4
sam:
carrier_hz: 384.875
rate_hz: 40.0
depth_rad: 0.716
path: closed
bed:
level_db: -7.4
color: pink
slope_db_per_decade: -10.0
emerge: false
54 changes: 54 additions & 0 deletions presets/focus-11-gamma-theta-pink.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: focus-11-gamma-theta-pink
title: "Focus 11 — SAM triad plus 4 Hz theta (unverified arrangement)"
fidelity: best-effort
notes: |
BEST-EFFORT, UNVERIFIED, AND PARTLY AN ARRANGEMENT. Identical to
focus-11-gamma-pink (read its notes: same contributed, unverified 40 Hz
SAM triad and ear-set pink bed) plus a conventional L 175 / R 179 Hz
binaural pair, a 4 Hz beat with the right ear high.

The contributor reports that pair as INTERMITTENT in the source, not
continuously present. This preset plays it for the whole 30:00, so its
persistence is a design choice, not a measurement. Its -7 dB level was
likewise chosen, not measured. Prefer focus-11-gamma-pink as the
closer sketch of the source; this one is an audition variant.
sample_rate: 48000
output:
peak_dbfs: -3.0
defaults:
harmonics:
- 1.0
segments:
- duration: '30:00'
groups:
- name: theta4
level_db: -7.0
pairs:
- left: 175.0
right: 179.0
- name: gamma257
level_db: -4.0
sam:
carrier_hz: 256.869
rate_hz: 40.0
depth_rad: 0.442
path: closed
- name: gamma324
level_db: 0.0
sam:
carrier_hz: 323.625
rate_hz: 40.0
depth_rad: 0.568
path: closed
- name: gamma385
level_db: -1.4
sam:
carrier_hz: 384.875
rate_hz: 40.0
depth_rad: 0.716
path: closed
bed:
level_db: -7.4
color: pink
slope_db_per_decade: -10.0
emerge: false
48 changes: 48 additions & 0 deletions presets/focus-11-older-flac.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: focus-11-older-flac
title: "Focus 11 — 4 Hz and 7.4 Hz pairs, older release (unverified)"
fidelity: best-effort
notes: |
BEST-EFFORT, UNVERIFIED. Contributed by a community member, who measured
it with AI-assisted analysis of their own copy of an older commercial
recording (a 44.1 kHz / 24-bit stereo FLAC named "HP040 Sleep 2
Function"), window 06:54-12:27, which they identify as its Focus 11
section. Farfield has NOT re-measured this recording and publishes no
data for it; the numbers below are taken on trust. It is a different
construction from focus-11-gamma-pink, not an earlier take on it.

Reported content, two persistent conventional binaural pairs:
A: L 167.35 / R 171.35 Hz = 4.00 Hz beat, right ear high.
B: L ~412.3 / R ~404.9 Hz = ~7.40 Hz beat, left ear high.
Pair B's absolute carrier reportedly drifts by about +/-0.5 Hz across the
window while its 7.4 Hz separation holds; this preset uses the median
centre (~408.6 Hz) and drops the drift.

The bed is reported as roughly pink through the midband (~ -11.6
dB/decade over 1-5 kHz) with a steeper high-frequency rolloff that is not
reproduced. Narration over the source prevented isolating the bed, so
its level is an estimate. No 40 Hz SAM was found in this window and none
is added. Rendered as one sustained 30:00 hold, not the source timeline.
sample_rate: 48000
output:
peak_dbfs: -3.0
defaults:
harmonics:
- 1.0
segments:
- duration: '30:00'
groups:
- name: theta4
level_db: -1.1
pairs:
- left: 167.35
right: 171.35
- name: upper74
level_db: 0.0
pairs:
- left: 412.3
right: 404.9
bed:
level_db: -4.0
color: pink
slope_db_per_decade: -11.6
emerge: false
4 changes: 3 additions & 1 deletion presets/sam-gamma.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,9 @@ notes: |
(mss-report.md, "Method"), and the SAM component came back ABSENT: what
those recordings actually contain is amplitude panning. Nothing in this
preset is transcribed from audio. It reproduces the patents, and only
the patents.
the patents. (focus-11-gamma-pink carries a community claim of measured
40 Hz SAM in a newer Focus 11 release. Farfield has not verified it, so
the statement above stands until someone runs the estimator on it.)

Structure: four blocks on a 300 Hz carrier at f_m = 40 Hz, over a
quiet 100 Hz delta pair as ground and a pink bed. Block 2 repeats
Expand Down
5 changes: 4 additions & 1 deletion tests/support.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@ def preset_names() -> list[str]:
return sorted(p.stem for p in PRESET_DIR.glob("*.yaml"))


_TIER_ORDER = {"measured-tape": 0, "measured-mss": 1, "patent": 2, "original": 3}
_TIER_ORDER = {
"measured-tape": 0, "measured-mss": 1, "patent": 2, "best-effort": 3,
"original": 4,
}


def preset_metadata() -> list[dict]:
Expand Down
1 change: 1 addition & 0 deletions tests/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ def test_list_lines_group_by_fidelity_tier():
assert "measured from the original tapes:" in text
assert "measured from the MSS remasters:" in text
assert "from the patents:" in text
assert "best-effort reconstructions (unverified):" in text
assert "original designs:" in text
assert "sleep-90" in text
assert "focus-10" in text
Expand Down
37 changes: 37 additions & 0 deletions tests/test_presets_best_effort.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import pytest

from tests.support import load_preset, preset_metadata

BEST_EFFORT = [
"focus-11-gamma-pink", "focus-11-gamma-theta-pink", "focus-11-older-flac",
]


@pytest.mark.parametrize("name", BEST_EFFORT)
def test_best_effort_tier_and_no_emerge(name):
session = load_preset(name)
assert session.fidelity == "best-effort"
assert session.emerge is None


@pytest.mark.parametrize("name", BEST_EFFORT)
def test_best_effort_says_so_in_title_and_notes(name):
session = load_preset(name)
notes = session.notes.lower()
assert "unverified" in session.title.lower()
assert "best-effort" in notes and "unverified" in notes


@pytest.mark.parametrize("name", ["focus-11-gamma-pink", "focus-11-older-flac"])
def test_best_effort_disclaims_farfield_measurement(name):
assert "farfield has not re-measured" in load_preset(name).notes.lower()


def test_theta_variant_discloses_its_arrangement():
notes = load_preset("focus-11-gamma-theta-pink").notes.lower()
assert "intermittent" in notes and "design choice" in notes


def test_library_titles_are_unique():
titles = [e["title"] for e in preset_metadata()]
assert len(titles) == len(set(titles))
8 changes: 7 additions & 1 deletion tests/test_presets_library.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,16 @@
# (tests/test_presets_mss.py holds their own shape assertions).
MEASURED_MSS = ["focus-10-mss", "focus-12-mss", "focus-15-mss", "focus-21-mss"]
PATENT = ["sleep-90", "wake", "sam-gamma"]
# Community-contributed reconstructions that farfield has not re-measured
# (tests/test_presets_best_effort.py holds their disclosure assertions).
BEST_EFFORT = [
"focus-11-gamma-pink", "focus-11-gamma-theta-pink", "focus-11-older-flac",
]


def test_all_expected_presets_exist():
assert set(
ORIGINAL + MEASURED_TAPE + MEASURED_MSS + PATENT
ORIGINAL + MEASURED_TAPE + MEASURED_MSS + PATENT + BEST_EFFORT
) == set(preset_names())


Expand Down Expand Up @@ -71,5 +76,6 @@ def test_list_is_grouped_measured_first():
text.index("measured from the original tapes:")
< text.index("measured from the MSS remasters:")
< text.index("from the patents:")
< text.index("best-effort reconstructions (unverified):")
< text.index("original designs:")
)
3 changes: 2 additions & 1 deletion tests/test_presets_measured.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ def test_measured_totals_match_the_tape_timeline(name, total_s):
def test_measured_sorts_first_in_the_library():
tiers = [e["fidelity"] for e in preset_metadata()]
assert tiers[0] == "measured-tape"
order = {"measured-tape": 0, "measured-mss": 1, "patent": 2, "original": 3}
order = {"measured-tape": 0, "measured-mss": 1, "patent": 2,
"best-effort": 3, "original": 4}
assert tiers == sorted(tiers, key=lambda t: order[t])


Expand Down
4 changes: 2 additions & 2 deletions tests/test_session.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,9 +211,9 @@ def test_fidelity_must_be_a_known_tier():
load_session_dict(data)


def test_fidelity_tiers_are_the_documented_four():
def test_fidelity_tiers_are_the_documented_five():
assert FIDELITY_TIERS == frozenset(
{"measured-tape", "measured-mss", "patent", "original"})
{"measured-tape", "measured-mss", "patent", "best-effort", "original"})


def test_a_session_needs_at_least_one_segment():
Expand Down
4 changes: 2 additions & 2 deletions tests/test_session_bed.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@ def test_measured_tape_is_a_valid_tier():
assert _bed_session(fidelity="measured-tape").fidelity == "measured-tape"


def test_tier_set_is_exactly_the_four():
def test_tier_set_is_exactly_the_five():
assert FIDELITY_TIERS == frozenset(
{"measured-tape", "measured-mss", "patent", "original"})
{"measured-tape", "measured-mss", "patent", "best-effort", "original"})


def test_crossfade_stereo_parses():
Expand Down