const descriptions = ['Text Description 1', 'Text Description 2', 'Text Description 3', 'Text Description 4'];
const models = ['AR', 'FM', 'FM_VAE', 'GT'];
function createSection1Table() {
let table = '
Text Description | ';
models.forEach(model => table += `${model} | `);
table += '
';
descriptions.forEach((desc, idx) => {
table += `${desc} | `;
models.forEach(model => {
const audioSrc = `section1/audio/text${idx+1}_${model.toLowerCase()}.wav`;
table += ` | `;
});
table += '
';
});
table += '
';
document.getElementById('section1').innerHTML = table;
}
function createSectionWithObj(sectionId, sectionPath) {
let table = 'Text Description | ';
models.forEach(model => table += `${model} | `);
table += '
';
descriptions.forEach((desc, idx) => {
table += `${desc} | `;
models.forEach(model => {
const audioSrc = `${sectionPath}/audio/text${idx+1}_${model.toLowerCase()}.wav`;
const imageSrc = `${sectionPath}/images/text${idx+1}_${model.toLowerCase()}.png`;
table += `
| `;
});
table += '
';
});
table += '
';
document.getElementById(sectionId).innerHTML = table;
}
function setupWaveformOverlay(sectionId) {
descriptions.forEach((desc, idx) => {
models.forEach(model => {
const canvas = document.getElementById(`canvas_${sectionId}_${idx+1}_${model}`);
const ctx = canvas.getContext('2d');
const img = new Image();
img.src = `${sectionId}/images/text${idx+1}_${model.toLowerCase()}.png`;
img.onload = () => ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
const audio = document.getElementById(`audio_${sectionId}_${idx+1}_${model}`);
let interval;
audio.addEventListener('play', () => {
interval = setInterval(() => {
const x = (audio.currentTime / audio.duration) * canvas.width;
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.moveTo(x, 0);
ctx.lineTo(x, canvas.height);
ctx.strokeStyle = 'red';
ctx.stroke();
}, 30);
});
audio.addEventListener('pause', () => clearInterval(interval));
audio.addEventListener('ended', () => clearInterval(interval));
});
});
}
createSection1Table();
createSectionWithObj('section2', 'section2');
createSectionWithObj('section3', 'section3');
window.onload = () => {
setupWaveformOverlay('section2');
setupWaveformOverlay('section3');
};