From 8eaf255762ba662d9520a7c9a0c2c94545e27087 Mon Sep 17 00:00:00 2001 From: Stefano D'Angelo Date: Fri, 9 May 2025 15:32:10 +0200 Subject: [PATCH] let javascript module only export buses and parameters --- templates/web-demo/src/index.html | 18 +++++++++--------- templates/web/src/module.js | 19 +++++++++---------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/templates/web-demo/src/index.html b/templates/web-demo/src/index.html index 2f5c51e..fa599cb 100644 --- a/templates/web-demo/src/index.html +++ b/templates/web-demo/src/index.html @@ -75,12 +75,12 @@ var Player = { }; function map(index, value) { - var p = demo.Module.data.product.parameters[index]; + var p = demo.Module.parameters[index]; return p.map == "logarithmic" ? p.minimum * Math.exp((2.0 * Math.log(Math.sqrt(p.maximum * p.minimum) / Math.abs(p.minimum))) * value) : p.minimum + (p.maximum - p.minimum) * value; } function unmap(index, value) { - var p = demo.Module.data.product.parameters[index]; + var p = demo.Module.parameters[index]; return p.map == "logarithmic" ? Math.log(value / p.minimum) / (2.0 * Math.log(Math.sqrt(p.maximum * p.minimum) / Math.abs(p.minimum))) : (value - p.minimum) / (p.maximum - p.minimum); } @@ -112,7 +112,7 @@ var units = { }; function displayValue(elem, index, value) { - var param = demo.Module.data.product.parameters[index]; + var param = demo.Module.parameters[index]; var unit = param.unit; if (param.integer) value = Math.round(value); @@ -132,9 +132,9 @@ window.addEventListener("load", function (e) { var playPause = document.getElementById("playPause"); var controls = document.getElementById("controls"); - audioInputIndex = demo.Module.data.product.buses.filter(x => x.type == "audio" && x.direction == "input").findIndex(x => !x.cv && !x.sidechain); - audioOutputIndex = demo.Module.data.product.buses.filter(x => x.type == "audio" && x.direction == "output").findIndex(x => !x.cv && !x.sidechain); - hasMidiInput = demo.Module.data.product.buses.filter(x => x.type == "midi" && x.direction == "input").length > 0; + audioInputIndex = demo.Module.buses.filter(x => x.type == "audio" && x.direction == "input").findIndex(x => !x.cv && !x.sidechain); + audioOutputIndex = demo.Module.buses.filter(x => x.type == "audio" && x.direction == "output").findIndex(x => !x.cv && !x.sidechain); + hasMidiInput = demo.Module.buses.filter(x => x.type == "midi" && x.direction == "input").length > 0; if (hasMidiInput && !navigator.requestMIDIAccess) alert("Your browser doesn't support the Web MIDI API"); @@ -145,7 +145,7 @@ window.addEventListener("load", function (e) { file.value = ""; playPause.disabled = true; - var parameters = demo.Module.data.product.parameters; + var parameters = demo.Module.parameters; for (var i = 0; i < parameters.length; i++) { var div = document.createElement("div"); @@ -241,8 +241,8 @@ window.addEventListener("load", function (e) { if ((e.data[0] & 0xf0) == 0xf0) return; var msg = { type: "midi", data: e.data }; - for (var i = 0; i < demo.Module.data.product.buses.length; i++) { - var b = demo.Module.data.product.buses[i]; + for (var i = 0; i < demo.Module.buses.length; i++) { + var b = demo.Module.buses[i]; if (b.type != "midi" || b.direction != "input") continue; msg.index = i; diff --git a/templates/web/src/module.js b/templates/web/src/module.js index c298a51..04a72dd 100644 --- a/templates/web/src/module.js +++ b/templates/web/src/module.js @@ -1,7 +1,7 @@ /* * Tibia * - * Copyright (C) 2022-2024 Orastron Srl unipersonale + * Copyright (C) 2022-2025 Orastron Srl unipersonale * * Tibia is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,13 +18,12 @@ * File author: Stefano D'Angelo */ -const data = { - company: {{=JSON.stringify(it.company, null, 2)}}, - product: {{=JSON.stringify(it.product, null, 2)}} -}; +const buses = {{=JSON.stringify(it.product.buses, null, 2)}}; +const parameters = {{=JSON.stringify(it.product.parameters, null, 2)}}; export class Module { - static get data() { return data; } + static get buses() { return buses; } + static get parameters() { return parameters; } async init(context, processorJsPath, wasmPath) { var wasmBytes = await fetch(wasmPath) @@ -45,11 +44,11 @@ export class Module { export class Node extends AudioWorkletNode { constructor(module) { - super(module.context, data.product.bundleName, + super(module.context, "{{=it.product.bundleName}}", { - numberOfInputs: data.product.buses.filter(b => b.type == "audio" && b.direction == "input").length, - numberOfOutputs: data.product.buses.filter(b => b.type == "audio" && b.direction == "output").length, - outputChannelCount: data.product.buses.filter(b => b.type == "audio" && b.direction == "output").map(b => b.channels == "mono" ? 1 : 2), + numberOfInputs: buses.filter(b => b.type == "audio" && b.direction == "input").length, + numberOfOutputs: buses.filter(b => b.type == "audio" && b.direction == "output").length, + outputChannelCount: buses.filter(b => b.type == "audio" && b.direction == "output").map(b => b.channels == "mono" ? 1 : 2), processorOptions: { wasmBytes: module.wasmBytes } }); }