From 3936f4bc99ec242752d0dcc91ea46de2ad10f2b2 Mon Sep 17 00:00:00 2001 From: LEGALISE_PIRACY Date: Wed, 8 May 2024 02:09:35 +0000 Subject: [PATCH] Upload files to "semag/karlson" --- semag/karlson/index.apple-touch-icon.png | Bin 0 -> 9557 bytes .../karlson/index.apple-touch-icon.png.import | 34 +++ semag/karlson/index.audio.worklet.js | 213 +++++++++++++++ semag/karlson/index.html | 250 ++++++++++++++++++ semag/karlson/index.icon.png | Bin 0 -> 15561 bytes 5 files changed, 497 insertions(+) create mode 100644 semag/karlson/index.apple-touch-icon.png create mode 100644 semag/karlson/index.apple-touch-icon.png.import create mode 100644 semag/karlson/index.audio.worklet.js create mode 100644 semag/karlson/index.html create mode 100644 semag/karlson/index.icon.png diff --git a/semag/karlson/index.apple-touch-icon.png b/semag/karlson/index.apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0aa75527638f0ebc1a0925ebf701e6d30a6945ae GIT binary patch literal 9557 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 R|4%0cP?A#vR?C=#{vUbFje-CG literal 0 HcmV?d00001 diff --git a/semag/karlson/index.apple-touch-icon.png.import b/semag/karlson/index.apple-touch-icon.png.import new file mode 100644 index 00000000..2c1f61c8 --- /dev/null +++ b/semag/karlson/index.apple-touch-icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dobbt2mu5luwv" +path="res://.godot/imported/index.apple-touch-icon.png-21031f526f7942c8019a62913b80e091.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://build/web/index.apple-touch-icon.png" +dest_files=["res://.godot/imported/index.apple-touch-icon.png-21031f526f7942c8019a62913b80e091.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/semag/karlson/index.audio.worklet.js b/semag/karlson/index.audio.worklet.js new file mode 100644 index 00000000..89b581b3 --- /dev/null +++ b/semag/karlson/index.audio.worklet.js @@ -0,0 +1,213 @@ +/**************************************************************************/ +/* audio.worklet.js */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +class RingBuffer { + constructor(p_buffer, p_state, p_threads) { + this.buffer = p_buffer; + this.avail = p_state; + this.threads = p_threads; + this.rpos = 0; + this.wpos = 0; + } + + data_left() { + return this.threads ? Atomics.load(this.avail, 0) : this.avail; + } + + space_left() { + return this.buffer.length - this.data_left(); + } + + read(output) { + const size = this.buffer.length; + let from = 0; + let to_write = output.length; + if (this.rpos + to_write > size) { + const high = size - this.rpos; + output.set(this.buffer.subarray(this.rpos, size)); + from = high; + to_write -= high; + this.rpos = 0; + } + if (to_write) { + output.set(this.buffer.subarray(this.rpos, this.rpos + to_write), from); + } + this.rpos += to_write; + if (this.threads) { + Atomics.add(this.avail, 0, -output.length); + Atomics.notify(this.avail, 0); + } else { + this.avail -= output.length; + } + } + + write(p_buffer) { + const to_write = p_buffer.length; + const mw = this.buffer.length - this.wpos; + if (mw >= to_write) { + this.buffer.set(p_buffer, this.wpos); + this.wpos += to_write; + if (mw === to_write) { + this.wpos = 0; + } + } else { + const high = p_buffer.subarray(0, mw); + const low = p_buffer.subarray(mw); + this.buffer.set(high, this.wpos); + this.buffer.set(low); + this.wpos = low.length; + } + if (this.threads) { + Atomics.add(this.avail, 0, to_write); + Atomics.notify(this.avail, 0); + } else { + this.avail += to_write; + } + } +} + +class GodotProcessor extends AudioWorkletProcessor { + constructor() { + super(); + this.threads = false; + this.running = true; + this.lock = null; + this.notifier = null; + this.output = null; + this.output_buffer = new Float32Array(); + this.input = null; + this.input_buffer = new Float32Array(); + this.port.onmessage = (event) => { + const cmd = event.data['cmd']; + const data = event.data['data']; + this.parse_message(cmd, data); + }; + } + + process_notify() { + if (this.notifier) { + Atomics.add(this.notifier, 0, 1); + Atomics.notify(this.notifier, 0); + } + } + + parse_message(p_cmd, p_data) { + if (p_cmd === 'start' && p_data) { + const state = p_data[0]; + let idx = 0; + this.threads = true; + this.lock = state.subarray(idx, ++idx); + this.notifier = state.subarray(idx, ++idx); + const avail_in = state.subarray(idx, ++idx); + const avail_out = state.subarray(idx, ++idx); + this.input = new RingBuffer(p_data[1], avail_in, true); + this.output = new RingBuffer(p_data[2], avail_out, true); + } else if (p_cmd === 'stop') { + this.running = false; + this.output = null; + this.input = null; + this.lock = null; + this.notifier = null; + } else if (p_cmd === 'start_nothreads') { + this.output = new RingBuffer(p_data[0], p_data[0].length, false); + } else if (p_cmd === 'chunk') { + this.output.write(p_data); + } + } + + static array_has_data(arr) { + return arr.length && arr[0].length && arr[0][0].length; + } + + process(inputs, outputs, parameters) { + if (!this.running) { + return false; // Stop processing. + } + if (this.output === null) { + return true; // Not ready yet, keep processing. + } + const process_input = GodotProcessor.array_has_data(inputs); + if (process_input) { + const input = inputs[0]; + const chunk = input[0].length * input.length; + if (this.input_buffer.length !== chunk) { + this.input_buffer = new Float32Array(chunk); + } + if (!this.threads) { + GodotProcessor.write_input(this.input_buffer, input); + this.port.postMessage({ 'cmd': 'input', 'data': this.input_buffer }); + } else if (this.input.space_left() >= chunk) { + GodotProcessor.write_input(this.input_buffer, input); + this.input.write(this.input_buffer); + } else { + this.port.postMessage('Input buffer is full! Skipping input frame.'); + } + } + const process_output = GodotProcessor.array_has_data(outputs); + if (process_output) { + const output = outputs[0]; + const chunk = output[0].length * output.length; + if (this.output_buffer.length !== chunk) { + this.output_buffer = new Float32Array(chunk); + } + if (this.output.data_left() >= chunk) { + this.output.read(this.output_buffer); + GodotProcessor.write_output(output, this.output_buffer); + if (!this.threads) { + this.port.postMessage({ 'cmd': 'read', 'data': chunk }); + } + } else { + this.port.postMessage('Output buffer has not enough frames! Skipping output frame.'); + } + } + this.process_notify(); + return true; + } + + static write_output(dest, source) { + const channels = dest.length; + for (let ch = 0; ch < channels; ch++) { + for (let sample = 0; sample < dest[ch].length; sample++) { + dest[ch][sample] = source[sample * channels + ch]; + } + } + } + + static write_input(dest, source) { + const channels = source.length; + for (let ch = 0; ch < channels; ch++) { + for (let sample = 0; sample < source[ch].length; sample++) { + dest[sample * channels + ch] = source[ch][sample]; + } + } + } +} + +registerProcessor('godot-processor', GodotProcessor); diff --git a/semag/karlson/index.html b/semag/karlson/index.html new file mode 100644 index 00000000..8c0e2f2d --- /dev/null +++ b/semag/karlson/index.html @@ -0,0 +1,250 @@ + + + + + + + Karlson + + + + + + + + + HTML5 canvas appears to be unsupported in the current browser.
+ Please try updating or use a different browser. +
+
+ + + +
+ + + + + + diff --git a/semag/karlson/index.icon.png b/semag/karlson/index.icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f1ef91aca5a54acc9e0e7ab2ecf4adab97b6db79 GIT binary patch literal 15561 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 literal 0 HcmV?d00001