+++ /dev/null
-import WaveSurfer from 'wavesurfer.js';
-
-let phase;
-//this is a relative filepath on a server or for local running
-let filepath = "media/basic-break.wav";
-
-const wavesurfer = WaveSurfer.create({
- container: '#waveform',
- waveColor: '#4F4A85',
- progressColor: '#383351',
- url: filepath
-});
-
-wavesurfer.on('click', (relativeX) => {
- wavesurfer.play();
- //wavesurfer.seekTo(relativeX);
- buttons_reset();
-
-});
-
-const setup = async() => {
- buttons_make();
-}
-
-//functions--------------------------------------------------------------------------
-//
-//dynamic loading
-// wavesurfer.load('/some/path/to/wave.wav');
-
-
-function linear_map(phase, imn, imx, omn, omx){
- return (phase - imn) * (omx - omn) / (imx - imn) + omn;
-}
-
-function file_to_server() {
- //let dictstr = JSON.stringify(global_dict);
- //fs = new File("media/test.json", dictstr);
- //fs.writeFile();
-}
-
-function buttons_reset() {
-
- buttons.forEach((button, index) => {
-
- buttons[index].clicked = false;
- const elem = document.getElementById(button.id);
-
- if (elem) {
- elem.classList.remove("clicked");
- }
-
- });
-}
-
-function buttons_make() {
-
- const container = document.getElementById("buttoncontain");
- // const wf = document.getElementById("waveform");
- // wf.addEventListener("click", () => {
- // console.log("user clicked inside of waveform");
- // });
-
- buttons.forEach((button) => {
-
- const button_elem = document.createElement("div");
-
- button_elem.id = button.id;
- button_elem.classList.add("buttons");
- button_elem.innerHTML = `<h2>${button.text}</h2>`;
-
- button_elem.addEventListener("click", () => {
-
- if (!button.clicked) {
- buttons_reset();
- button.clicked = true;
- button.call_action();
- button_elem.classList.add("clicked");
- }
-
- });
-
- container.appendChild(button_elem);
- });
-}
-
-//main routine-----------------------------------------------------------------
-//
-//
-setup();
-
-//user data ------------------------------------------------------------------
-//
-//
-let global_dict = {
- "soundfile" : filepath,
- "m0" : [2.4, 3., "m1 label"],
- "m1" : [8.2, 3., "m2 label"],
- "m2" : [11.7, 3., "m3 label"],
- "m3" : [14.9, 3., "m4 label"]
-};
-
-//interface data--------------------------------------------------------------
-//
-//
-const buttons = [
- {
- id: "button1",
- text: "playback: play/resume",
- clicked: false,
- call_action: function () {
- console.log("button1 clicked");
- wavesurfer.play();
- },
- },
- {
- id: "button2",
- text: "playback: stop [+ cue]",
- clicked: false,
- call_action: function () {
- console.log(this.id, " clicked");
- wavesurfer.stop();
- },
- },
- {
- id: "button3",
- text: "playback: pause",
- clicked: false,
- call_action: function () {
- console.log(this.id, " clicked");
- wavesurfer.pause();
- },
- },
- {
- id: "button4",
- text: "save your work...",
- clicked: false,
- call_action: function () {
- console.log(this.id, " clicked");
- // Additional action
- },
- }
-];
-