aboutsummaryrefslogtreecommitdiff
path: root/site/code/base.js
blob: 847807f6ed5792d5aca79675002a421659ac732b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
var baseurl = "https://y.1bpm.net/csTest";

function csound_ready(Csound) {
    $("#loading").hide();
    window.Csound = Csound;
}

function handleMessage(message) {
	var msgbox = $("#csmessages");
	msgbox.val(msgbox.val() + message + "\n");
}


async function make_instance() {
    if (!window.csound) {
        window.csound = await Csound({useWorker: false, useSAB: false});
    }
    window.csound.on("message", handleMessage);
    return Promise.resolve();
}

async function copyUrlToLocal(url, name) {
    const response = await fetch(url);
    const bufferSrc = await response.arrayBuffer();
    const buffer = new Uint8Array(bufferSrc);
    await csound.fs.writeFile(name, buffer);
    return Promise.resolve();
}

async function load_files(bug) {
    await copyUrlToLocal(baseurl + "/vibe.csd", "vibe.csd");
    await copyUrlToLocal(baseurl + "/input.mp3", "input.mp3");
    return Promise.resolve();
}


async function play() {
    $("#bug_status").text("Loading resources");
    await make_instance();
    await load_files();
    await csound.compileCsd("vibe.csd");
    await csound.setOption("-odac");
    await csound.setOption("-b2048");
    await csound.setOption("-m0");
    await csound.setOption("-d");
    await csound.setOption("--ksmps=128");
    
    await csound.start();
    return Promise.resolve();
}



$(function(){
    
    $("#bug_play").click(async function() {
        await play();
    });
    
});