Exploring EEG and ECG in Music Listening: A Scoping Review.
The 4 matches
- [1] § Methods › Information Sources ↔ tooling/build_metadata.py, lines 49–143 · score 0.93 · Academic Search Complete, EBSCOhost, PsycArticles, PsycInfo, citation searching, Pubmed
- [2] § Results › Publication Information › Region ↔ mcp/psyp70385-mcp/server.py, lines 71–96 · score 0.86 · South Asia, Southeast Asia, North America, Western Europe
- [3] § Methods › Search Strategy ↔ tooling/build_metadata.py, lines 49–143 · score 0.64 · PsycArticles, PsycInfo, S2, database, electroencephalography, ECG
- [4] § Methods › Eligibility Criteria ↔ mcp/psyp70385-mcp/server.py, lines 247–284 · score 0.60 · peer reviewed journal, English, abstracts, protocols, Eligibility
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
Python · 147 lines · 7.2 KB · MIT · 2 matches
- #!/usr/bin/env python3
- """Build the small, hand-curated metadata JSON files the MCP server reads
- alongside data/studies.json:
- data/review_metadata.json citation, ids, links, licence, PRISMA counts
- data/eligibility.json Appendix S1 (PCC framework) + the 6 numbered
- inclusion/exclusion rules from section 2.2
- data/search_strings.json Appendix S2 (per-database search strings)
- data/charting_items.json Appendix S3 (the data-charting template)
- data/table_footnotes.json per-table footnote letter -> meaning, so a
- "^a" marker on a cell can be resolved
- Source text is extracted from the reading package (references/paper.md,
- references/supplement.md) and data/tables.json, not retyped, so a change to
- either regenerates this file with the same wording.
- """
- import json
- import re
- from pathlib import Path
- ROOT = Path(__file__).resolve().parents[1]
- PKG = ROOT / "dist" / "eeg-ecg-music-review-agent" / "skill" / "psyp70385-eeg-ecg-music-scoping-review-paper"
- PAPER_MD = PKG / "references" / "paper.md"
- SUPP_MD = PKG / "references" / "supplement.md"
- TABLES = ROOT / "data" / "tables.json"
- def section(md, start_heading, end_heading=None):
- i = md.index(start_heading)
- j = md.index(end_heading, i + len(start_heading)) if end_heading else len(md)
- return md[i:j].strip()
- def numbered_rules(text_):
- """Split '2.2 | Eligibility Criteria' body into its 6 numbered paragraphs."""
- body = text_.split("\n\n", 2)[-1] # drop the heading and the lead-in sentence
- parts = re.split(r"\n\n(?=\d+\. )", body)
- rules = []
- for p in parts:
- m = re.match(r"^(\d+)\. (.+)$", p, flags=re.S)
- if not m:
- continue
- rules.append({"rule": int(m.group(1)), "text": re.sub(r"\s+", " ", m.group(2)).strip()})
- if len(rules) != 6:
- raise SystemExit(f"expected 6 eligibility rules, parsed {len(rules)}")
- return rules
- def main():
- paper_md = PAPER_MD.read_text(encoding="utf-8")
- supp_md = SUPP_MD.read_text(encoding="utf-8")
- tables = json.loads(TABLES.read_text(encoding="utf-8"))
- # --- eligibility.json ---------------------------------------------
- elig_section = section(paper_md, "### 2.2 | Eligibility Criteria", "### 2.3")
- rules = numbered_rules(elig_section)
- appendix_s1 = section(supp_md, "## Appendix S1")
- eligibility = {
- "source": "Section 2.2 (Eligibility Criteria) and Appendix S1 (Framework) of Leimroth et al. 2026, doi:10.1111/psyp.70385",
- "inclusion_exclusion_rules": rules,
- "pcc_framework_markdown": appendix_s1,
- }
- (ROOT / "data" / "eligibility.json").write_text(json.dumps(eligibility, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
- # --- search_strings.json --------------------------------------------
- appendix_s2 = section(supp_md, "## Appendix S2")
- search = {
- "source": "Appendix S2 (Search Details) of Leimroth et al. 2026, doi:10.1111/psyp.70385",
- "databases": ["PsycInfo (including PsycArticles)", "PubMed", "Scopus", "Web of Science (core collection)", "Academic Search Complete (EBSCOhost)"],
- "initial_search_date": "2024-01-31",
- "update_search_date": "2025-08-10",
- "citation_searching_records": 10,
- "search_strings_markdown": appendix_s2,
- }
- (ROOT / "data" / "search_strings.json").write_text(json.dumps(search, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
- # --- charting_items.json ---------------------------------------------
- appendix_s3 = section(supp_md, "## Appendix S3")
- charting = {
- "source": "Appendix S3 (Data Items) of Leimroth et al. 2026, doi:10.1111/psyp.70385",
- "categories": {
- "publication_information": ["Author/Year", "Region", "Aim of Study", "Findings"],
- "participants": ["Audiology", "Musicianship", "Handedness", "Eligibility Criteria", "Sample Size", "Final Number Processed", "Sex", "Age"],
- "measures": {
- "eeg": ["Variables", "Electrode Configuration", "Electrode Type", "Impedance", "Referencing", "Filtering", "Hardware", "Sampling Frequency"],
- "ecg": ["Variables", "Electrode Configuration", "Recording Equipment", "Filtering", "Sampling Rate", "Blood Pressure/Respiration"],
- },
- "experimental_conditions": {
- "stimulus": ["Duration", "Musical Component Examined", "Style", "Source", "Delivery Method", "Intensity", "Selection", "Familiarity", "Attention to Stimulus"],
- "study_design": ["Hypothesis", "Room Details", "Time of Day", "Orientation", "Visual State", "Control/Baseline", "Power Analysis", "Ethics/Informed Consent"],
- },
- },
- "template_markdown": appendix_s3,
- }
- (ROOT / "data" / "charting_items.json").write_text(json.dumps(charting, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
- # --- table_footnotes.json --------------------------------------------
- footnotes = {}
- for t in tables:
- n = int(t["label"].split()[1])
- entries = {}
- for note in t["notes"]:
- m = re.match(r"^([a-z])\s+(.+)$", note, flags=re.S)
- if m:
- entries[m.group(1)] = m.group(2).strip()
- if entries:
- footnotes[str(n)] = entries
- (ROOT / "data" / "table_footnotes.json").write_text(json.dumps(footnotes, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
- # --- review_metadata.json ---------------------------------------------
- metadata = {
- "citation": "Leimroth, S. R., Barry, R. J., De Blasio, F. M., & Byron, T. P. (2026). Exploring EEG and ECG in music listening: A scoping review. Psychophysiology, 63(9), e70385.",
- "doi": "10.1111/psyp.70385",
- "pubmed_id": "42693627",
- "pmc_id": "PMC13542476",
- "published_online": "2026-09-03",
- "received": "2026-05-18",
- "revised": "2026-08-18",
- "accepted": "2026-08-19",
- "licence": "CC BY 4.0",
- "open_access_pdf": "https://onlinelibrary.wiley.com/doi/pdfdirect/10.1111/psyp.70385",
- "preregistration": {"protocol": "https://osf.io/yx3rh", "project": "https://osf.io/xtznm"},
- "orcid": "0000-0003-3617-7994",
- "affiliation": "Brain & Behaviour Research Institute and School of Psychology, University of Wollongong",
- "methodology": ["Joanna Briggs Institute scoping review methodology", "PRISMA-ScR"],
- "prisma_flow": {
- "identified": 1214,
- "duplicates_removed": 596,
- "screened": 618,
- "excluded_at_screening": 581,
- "sought_for_retrieval": 37,
- "not_retrieved": 0,
- "assessed_for_eligibility": 37,
- "excluded_at_eligibility": 19,
- "included": 18,
- },
- "included_studies": 18,
- "first_authors": 13,
- "data_availability": "This scoping review did not generate or analyze primary experimental data; no original data or analysis code is associated with the manuscript.",
- }
- (ROOT / "data" / "review_metadata.json").write_text(json.dumps(metadata, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
- print("wrote data/eligibility.json, data/search_strings.json, data/charting_items.json, data/table_footnotes.json, data/review_metadata.json")
- if __name__ == "__main__":
- main()
build_metadata.py at commit 5c1f99f, under MIT · at the source
Overview
Abstract
Music listening, a common daily activity recognized for its emotional impact and ability to evoke memories, engages physiological and psychological processes. Concurrent electroencephalography (EEG) and electrocardiography (ECG) during music listening can inform our understanding of these processes. However, the insights offered by such simultaneous recordings, and the extent to which existing studies align with published methodological guidelines, remain unclear. To address this gap, we conducted a scoping review of peer‐reviewed research examining physiological responses to passive music listening using combined EEG and ECG measures in healthy adult non‐musicians. A structured search of five databases identified 18 papers. Data on methods, participant demographics, musical stimuli, and EEG/
Reproduced under the paper's license (CC BY), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above, with 4 matches between paragraphs and lines of code.
Zenodo 22827658
Availability: 1 check, the latest on 26 September 2026: the link answers (HTTP 200)
- 26 September 2026: the link answers (HTTP 200)
12 files
- mcp/
psyp70385-mcp/ , Python, 348 linesserver.py - mcp/
psyp70385-mcp/ , Python, 314 linestests/ test_tools.py - tooling/
adjudicate.py , Python, 82 lines - tooling/
apply_review.py , Python, 347 lines - tooling/
build_metadata.py , Python, 147 lines - tooling/
build_studies.py , Python, 144 lines - tooling/
bundle_setup.py , Python, 55 lines - tooling/
pmc_tables.py , Python, 65 lines - tooling/
sync_mcp_data.py , Python, 18 lines - LICENCE.md, License, 31 lines
- LICENSE, License, 21 lines
- README.md, Text, 88 lines
scottleimroth/eeg-ecg-music-review-agent
5c1f99f8376ac07c20ac253b83d1c3c7d5d82e0e, 18 September 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
12 files
- mcp/
psyp70385-mcp/ , Python, 348 lines, 2 matchesserver.py - mcp/
psyp70385-mcp/ , Python, 314 linestests/ test_tools.py - tooling/
adjudicate.py , Python, 82 lines - tooling/
apply_review.py , Python, 347 lines - tooling/
build_metadata.py , Python, 147 lines, 2 matches - tooling/
build_studies.py , Python, 144 lines - tooling/
bundle_setup.py , Python, 55 lines - tooling/
pmc_tables.py , Python, 65 lines - tooling/
sync_mcp_data.py , Python, 18 lines - LICENCE.md, License, 31 lines
- LICENSE, License, 21 lines
- README.md, Text, 88 lines
Zenodo 22827659
Availability: 1 check, the latest on 26 September 2026: the link answers (HTTP 200)
- 26 September 2026: the link answers (HTTP 200)
12 files
- mcp/
psyp70385-mcp/ , Python, 348 linesserver.py - mcp/
psyp70385-mcp/ , Python, 314 linestests/ test_tools.py - tooling/
adjudicate.py , Python, 82 lines - tooling/
apply_review.py , Python, 347 lines - tooling/
build_metadata.py , Python, 147 lines - tooling/
build_studies.py , Python, 144 lines - tooling/
bundle_setup.py , Python, 55 lines - tooling/
pmc_tables.py , Python, 65 lines - tooling/
sync_mcp_data.py , Python, 18 lines - LICENCE.md, License, 31 lines
- LICENSE, License, 21 lines
- README.md, Text, 88 lines
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 27 scripts, each with its path and the digest of its content;
- 4 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
No dataset and no data link were found in the paper.
Data Availability Statement
This scoping review did not generate or analyze primary experimental data; no original data or analysis code is associated with the manuscript. The review protocol was preregistered on the Open Science Framework at https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 3, 28 September 2026
- Publisher: n/a → Wiley
- Funding: added Australian Government; University of Wollongong
Version 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 4 authors, 6 keywords, 8 MeSH terms, 160 references.
Cite
This paper
Leimroth, S. R., Barry, R. J., De Blasio, F. M., & Byron, T. P. (2026). Exploring EEG and ECG in Music Listening: A Scoping Review. Psychophysiology, 63(9), e70385. https://
BibTeX
@article{leimroth2026exp
author = {Leimroth, Scott R and Barry, Robert J and De Blasio, Frances M and Byron, Timothy P},
title = {{Exploring EEG and ECG in Music Listening: A Scoping Review}},
journal = {Psychophysiology},
year = {2026},
month = sep,
volume = {63},
number = {9},
pages = {e70385},
publisher = {Wiley},
issn = {0048-5772},
doi = {10.1111/
url = {https://
pmid = {42693627},
pmcid = {PMC13542476}
}
RIS
TY - JOUR
AU - Leimroth, Scott R
AU - Barry, Robert J
AU - De Blasio, Frances M
AU - Byron, Timothy P
TI - Exploring EEG and ECG in Music Listening: A Scoping Review
T2 - Psychophysiology
J2 - Psychophysiology
PY - 2026
DA - 2026/
VL - 63
IS - 9
SP - e70385
SN - 0048-5772
PB - Wiley
DO - 10.1111/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1111/
"type": "article-journal",
"title": "Exploring EEG and ECG in Music Listening: A Scoping Review",
"container-title": "Psychophysiology",
"author": [
{
"family": "Leimroth",
"given": "Scott R"
},
{
"family": "Barry",
"given": "Robert J"
},
{
"family": "De Blasio",
"given": "Frances M"
},
{
"family": "Byron",
"given": "Timothy P"
}
],
"container-title-short":
"volume": "63",
"issue": "9",
"page": "e70385",
"DOI": "10.1111/
"PMID": "42693627",
"PMCID": "PMC13542476",
"ISSN": "0048-5772",
"publisher": "Wiley",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
9,
1
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1111/psyp.70297 [code]
- Heartbeat-Evoked Responses in M/
EEG: A Systematic Review of Methods With Suggestions for Analysis and Reporting. Journal: PsychophysiologyIn common: EEG, 8 references - [2] doi:10.1038/s41598-026-52930-9
- Cardiac systole is associated with enhanced go responding in an orthogonalized go/
nogo task. Journal: Scientific reportsIn common: cognitive, 6 references - [3] doi:10.1162/imag.a.1353 [code]
- Model-based cardiac field artefact correction for OP-MEG.Journal: Imaging neuroscience (Cambridge, Mass.)In common: EEG, 6 references
- [4] doi:10.1093/nc/niag009 [code]
- Autonomic indicators of self-transcendence: insights from the numadelic VR paradigm.Journal: Neuroscience of consciousnessIn common: cognitive, 4 references
- [5] doi:10.1162/imag.a.1325 [code]
- Decoding everyday levels of musical training from subcortical white-matter architecture.Journal: Imaging neuroscience (Cambridge, Mass.)In common: 4 references
- [6] doi:10.3389/fnsys.2026.1880737
- Autonomic-salience stability as a candidate Gate for awake low-dose ketamine: a systems neuroscience framework with a clinical anchor.Journal: Frontiers in systems neuroscienceIn common: other, 3 references
- [7] doi:10.1002/mdc3.70734
- A Randomized Controlled Trial of Dual Upper-Extremity Training [DUET]: Combining Neurologic Music Therapy® with Noninvasive Brain Stimulation for Upper-Limb Performance in Corticobasal Syndrome.Journal: Movement disorders clinical practiceIn common: other, 3 references
- [8] doi:10.1162/imag.a.1319 [code]
- When the inner clock fades: Interoceptive decline and consolidation of phase resetting in cortical rhythms by cardiac events underlie healthy lifespan aging.Journal: Imaging neuroscience (Cambridge, Mass.)In common: cognitive, 3 references
- [9] doi:10.1111/psyp.70301
- Oscillatory Markers of Interoceptive Attention: Beta Suppression as a Neural Signature of Heartbeat Processing.Journal: PsychophysiologyIn common: cognitive, 3 references
- [10] doi:10.1016/j.dcn.2026.101741
- Pediatric resting EEG collection, preprocessing, and analysis: A systematic review.Journal: Developmental cognitive neuroscienceIn common: EEG, 3 references
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 3 repositories of the authors' code, each at its verified commit and with its license, 27 scripts, and 4 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:a61161ee4572a5b2…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
