diff --git a/index.html b/index.html
index 12f251d..dcc44b6 100644
--- a/index.html
+++ b/index.html
@@ -71,24 +71,34 @@
Ļoti labs nošu spēlētājs
// Function to play notes
const playNotes = (input, delay) => {
- // Ensure input is valid
+ // Validate input
if (!input) {
alert("Please enter valid notes!");
return;
}
const notes = input.split(",").map(note => note.trim());
- let time = Tone.now(); // Start time
- notes.forEach(note => {
+ // Use Tone.Transport for precise scheduling
+ Tone.Transport.cancel(); // Clear any previously scheduled events
+ Tone.Transport.stop(); // Reset the transport
+ Tone.Transport.start(); // Start the transport from the beginning
+
+ notes.forEach((note, index) => {
const toneNote = notesMap[note];
if (toneNote) {
- synth.triggerAttackRelease(toneNote, "8n", time);
- time += delay; // Increment time by the delay for the next note
+ Tone.Transport.schedule((time) => {
+ synth.triggerAttackRelease(toneNote, "8n", time);
+ }, index * delay); // Schedule each note based on delay
} else {
console.warn(`Invalid note: ${note}`);
}
});
+
+ // Stop the transport after all notes are played
+ Tone.Transport.schedule(() => {
+ Tone.Transport.stop();
+ }, notes.length * delay);
};
// Update slider value display