OSCR

Song Familiarity Relies on Evidence Accumulation.

Code ↔ Paper

7 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 7 matches · 1 of them tie a paragraph to a whole file, not to given lines: a weak match, whose lines are not tinted
  1. [1] § Results › EEG Results › Parametric Regression ↔ analyze_songfamiliarity_06_statsandfigures.m, lines 319–385 · score 0.93 · 308–600 ms, 468–488 ms, 116 ms, 308 ms, 468 ms, 348 ms
  2. [2] § Method › Data Analysis › EEG Preprocessing ↔ private/dm_prep.m, the whole file · a weak match · score 0.88 · bandpass filter, Ocular components, EEGLAB, downsampling, iclabel, notch
  3. [3] § Method › Data Analysis › Event‐Related Analysis ↔ analyze_songfamiliarity_05_erps.m, lines 126–211 · score 0.84 · uf_designmat, uf_timeexpandDesignmat, rERPs, design matrix, rows, artifacts
  4. [4] § Method › Participants ↔ analyze_songfamiliarity_01_bidsify.m, lines 28–122 · score 0.76 · curly hair, MacEwan, age, ambidextrous, female, power
  5. [5] § Method › Data Analysis › Event‐Related Analysis ↔ analyze_songfamiliarity_05_erps.m, lines 126–211 · score 0.72 · cross validation, rERPs, pinv, lambda, matrix, Error
  6. [6] § Method › Statistics ↔ private/doPermTest2.m, lines 1–84 · score 0.67 · cluster mass, temporal cluster, permuted, waveforms, sum, permutation
  7. [7] § Method › Data Analysis › EEG Preprocessing ↔ analyze_songfamiliarity_01_eegprep.m, lines 1–79 · score 0.60 · 0.1–20 Hz, EEGLAB, ICA, filter, SD, Preprocessing

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

MATLAB · 211 lines · 7.2 KB · MIT · 2 matches

  1. % Compute the the regression ERPs
  2. % Other m-files required:
  3. % EEGLAB toolbox: https://github.com/sccn/eeglab
  4. % Unfold toolbox: https://github.com/unfoldtoolbox/unfold
  5. % Author: Cameron Hassall, Department of Psychology, MacEwan University
  6. % email address: [email hidden]
  7. % Website: http://www.cameronhassall.com
  8. init_unfold();
  9. % Folders
  10. if ispc
  11. projectFolder = 'C:\Users\chass\OneDrive\Projects\2024_EEG_SongFamiliarity_Hassall\';
  12. dataFolder = 'F:\2024_EEG_SongFamiliarity_Hassall\bids';
  13. else
  14. projectFolder = '/Users/HassallC/Library/CloudStorage/OneDrive-Personal/Projects/2024_EEG_SongFamiliarity_Hassall';
  15. dataFolder = '/Volumes/T7 (Data)/2024_EEG_SongFamiliarity_Hassall/bids';
  16. end
  17. resultsFolder = fullfile(projectFolder,'analysis','results');
  18. % Set this flag to determine the analysis
  19. % whichAnalysis flag
  20. % 1: Note events for unfamiliar and familiar unrecognized. Response events.
  21. % 2: Note position as a parametric regressor
  22. % 3: Same as 2, but exclude songs that were recognized
  23. % 4: Same as 2, but split by ID'd and NonID'd
  24. % sufficient trial numbers)
  25. whichAnalysis = 2; % Analysis flag
  26. % Set this flag to determine whether we do cross validation (we do this
  27. % once to determine hyperparameters, which we use for all analyses)
  28. doCV = 0; % Cross-validation flag
  29. % Set this flag to determine whether we do regularization (should be set to
  30. % 1)
  31. doReg = 1; % Regularization flag
  32. % Excluded participants
  33. % sub-08: No EEG recorded
  34. % sub-18: No familiar songs
  35. % Included participants
  36. subjStrs = {'sub-01','sub-02','sub-03','sub-04','sub-05','sub-06' ,'sub-07','sub-09','sub-10','sub-11','sub-12','sub-13','sub-14','sub-15','sub-16','sub-17','sub-19','sub-20','sub-21','sub-22','sub-23','sub-24','sub-25','sub-26','sub-27','sub-28','sub-29','sub-30'};
  37. % Remove additional participants if they are unable to be analyzed
  38. if whichAnalysis == 3
  39. % sub-21: no "familiar unrecognized" notes
  40. % sub-23: no "familiar unrecognized" notes
  41. toRemove = {'sub-21','sub-23'};
  42. toRemoveI = find(contains(subjStrs,toRemove));
  43. subjStrs(toRemoveI) = [];
  44. end
  45. if whichAnalysis == 4
  46. % sub-20: no "recognized" notes
  47. % sub-21: no "familiar unrecognized" notes
  48. % sub-23: no "familiar unrecognized" notes
  49. toRemove = {'sub-20','sub-21','sub-23'};
  50. toRemoveI = find(contains(subjStrs,toRemove));
  51. subjStrs(toRemoveI) = [];
  52. end
  53. % Deal with cross-validation and regularization flags
  54. if doCV
  55. regPar = [];
  56. elseif doReg
  57. load(fullfile(resultsFolder,['regPar_1.mat']),'regPar');
  58. else
  59. regPar = zeros(size(subjStrs));
  60. end
  61. % Result variables
  62. allBeta = [];
  63. allERP = [];
  64. numEventTypes = [];
  65. allBadChannels = {};
  66. allArtifactProp = [];
  67. for i = 1:length(subjStrs)
  68. % Load EEG
  69. thisPrepFolder = fullfile(dataFolder,subjStrs{i},'derivatives','eegprep');
  70. thisPrepFile = [subjStrs{i} '_task-songfamiliarity_eegpreprelabel.mat'];
  71. load(fullfile(thisPrepFolder, thisPrepFile),'EEG');
  72. if doCV
  73. EEG = pop_resample(EEG,100); % For speed
  74. end
  75. % sub-01 recording started a bit late, so remove these events
  76. if strcmp(subjStrs{i},'sub-01')
  77. EEG.event(1:6) = [];
  78. end
  79. % Relabel notes
  80. % 'f' = familiar but not recognized
  81. % 'r' = familiar and recognized
  82. % 'u' = unfamiliar
  83. % '2' = response
  84. for j = 1:length(EEG.event)
  85. if contains(EEG.event(j).type,'u')
  86. EEG.event(j).type = 'u';
  87. elseif contains(EEG.event(j).type,'f')
  88. EEG.event(j).type = 'f';
  89. elseif contains(EEG.event(j).type,'r') && whichAnalysis ~= 3 && whichAnalysis ~= 4
  90. EEG.event(j).type = 'f'; % Count these as familiar
  91. elseif contains(EEG.event(j).type,'r') && whichAnalysis == 4
  92. EEG.event(j).type = 'r'; % Keep these as a seprate condition ('recognized familiar');
  93. elseif strcmp(EEG.event(j).type,'2') && whichAnalysis == 4 % Split responses by condition
  94. if contains(EEG.event(j-1).type,'f')
  95. EEG.event(j).type = '2f';
  96. elseif contains(EEG.event(j-1).type,'r')
  97. EEG.event(j).type = '2r';
  98. end
  99. end
  100. end
  101. % Remove "type" from chanlocs so we don't confuse uf_continuousArtifactDetect()
  102. for j = 1:31
  103. EEG.chanlocs(j).type = [];
  104. end
  105. % Construct design matrix
  106. switch whichAnalysis
  107. case 1
  108. EEG = uf_designmat(EEG,'eventtypes',{'u','f','2'},'formula',{'y ~ 1','y ~ 1','y ~ 1'});
  109. case {2,3}
  110. EEG = uf_designmat(EEG,'eventtypes',{'f','2'},'formula',{'y ~ 1+pos','y ~ 1'});
  111. case {4}
  112. EEG = uf_designmat(EEG,'eventtypes',{'f','r','2f','2r'},'formula',{'y ~ 1+pos','y ~ 1+pos','y ~ 1','y ~ 1'});
  113. end
  114. % Define time window
  115. ufTime = [-1.5 1.5];
  116. % Make design matrix
  117. EEG = uf_timeexpandDesignmat(EEG,'timelimits',ufTime);
  118. % Flag zero rows
  119. nonZero = any(EEG.unfold.Xdc,2);
  120. isZero = ~nonZero;
  121. % Artifact detection
  122. [winrej, chanrej, rejProp] = uf_continuousArtifactDetect(EEG,'amplitudeThreshold',75,'windowsize',1000,'stepsize',100,'combineSegments',[]);
  123. isArtifact = zeros(size(isZero));
  124. isArtifactByChannel = zeros(size(isZero,1),EEG.nbchan);
  125. toRemove = [];
  126. for j = 1:size(winrej,1)
  127. toRemove = [toRemove winrej(j,1):winrej(j,2)];
  128. isArtifactByChannel(winrej(j,1):winrej(j,2),chanrej(j,:)==1) = 1;
  129. end
  130. isArtifact(toRemove) = 1;
  131. % Reject by channel
  132. artifactPropByChannel = mean(isArtifactByChannel(~isZero,:),1);
  133. isBad = artifactPropByChannel > 0.10;
  134. badChannels = {EEG.chanlocs(isBad).labels};
  135. allBadChannels{i} = badChannels;
  136. % Number of artifact as a proportion of samples of interest
  137. allArtifactProp(i) = mean(isArtifact & ~isZero);
  138. % Remove artifacts and non-zero rows
  139. EEG.unfold.Xdc(isArtifact | isZero,:) = [];
  140. EEG.data(:,isArtifact | isZero) = [];
  141. EEG.pnts = size(EEG.data,2);
  142. % Determine where the breaks between rERPs are (Unfold smooshes
  143. % everything together)
  144. numPoints = (ufTime(2)-ufTime(1))*EEG.srate;
  145. switch whichAnalysis
  146. case 1
  147. breakpoints = int32([numPoints 2*numPoints]);
  148. case {2,3}
  149. breakpoints = int32([numPoints 2*numPoints]);
  150. case {4}
  151. breakpoints = int32([numPoints 2*numPoints 3*numPoints 4*numPoints 5*numPoints]);
  152. end
  153. % Do cross-validation
  154. if doCV
  155. regtype = 'onediff';
  156. lambdas = [0 1E1 1E2 1E3 1E4 1E5 1E6 1E7 1E8];
  157. k = 10;
  158. [allErrors,bestBeta] = doRegCV(EEG.data,EEG.unfold.Xdc,regtype,{1:size(EEG.unfold.Xdc,2)},{breakpoints},lambdas,k);
  159. figure();
  160. plot(allErrors);
  161. drawnow();
  162. [~,j] = min(allErrors);
  163. disp(lambdas(j));
  164. regPar(i) = lambdas(j);
  165. end
  166. % Solve GLM
  167. regtype = 'onediff';
  168. lambda = regPar(i);
  169. thisPDM = pinv_reg(EEG.unfold.Xdc,lambda,regtype,breakpoints);
  170. tempBeta = thisPDM * EEG.data';
  171. allBeta(i,:,:) = tempBeta';
  172. end
  173. if doCV
  174. save(fullfile(resultsFolder,['regPar_' num2str(whichAnalysis) '.mat']),'regPar');
  175. end
  176. save(fullfile(resultsFolder,['results_' num2str(whichAnalysis) '_' num2str(doReg) '.mat']));

analyze_songfamiliarity_05_erps.m at commit e98e9c8, under MIT · at the source

Overview

  1. Department of Psychology MacEwan University Edmonton Alberta Canada
Institutions: MacEwan University (Canada)
Journal: Psychophysiology, volume 63, issue 8, article e70370
Dates: received 4 September 2025; accepted 21 July 2026; published online 31 July 2026; in print August 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1111/psyp.70370 · PMID 42538772 · PMCID PMC13428188 · OpenAlex W4413842841
Open access: hybrid, a free copy (OpenAlex)
Status: code verified
Categories: EEG (modality), human (organism), cognitive (subfield)
Methods: Spectral & time-frequency, Preprocessing, Connectivity, Statistics, Smoothing, state filtering, decompositions, Machine learning, Evoked potentials
Keywords: central‐parietal positivity, EEG, ERP, evidence accumulation, familiarity, memory
MeSH: Auditory Perception*, Decision Making*, Evoked Potentials*, Music*, Recognition, Psychology*, Adult, Electroencephalography, Female, Humans, Male, Young Adult (* major topic)
Topic: Natural Language Processing Techniques (Artificial Intelligence, Computer Science), according to OpenAlex
Citations: not cited yet (Europe PMC); 70 references in the paper

Abstract

Familiarity judgments are thought to involve evidence accumulation, a decision‐making process in which information is gathered over time until a threshold is reached. Previous work has identified a scalp‐recorded signature of evidence accumulation called the central‐parietal positivity (CPP). We built on this previous work and recorded electroencephalography while participants listened to several melodies, instructing participants to respond as soon as the song felt familiar. A prominent CPP was noted, time‐locked to decisions. We then used linear regression to unmix overlapping neural responses and observed a stimulus‐locked indicator of evidence accumulation that increased in amplitude just prior to a familiarity decision. This result suggests that song familiarity relies on evidence accumulation, with individual notes in a familiar song acting as “evidence”.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repository

Its files are read in the Code ↔ Paper reader above, with 7 matches between paragraphs and lines of code.

chassall/songfamiliarity

License: MIT
State: the link answers, verified on 26 September 2026
Evidence: files inventoried
Commit: e98e9c8e400430944ef925c00eed1468118f00ce, 25 August 2025
Languages: MATLAB (13)
Size: 21 files, 13 scripts
Software Heritage: not archived
Found in: “Data Availability Statement”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: EEGLAB (6 files), Statistics and Machine Learning Toolbox (2 files), ICLabel (1 file)
Availability: 1 check, the latest on 26 September 2026: the link answers
  • 26 September 2026: the link answers
15 files

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:

  • 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 13 scripts, each with its path and the digest of its content;
  • 7 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

Datasets cited

Data Availability Statement

EEG dataset is available at https://doi.org/10.18112/openneuro.ds005876.v1.0.1. Analysis scripts are available at https://github.com/chassall/songfamiliarity.

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

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 3 authors, 6 keywords, 11 MeSH terms, 1 funder, 69 references.

Cite

This paper

Girard, J. R., Bishop, A., & Hassall, C. D. (2026). Song Familiarity Relies on Evidence Accumulation. Psychophysiology, 63(8), e70370. https://doi.org/10.1111/psyp.70370

BibTeX

@article{girard2026song,
author = {Girard, Jared R. and Bishop, Aaron and Hassall, Cameron D.},
title = {{Song Familiarity Relies on Evidence Accumulation}},
journal = {Psychophysiology},
year = {2026},
month = aug,
volume = {63},
number = {8},
pages = {e70370},
publisher = {Wiley},
issn = {0048-5772},
doi = {10.1111/psyp.70370},
url = {https://doi.org/10.1111/psyp.70370},
pmid = {42538772},
pmcid = {PMC13428188}
}

RIS

TY - JOUR
AU - Girard, Jared R.
AU - Bishop, Aaron
AU - Hassall, Cameron D.
TI - Song Familiarity Relies on Evidence Accumulation
T2 - Psychophysiology
J2 - Psychophysiology
PY - 2026
DA - 2026/08/01
VL - 63
IS - 8
SP - e70370
SN - 0048-5772
PB - Wiley
DO - 10.1111/psyp.70370
UR - https://doi.org/10.1111/psyp.70370
LA - en
ER -

CSL-JSON

{
"id": "10.1111/psyp.70370",
"type": "article-journal",
"title": "Song Familiarity Relies on Evidence Accumulation",
"container-title": "Psychophysiology",
"author": [
{
"family": "Girard",
"given": "Jared R."
},
{
"family": "Bishop",
"given": "Aaron"
},
{
"family": "Hassall",
"given": "Cameron D."
}
],
"container-title-short": "Psychophysiology",
"volume": "63",
"issue": "8",
"page": "e70370",
"DOI": "10.1111/psyp.70370",
"PMID": "42538772",
"PMCID": "PMC13428188",
"ISSN": "0048-5772",
"publisher": "Wiley",
"URL": "https://doi.org/10.1111/psyp.70370",
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
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.1038/s41598-026-47785-z [code]
Modulations of the P3b effect as a function of bilingual language experience.
Journal: Scientific reports
In common: ICLabel, EEGLAB, Statistics and Machine Learning Toolbox, EEG, cognitive, 4 references
[2] doi:10.1523/eneuro.0316-25.2026 [code]
Neural Mechanisms of Self-Generated Action Sequences.
Journal: eNeuro
In common: EEGLAB, Statistics and Machine Learning Toolbox, EEG, cognitive, 4 references
[3] doi:10.7554/elife.107088 [code]
Development of auditory and spontaneous movement responses to music over the first postnatal year.
Journal: eLife
In common: ICLabel, EEGLAB, Statistics and Machine Learning Toolbox, EEG, 3 references
[4] doi:10.1371/journal.pone.0353990 [code]
Positive mood enhances accessibility of unrelated concepts in the first language but not in the foreign language.
Journal: PloS one
In common: ICLabel, EEGLAB, EEG, cognitive, 3 references
[5] doi:10.1162/nol.a.255 [code]
Lexical Representations of the Native and Second Languages During L2 Word Reading in Chinese-English Bilinguals.
Journal: Neurobiology of language (Cambridge, Mass.)
In common: ICLabel, EEGLAB, Statistics and Machine Learning Toolbox, EEG, cognitive, 2 references
[6] doi:10.1523/eneuro.0069-26.2026 [code]
Electrophysiological Indices of Hierarchical Speech Processing Differentially Reflect the Comprehension of Speech in Noise.
Journal: eNeuro
In common: ICLabel, EEGLAB, Statistics and Machine Learning Toolbox, EEG, cognitive, 2 references
[7] doi:10.1016/j.neuroimage.2026.122115 [code]
Midfrontal theta power relates to response speeding following frustrative nonreward.
Journal: NeuroImage
In common: ICLabel, EEGLAB, Statistics and Machine Learning Toolbox, EEG, cognitive, 2 references
[8] doi:10.1016/j.isci.2025.113806 [code]
Beta-band frequency shifts signal decisions in human prefrontal cortex
Journal: n/a
In common: Statistics and Machine Learning Toolbox, 6 references
[9] doi:10.1093/braincomms/fcag351 [code]
Time-resolved aperiodic dynamics in event segmentation in attention-deficit/hyperactivity disorder.
Journal: Brain communications
In common: ICLabel, EEGLAB, Statistics and Machine Learning Toolbox, EEG, cognitive, 2 references
[10] doi:10.1038/s41598-026-56070-y [code]
SSDLabeler: realistic semi-synthetic data generation for multi-label artifact classification in EEG.
Journal: Scientific reports
In common: ICLabel, EEGLAB, Statistics and Machine Learning Toolbox, EEG, 2 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.

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.