<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article
  PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD with MathML3 v1.2 20190208//EN" "JATS-journalpublishing1-mathml3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" article-type="research-article" dtd-version="1.2" xml:lang="de">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">JBDGM</journal-id>
<journal-id journal-id-type="nlm-ta">Jahrb Musikpsychol</journal-id>
<journal-title-group>
<journal-title>Jahrbuch Musikpsychologie</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Jahrb. Musikpsychol.</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2569-5665</issn>
<publisher><publisher-name>PsychOpen</publisher-name></publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">jbdgm.247</article-id>
<article-id pub-id-type="doi">10.5964/jbdgm.247</article-id>
<article-categories>
<subj-group subj-group-type="heading"><subject>Spots</subject></subj-group>

<subj-group subj-group-type="badge">
<subject>Code</subject>
</subj-group>

</article-categories>
<title-group>
<article-title>Ein JavaScript zur Übergabe von Session-IDs aus DOTS an emoTouch</article-title>
<trans-title-group xml:lang="en">
<trans-title>A JavaScript Solution for Passing Session IDs from DOTS to emoTouch</trans-title>
</trans-title-group>
<alt-title alt-title-type="right-running">DOTS–emoTouch JavaScript für Session-IDs</alt-title>
<alt-title specific-use="APA-reference-style" xml:lang="de">Ein Javascript zur Übergabe von Session-IDs aus DOTS an emoTouch</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid" authenticated="false">https://orcid.org/0009-0003-9124-4413</contrib-id><name name-style="western"><surname>Hemming</surname><given-names>Jan</given-names></name><xref ref-type="corresp" rid="cor1">*</xref><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib>
<contrib contrib-type="author"><contrib-id contrib-id-type="orcid" authenticated="false">https://orcid.org/0000-0002-5229-0500</contrib-id><name name-style="western"><surname>Louven</surname><given-names>Christoph</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib>
<contrib contrib-type="author"><contrib-id contrib-id-type="orcid" authenticated="false">https://orcid.org/0009-0008-9259-5238</contrib-id><name name-style="western"><surname>Richards</surname><given-names>Wesley</given-names></name><xref ref-type="aff" rid="aff3"><sup>3</sup></xref></contrib>
<contrib contrib-type="author"><contrib-id contrib-id-type="orcid" authenticated="false">https://orcid.org/0009-0007-3182-2815</contrib-id><name name-style="western"><surname>Steiner</surname><given-names>Helena</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib>


	<contrib contrib-type="reviewer"><name name-style="western"><surname>Hake</surname><given-names>Robin</given-names></name></contrib>


<aff id="aff1"><label>1</label><institution content-type="dept">Institut für Musik</institution>, <institution>Universität Kassel</institution>, <addr-line><city>Kassel</city></addr-line>, <country country="">Deutschland</country></aff>
<aff id="aff2"><label>2</label><institution content-type="dept">Institut für Musikwissenschaft und Musikpädagogik</institution>, <institution>Universität Osnabrück</institution>, <addr-line><city>Osnabrück</city></addr-line>, <country country="">Deutschland</country></aff>
<aff id="aff3"><label>3</label><institution>IT-Servicezentrum der Universität Kassel</institution>, <addr-line><city>Kassel</city></addr-line>, <country country="">Deutschland</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>*</label>Universität Kassel, FB 01, Institut für Musik, Mönchebergstr. 1, 34109 Kassel, Deutschland. <email xlink:href="jan.hemming@uni-kassel.de">jan.hemming@uni-kassel.de</email></corresp>
</author-notes>
<pub-date date-type="pub" publication-format="electronic"><day>16</day><month>06</month><year>2026</year></pub-date>
<pub-date pub-type="collection" publication-format="electronic"><year>2026</year></pub-date>
<volume>34</volume>
<elocation-id>e247</elocation-id>
<history>
<date date-type="received">
<day>07</day>
<month>02</month>
<year>2026</year>
</date>
<date date-type="accepted">
<day>04</day>
<month>05</month>
<year>2026</year>
</date>
</history>
<permissions><copyright-year>2026</copyright-year><copyright-holder>Hemming, Louven, Richards &amp; Steiner</copyright-holder><license license-type="open-access" specific-use="CC BY 4.0" xlink:href="https://creativecommons.org/licenses/by/4.0/"><ali:license_ref>https://creativecommons.org/licenses/by/4.0/</ali:license_ref><license-p>This is an open access article distributed under the terms of the Creative Commons Attribution 4.0 International License, CC BY 4.0, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p></license></permissions>
<abstract>
<p>Werden mehrere Online-Erhebungstools in einem Forschungsvorhaben kombiniert, kann die Zuordnung der Daten zu den einzelnen Befragten ein Problem darstellen. Erforderlich ist also eine Verknüpfung mehrerer Datenerhebungsumgebungen. In diesem Beitrag wird ein JavaScript vorgestellt und ausführlich kommentiert, welches die Weitergabe von Session-IDs zwischen dem DGM Online Testing Server (DOTS) und der Erhebungsplattform emoTouch ermöglicht. Grundlage ist das URL-Parsing, also das Auslesen der Session-ID aus dem Link, über den die nachfolgende Plattform aufgerufen wird. Das Script wird hier vorgestellt, damit es auch Personen ohne viel Programmiererfahrung nutzen und umgestalten können, um eine Kombination aus anderen Erhebungstools technisch zu realisieren.</p>
</abstract><trans-abstract xml:lang="en">
	<p>Combining several online survey tools in a research project can lead to problems assigning the data to the individual respondents. Therefore, the various data collection platforms must be linked with each other. To facilitate the transfer of session IDs between the DGM Online Testing Server (DOTS) and other potential survey tools, this article presents a commented JavaScript solution that enables seamless integration between DOTS and emoTouch. The basis is URL parsing, i.e., extracting the session ID from the link used to access the subsequent platform. Even researchers without extensive programming experience can adapt and implement the script to connect other data collection platforms.</p></trans-abstract>
<kwd-group kwd-group-type="author"><kwd>Online-Erhebung</kwd><kwd>DOTS</kwd><kwd>emoTouch</kwd><kwd>JavaScript</kwd><kwd>Session-ID</kwd></kwd-group>
<kwd-group kwd-group-type="translator" xml:lang="en"><kwd>online survey</kwd><kwd>DOTS</kwd><kwd>emoTouch</kwd><kwd>JavaScript</kwd><kwd>Session-ID</kwd></kwd-group>
</article-meta>
</front>
<body>
<sec sec-type="other1"><title>Hintergrund</title>
	<p>Seit einiger Zeit betreibt die Deutsche Gesellschaft für Musikpsychologie den DGM Online Testing Server (DOTS; <xref ref-type="bibr" rid="r1">Deutsche Gesellschaft für Musikpsychologie, o. D.</xref>). Hier werden eine Reihe musikpsychologischer Testverfahren sowie assoziierte Erhebungen etwa zu Persönlichkeitsmerkmalen oder zur Soziodemographie bereitgehalten. Im Forschungsalltag bedeutet dies eine erhebliche Arbeitserleichterung, da entsprechende Inventare und Fragebögen nicht jedes Mal wieder neu auf typischen Erhebungsplattformen wie SoSci Survey, Qualtrics, Lime-Survey oder gar auf Papier eingerichtet werden müssen. Die DOTS-Administrator:innen bieten an, Testbatterien modular zusammenzustellen. In der Regel ist dieser Service für DGM-Mitglieder kostenlos. Der DOTS-Server basiert auf dem Open-Source-Framework psychTestR (<xref ref-type="bibr" rid="r2">Harrison, 2020</xref>) und ermöglicht es selbstverständlich, die in den verschiedenen Modulen erhobenen Daten pro befragte Person zusammenzuführen. Darüber hinaus wird eine individuelle Session-ID erzeugt, die an eine aufrufende URL angehängt werden und somit an externe Erhebungsplattformen weitergegeben werden kann.</p>
	<p>In der Untersuchung "The pleasure of recognition" (welche separat zur Publikation eingereicht werden soll) sollten mit DOTS zunächst allgemeine Angaben zur Person und deren musikalischen Vorerfahrung erhoben werden und die Studienteilnehmer:innen anschließend zur Continuous Response-Plattform emoTouch (<xref ref-type="bibr" rid="r3">Louven et al., 2026</xref>) weitergeleitet werden. Dieses Tool bietet die Möglichkeit, die Session-IDs von der aufrufenden Plattform zu übernehmen und in den eigenen Datensatz zu integrieren. Dies kann beispielsweise durch ein einfaches, in eine HTML-Seite integriertes JavaScript realisiert werden. Eine Besonderheit der vorliegenden Untersuchung bestand zudem darin, dass die Studienteilnehmer:innen die Möglichkeit bekommen sollten, bei entsprechendem Interesse mehrere emoTouch-Durchläufe wahrzunehmen (diese bezogen sich auf das Musikerkennen in verschiedenen Genres). In der Praxis gestaltete sich die Realisierung des JavaScripts als durchaus schwierige Aufgabe, die eine intensive Zusammenarbeit aller genannten Autor:innen erforderte. Wir möchten dieses Skript mit der Community teilen, um das Prinzip verständlich zu machen und ähnliche Forschungsdesigns in der Zukunft zu erleichtern.</p></sec>
<sec sec-type="other2"><title>Technisches Forschungsdesign</title>

<?figure f1?>
	
	<p><?pagebreak-before?>Das technische Forschungsdesign wird anhand des Flowcharts in <xref ref-type="fig" rid="f1">Abbildung 1</xref> beschrieben. Alle dazugehörigen Dateien sind auf dem GitLab-Server der Universität Kassel hinterlegt (siehe den Abschnitt <italic>Ergänzende Materialien</italic>). Die Seite <italic>musikerkennen1.html</italic> enthält einen Begrüßungstext und Hintergrundinformationen zum Forschungsvorhaben. Nach dem Start der Untersuchung werden die Studienteilnehmer:innen zum DOTS-Server weitergeleitet. Hier wurde eine individuelle Kombination aus Erhebungen zur (1) Basisdemographie und dem sozioökonomischen Status und (2) zur musikalischen Vorerfahrung (music engagement test, MET; vgl. <xref ref-type="bibr" rid="r4">Greenberg &amp; Rentfrow, 2015</xref>) zusammengestellt. Während der Bearbeitung auf DOTS sieht die URL z. B. wie folgt aus:</p>
<disp-quote>
<p><ext-link ext-link-type="uri" xlink:href="https://testing.musikpsychologie.de/RPL_battery/?language=de_f&amp;p_id=7cb8d53188ec05ad9f9052d1bc65647506595c6638b336548d3f36c5b54ec00f">https://testing.musikpsychologie.de/RPL_battery/?language=de_f&amp;p_id=7cb8d53188ec05ad9f9052d1bc65647506595c6638b336548d3f36c5b54ec00f</ext-link></p></disp-quote>
<p>Anschließend wird von DOTS zur Seite <italic>musikerkennen2.html</italic> weitergeleitet. Die aufrufende URL sieht dann beispielsweise so aus:</p>
<disp-quote>
<p><ext-link ext-link-type="uri" xlink:href="https://www.uni-kassel.de/fb1/musik/emoTouch/musikerkennen2.html?p_id=7cb8d53188ec05ad9f9052d1bc65647506595c6638b336548d3f36c5b54ec00f">https://www.uni-kassel.de/fb1/musik/emoTouch/musikerkennen2.html?p_id=7cb8d53188ec05ad9f9052d1bc65647506595c6638b336548d3f36c5b54ec00f</ext-link></p></disp-quote>
<p>Darin wird jetzt das Argument p_id (also die Session-ID) gesetzt. Es handelt sich um einen langen alphanumerischen String (in diesem Fall auf Hexadezimalzahlen beschränkt). In <italic>musikerkennen2.html</italic> muss folglich das JavaScript zum Einlesen und zur Handhabung dieser Session-ID enthalten sein.</p>
<p>Sichtbar für die Studienteilnehmer:innen ist auf dieser Seite nur eine Auswahl an 11 Musikgenres, die mit Hyperlinks zu jeweils eigenen emoTouch-Erhebungen verlinkt sind. An diese URLs wird durch das JavaScript die zuvor aus DOTS übernommene Session-ID angehängt, um sie an emoTouch weiterzugeben. Bei der dazugehörigen URL ist zu beachten, dass der Variablenname von p_id zu s1 geändert werden muss (nur s1-s6 sind in emoTouch frei definierbare Variablen). Der fertige Link sieht beispielsweise so aus:</p>
<disp-quote>
<p><ext-link ext-link-type="uri" xlink:href="https://pi.emoTouch.de/dpJCDJ?s1=7cb8d53188ec05ad9f9052d1bc65647506595c6638b336548d3f36c5b54ec00f">https://pi.emoTouch.de/dpJCDJ?s1=7cb8d53188ec05ad9f9052d1bc65647506595c6638b336548d3f36c5b54ec00f</ext-link></p></disp-quote>
<p>Das Handling der Session-IDs wird von emoTouch automatisch realisiert. Nach Durchlaufen der Erhebung zu einem einzelnen Genre wird von emoTouch zu <italic>musikerkennen2.html</italic> zurückgeleitet und an diese URL die Session-ID als nunmehr s1 angehängt bzw. zurückgegeben. Nun sieht die URL wie folgt aus:</p>
<disp-quote><?pagebreak-before?>
<p><ext-link ext-link-type="uri" xlink:href="https://www.uni-kassel.de/fb1/musik/emoTouch/musikerkennen2.html?s1=7cb8d53188ec05ad9f9052d1bc65647506595c6638b336548d3f36c5b54ec00f">https://www.uni-kassel.de/fb1/musik/emoTouch/musikerkennen2.html?s1=7cb8d53188ec05ad9f9052d1bc65647506595c6638b336548d3f36c5b54ec00f</ext-link></p></disp-quote>
<p>Das JavaScript in <italic>musikerkennen2.html</italic> muss durch den Variablennamen s1 nunmehr erkennen, dass es nicht von DOTS (hier lautete der Variablenname p_id), sondern von emoTouch aufgerufen wird, um die Session-ID weiter übernehmen zu können. Die Studienteilnehmer:innen können ihrerseits beliebig viele Schleifen durchlaufen. Alternativ wird in <italic>musikerkennen2.html</italic> die Möglichkeit angeboten, die Studie durch Schließen des Browserfensters zu beenden.</p>

	<fig id="f1" position="anchor" fig-type="figure" orientation="portrait"><label>Abbildung 1</label><caption>
			<title>Flowchart zum technischen Forschungsdesign</title><p><italic>Anmerkung.</italic> Für die Verfügbarkeit der Software siehe den Abschnitt Ergänzende Materialien.</p></caption><graphic xlink:href="jbdgm.247-f1" position="anchor" orientation="portrait"/></fig>

</sec>
<sec sec-type="other3"><title>Das kommentierte JavaScript</title>
<p>In Abbildung 2 wird das in <italic>musikerkennen2.html</italic> enthaltene JavaScript in kommentierter Form wiedergegeben. An dieser Stelle muss noch erwähnt werden, dass zur Ausführung bestimmter Befehle des Skripts auf dem Server (hier im Ordner /js) die Bibliothek /js/jquery-3.7.1.slim.min.js bereitgestellt werden muss. Diese sorgt dafür, dass alle gängigen Browser unterstützt werden und bietet einfache Selektoren, um über alle Links zu iterieren (eine Umsetzung mit nativem JavaScript wäre prinzipiell ebenfalls möglich, aber schwerer nachvollziehbar und auch schwieriger auf andere Umgebungen anzupassen). Zur Einrichtung der erforderlichen Konstellation muss lediglich die genannte Datei in den betreffenden Ordner kopiert werden. Auch die js-Bibliothek befindet sich in den ergänzenden Materialien zu diesem Beitrag.</p><fig id="f2" position="anchor" fig-type="figure" orientation="portrait"><label>Abbildung 2</label><caption>
<title>Das verwendete JavaScript</title></caption><graphic xlink:href="jbdgm.247-f2" position="anchor" orientation="portrait"/></fig></sec>
<sec sec-type="other4"><title>Fazit</title>
<p>Im Frühstadium der erwähnten Untersuchung zum Musikerkennen wurden die Datensätze aus DOTS und emoTouch einander provisorisch durch die enthaltenen Zeitstempel zugeordnet. Dies basierte auf der Annahme, dass kurz nacheinander absolvierte Befragungen auch zusammengehören, kann aber etwa dann zu Fehlern führen, wenn mehrere Personen (fast) gleichzeitig an der Befragung teilnehmen. Das vorgestellte JavaScript löst dieses Problem. Durch Programmierung der wenn-dann-Bedingung konnte eine Session-ID sowohl übernommen werden, wenn sie (wie von DOTS) als p_id als auch wenn sie (wie von emoTouch) als s1 in der URL übergeben wird. Da die zweite Stufe der Befragung (ggf. mit mehreren Schleifen) mit emoTouch realisiert wurde, wird die Session-ID hier immer als s1 weitergegeben. In der nachfolgenden Datenauswertung wurden zunächst separate Tabellen von DOTS und von emoTouch einbezogen. Die Zuordnung zu den einzelnen Studienteilnehmer:innen konnte nunmehr durch die jeweils enthaltenen, individuellen Session-IDs gewährleistet werden.</p>

</sec>
</body>
<back>
<ref-list><title>Literaturverzeichnis</title>
<ref id="r1"><mixed-citation publication-type="web">Deutsche Gesellschaft für Musikpsychologie. (o. D.). <italic>DGM Online Testing Server</italic>. <ext-link ext-link-type="uri" xlink:href="https://testing.musikpsychologie.de/dots_home/">https://testing.musikpsychologie.de/dots_home/</ext-link></mixed-citation></ref>
<ref id="r2"><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name name-style="western"><surname>Harrison</surname>, <given-names>P. M. C.</given-names></string-name></person-group> (<year>2020</year>). <article-title>psychTestR: An R package for designing and conducting behavioural psychological experiments.</article-title> <source>Journal of Open Source Software</source>, <volume>5</volume>(<issue>49</issue>), <elocation-id>2088</elocation-id>. <pub-id pub-id-type="doi">10.21105/joss.02088</pub-id></mixed-citation></ref>
	
	<ref id="r4"><mixed-citation publication-type="book">Greenberg, D. M., &amp; Rentfrow, P. (2015). Rules of engagement: The structure of musical engagement and its personality underpinnings. In J. Ginsborg, Lamont, A., Phillips, M., Bramley, S. (Eds.), <italic>Proceedings of the Ninth Triennial Conference of the European Society for the Cognitive Sciences of Music</italic>, 17–22 August 2015.</mixed-citation></ref>
	
<ref id="r3"><mixed-citation publication-type="web">Louven, C., Gehrs, F., &amp; Liebelt, A. (2026). <italic>emoTouch</italic> (Version 2.3) [Computersoftware]. Universität Osnabrück. <ext-link ext-link-type="uri" xlink:href="https://www.emotouch.de/">https://www.emotouch.de</ext-link></mixed-citation></ref>
</ref-list>
	

	
	
	
	<sec sec-type="supplementary-material" id="sp1"><title>Ergänzende Materialien</title>
		<p>Folgende vier Dateien sind auf dem GitLab-Server der Universität Kassel verfügbar (siehe <xref ref-type="bibr" rid="sp1_r1">Richards, 2026</xref>):</p>
		
		<list list-type="bullet">
			<list-item><p><italic>musikerkennen1.html</italic></p></list-item>
			<list-item><p><italic>musikerkennen2.html</italic></p></list-item>
			<list-item><p>erforderliche JavaScript-Bibliothek (jQuery)</p></list-item>
			<list-item><p>das PDF mit dem kommentierten Script</p></list-item>
		</list>
		
		<ref-list content-type="supplementary-material" id="suppl-ref-list">
			<ref id="sp1_r1">
				<mixed-citation publication-type="supplementary-material">
					<person-group person-group-type="author">

							<name name-style="western">
								<surname>Richards</surname>
								<given-names>W.</given-names>
							</name>
					</person-group> (<year>2026</year>). <source>emotouch</source> <comment>[Skripte]</comment>. <publisher-name>GitLab</publisher-name>. <ext-link ext-link-type="uri" xlink:href="https://gitlab.uni-kassel.de/richards/emotouch">https://gitlab.uni-kassel.de/richards/emotouch</ext-link>		
				</mixed-citation>
			</ref>
		</ref-list>
	</sec>
			

<fn-group>
<fn fn-type="financial-disclosure"><p>Die Autor:innen haben keine Finanzierung für das Forschungsprojekt erhalten.</p></fn>
</fn-group>
<fn-group>
<fn fn-type="conflict"><p>Die Autor:innen haben erklärt, dass keinerlei konkurrierende Interessen bestehen.</p></fn>
</fn-group>
<ack>
<p>Die Autor:innen haben keine weitere (d. h. nicht-finanzielle) Unterstützung erhalten.</p>
</ack>
</back>
</article>
