From 834fcf7943966ff6aee95e893760f6e35d6d53ff Mon Sep 17 00:00:00 2001 From: Denis Thiessen Date: Sat, 15 Jun 2024 00:18:49 +0200 Subject: [PATCH] feat: Added better timbres and fixed timing. --- src/core/Constants.jsx | 2 +- src/core/audio/AudioHandler.jsx | 25 +++++++------- src/core/audio/MotifHandler.jsx | 54 +++++++++++++++---------------- src/core/audio/samples/piano.mp3 | Bin 0 -> 32673 bytes src/index.css | 9 ++++++ 5 files changed, 50 insertions(+), 40 deletions(-) create mode 100644 src/core/audio/samples/piano.mp3 diff --git a/src/core/Constants.jsx b/src/core/Constants.jsx index 8cc3e5d..4396fc8 100644 --- a/src/core/Constants.jsx +++ b/src/core/Constants.jsx @@ -1,4 +1,4 @@ export const MOUSE_MODE = true; export const HEATMAP_MAX = 999; -export const PARTICIPANT_NUMBER = 7; \ No newline at end of file +export const PARTICIPANT_NUMBER = 9; \ No newline at end of file diff --git a/src/core/audio/AudioHandler.jsx b/src/core/audio/AudioHandler.jsx index c33cb04..ac19346 100644 --- a/src/core/audio/AudioHandler.jsx +++ b/src/core/audio/AudioHandler.jsx @@ -13,7 +13,7 @@ import D4Flute from "./samples/flute_samples/D4.wav"; import FSharp2Flute from "./samples/flute_samples/F#2.wav"; import FSharp3Flute from "./samples/flute_samples/F#3.wav"; import FSharp4Flute from "./samples/flute_samples/F#4.wav"; -import violaSample from "./samples/viola.wav"; +import violaSample from "./samples/piano.mp3"; import { getMotifByVersion } from "./MotifHandler"; import { generateChord } from "./ChordHelper"; @@ -23,7 +23,7 @@ const drumSynth = new Tone.Sampler({ }).toDestination(); const violaSynth = new Tone.Sampler({ - C5: violaSample, + C1: violaSample, }).toDestination(); const fluteSynth = new Tone.Sampler({ @@ -60,14 +60,14 @@ const calculateDetailMotifVersion = function (textDensity, linkDensity) { // C-Major Chord Progression const tabChordProgression = [ - generateChord(60, "major"), - generateChord(62, "minor"), - generateChord(64, "minor"), - generateChord(65, "major"), - generateChord(67, "major"), - generateChord(69, "minor"), - generateChord(71, "diminished"), - generateChord(72, "major"), + generateChord(84, "major"), + generateChord(86, "minor"), + generateChord(88, "minor"), + generateChord(89, "major"), + generateChord(91, "major"), + generateChord(93, "minor"), + generateChord(95, "diminished"), + generateChord(96, "major"), ]; var offCooldown = true; @@ -113,7 +113,7 @@ export function playTabEarconSonification(endReached, tabIndex, tabAmount) { tabIndex, tabAmount ); - fluteSynth.triggerAttackRelease( + violaSynth.triggerAttackRelease( tabChordProgression[tabChordIndex], "4n", now @@ -164,7 +164,8 @@ export function playTabModelSonification(pannerVal, frequencyVal, endReached) { // Menu Sonification Paper. :) export function playDetailEarconSonification(textDensity, linkDensity) { if (offCooldown) { - const synth = violaSynth.toDestination(); + const synth = fluteSynth.toDestination(); + console.log(calculateDetailMotifVersion(textDensity, linkDensity)); getMotifByVersion( calculateDetailMotifVersion(textDensity, linkDensity), synth diff --git a/src/core/audio/MotifHandler.jsx b/src/core/audio/MotifHandler.jsx index bd54398..96fea13 100644 --- a/src/core/audio/MotifHandler.jsx +++ b/src/core/audio/MotifHandler.jsx @@ -22,24 +22,24 @@ const motifs = [ export function getMotif1(synth) { const now = Tone.now(); synth.triggerAttackRelease("A3", "4n", now); - synth.triggerAttackRelease("C#4", "4n", now + 0.16); + synth.triggerAttackRelease("C#4", "4n", now + 0.24); } export function getMotif2(synth) { const now = Tone.now(); - synth.triggerAttackRelease("A3", "4n", now); + synth.triggerAttackRelease("A3", 0.2, now); synth.triggerAttackRelease("E#4", "4n", now + 0.16); } export function getMotif3(synth) { const now = Tone.now(); - synth.triggerAttackRelease("A3", "4n", now); + synth.triggerAttackRelease("A3", 0.2, now); synth.triggerAttackRelease("G#4", "4n", now + 0.16); } export function getMotif4(synth) { const now = Tone.now(); - synth.triggerAttackRelease("A3", "4n", now); + synth.triggerAttackRelease("A3", 0.2, now); synth.triggerAttackRelease("A4", "4n", now + 0.16); } @@ -47,56 +47,56 @@ export function getMotif4(synth) { export function getMotif5(synth) { const now = Tone.now(); - synth.triggerAttackRelease("A3", "4n", now); - synth.triggerAttackRelease("C#4", "4n", now + 0.08); - synth.triggerAttackRelease("E4", "4n", now + 0.24); + synth.triggerAttackRelease("A3", 0.2, now); + synth.triggerAttackRelease("C#4", 0.2, now + 0.16); + synth.triggerAttackRelease("E4", "4n", now + 0.32); } export function getMotif6(synth) { const now = Tone.now(); - synth.triggerAttackRelease("A3", "4n", now); - synth.triggerAttackRelease("C#4", "4n", now + 0.08); - synth.triggerAttackRelease("G#4", "4n", now + 0.24); + synth.triggerAttackRelease("A3", 0.2, now); + synth.triggerAttackRelease("C#4", 0.2, now + 0.16); + synth.triggerAttackRelease("G#4", "4n", now + 0.32); } export function getMotif7(synth) { const now = Tone.now(); - synth.triggerAttackRelease("A3", "4n", now); - synth.triggerAttackRelease("E4", "4n", now + 0.16); + synth.triggerAttackRelease("A3", 0.2, now); + synth.triggerAttackRelease("E4", 0.2, now + 0.16); synth.triggerAttackRelease("A4", "4n", now + 0.32); } export function getMotif8(synth) { const now = Tone.now(); - synth.triggerAttackRelease("A3", "4n", now); - synth.triggerAttackRelease("G#4", "4n", now + 0.08); - synth.triggerAttackRelease("C#5", "4n", now + 0.24); + synth.triggerAttackRelease("A3", 0.2, now); + synth.triggerAttackRelease("G#4", 0.2, now + 0.16); + synth.triggerAttackRelease("C#5", "4n", now + 0.32); } // Large Motifs export function getMotif9(synth) { const now = Tone.now(); - synth.triggerAttackRelease("C#3", "4n", now); - synth.triggerAttackRelease("C#4", "4n", now + 0.16); - synth.triggerAttackRelease("G#3", "4n", now + 0.32); - synth.triggerAttackRelease("G#4", "4n", now + 0.48); + synth.triggerAttackRelease("C#3", 0.15, now); + synth.triggerAttackRelease("C#4", 0.15, now + 0.12); + synth.triggerAttackRelease("G#3", 0.15, now + 0.24); + synth.triggerAttackRelease("G#4", "4n", now + 0.36); } export function getMotif10(synth) { const now = Tone.now(); - synth.triggerAttackRelease("E3", "4n", now); - synth.triggerAttackRelease("E4", "4n", now + 0.16); - synth.triggerAttackRelease("G#3", "4n", now + 0.32); - synth.triggerAttackRelease("C#4", "4n", now + 0.48); + synth.triggerAttackRelease("E3", 0.15, now); + synth.triggerAttackRelease("E4", 0.15, now + 0.12); + synth.triggerAttackRelease("G#3", 0.15, now + 0.24); + synth.triggerAttackRelease("C#4", "4n", now + 0.36); } export function getMotif11(synth) { const now = Tone.now(); - synth.triggerAttackRelease("E3", "4n", now); - synth.triggerAttackRelease("E4", "4n", now + 0.16); - synth.triggerAttackRelease("A3", "4n", now + 0.32); - synth.triggerAttackRelease("C#4", "4n", now + 0.48); + synth.triggerAttackRelease("E3", 0.15, now); + synth.triggerAttackRelease("E4", 0.15, now + 0.12); + synth.triggerAttackRelease("A3", 0.15, now + 0.24); + synth.triggerAttackRelease("C#4", "4n", now + 0.36); } export function getMotif12(synth) { diff --git a/src/core/audio/samples/piano.mp3 b/src/core/audio/samples/piano.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..92ef8d8ca77b420dccad40cfe1038f2769c3f1b0 GIT binary patch literal 32673 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

?|c59pLtw$@HM)*FT>;i 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 literal 0 HcmV?d00001 diff --git a/src/index.css b/src/index.css index 75f1073..cdcfd87 100644 --- a/src/index.css +++ b/src/index.css @@ -9,6 +9,10 @@ body { -moz-osx-font-smoothing: grayscale; } +body > iframe { + /*display: none;*/ +} + code { font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; @@ -52,4 +56,9 @@ canvas { #propertyLocationMap { height: 30vh !important; +} + +.leaflet-control-container { + z-index: 600 !important; + position: relative; } \ No newline at end of file