mirror of
https://codeberg.org/uzu/strudel
synced 2026-07-31 08:45:40 -04:00
Updates
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,2 +1 @@
|
||||
import{T as e,o as n,a as o,x as t,u as h,y as l,d as p,f as r,g as m,t as y,w as u,k as c,l as d,m as g,b as i,c as f,n as w,q as b,r as k,j as x,h as D,p as v,e as T,s as j,i as q,v as C}from"./index.c88845f4.js";export{e as Tone,n as adsr,o as amsynth,t as backgroundImage,h as cleanupDraw,l as cleanupUi,p as duosynth,r as fmsynth,m as getDefaultSynth,y as getDrawContext,u as hideHeader,c as highpass,d as lowpass,g as membrane,i as metal,f as monosynth,w as noise,b as osc,k as out,x as piano,D as players,v as pluck,T as polysynth,j as sampler,q as synth,C as vol};
|
||||
//# sourceMappingURL=index.7b2cda5c.js.map
|
||||
import{T as e,o as n,a as o,x as t,u as h,y as l,d as p,f as r,g as m,t as y,w as u,k as c,l as d,m as g,b as i,c as f,n as w,q as b,r as k,j as x,h as D,p as v,e as T,s as j,i as q,v as C}from"./index.ef8b8284.js";export{e as Tone,n as adsr,o as amsynth,t as backgroundImage,h as cleanupDraw,l as cleanupUi,p as duosynth,r as fmsynth,m as getDefaultSynth,y as getDrawContext,u as hideHeader,c as highpass,d as lowpass,g as membrane,i as metal,f as monosynth,w as noise,b as osc,k as out,x as piano,D as players,v as pluck,T as polysynth,j as sampler,q as synth,C as vol};
|
||||
File diff suppressed because one or more lines are too long
@@ -1,2 +0,0 @@
|
||||
import{W as a,J as b}from"./index.c88845f4.js";export{a as WebMidi,b as enableWebMidi};
|
||||
//# sourceMappingURL=index.2d2040e8.js.map
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"index.2d2040e8.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
||||
@@ -1,2 +1 @@
|
||||
var d=Object.defineProperty;var g=(s,t,e)=>t in s?d(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var i=(s,t,e)=>(g(s,typeof t!="symbol"?t+"":t,e),e);import{K as S,L as y,N as T,S as B,M as I,O as R,R as W,Q as j}from"./index.c88845f4.js";const k=s=>"("+s+")();",w=s=>URL.createObjectURL(new Blob([k(s)],{type:"text/javascript"})),m=s=>new Worker(w(s));class x{constructor(t,e=this.interval){i(this,"worker");i(this,"interval",.1);i(this,"tick",0);this.interval=e,this.worker=m(()=>{let r,o=null;const h=()=>{o&&(clearInterval(o),o=null)},c=()=>{if(h(),!r)throw new Error("no interval set! call worker.postMessage({interval}) before starting.");postMessage("tick"),o=setInterval(()=>postMessage("tick"),r*1e3)};self.onmessage=function(n){n.data=="start"?c():n.data.interval?(r=n.data.interval,o&&c()):n.data=="stop"&&h()}}),this.worker.postMessage({interval:e}),this.worker.onmessage=r=>{r.data==="tick"&&t(this.tick++,this.interval)}}start(){this.worker.postMessage("start")}stop(){this.worker.postMessage("stop"),this.tick=0}setInterval(t){this.worker.postMessage({interval:t})}}class v{constructor({audioContext:t,interval:e=.1,onEvent:r,latency:o=.1}){i(this,"worker");i(this,"pattern");i(this,"phase");i(this,"audioContext");i(this,"cps",1);this.audioContext=t,this.worker=new x((h,c)=>{const n=this.phase,l=this.phase+c*this.cps;this.phase=l,this.pattern.queryArc(n,l).forEach(a=>{var p,u;if(typeof((p=a.value)==null?void 0:p.cps)=="number"&&this.setCps((u=a.value)==null?void 0:u.cps),!!a.part.begin.equals(a.whole.begin)){if(a.context.onTrigger){const f=(a.whole.begin-n)/this.cps+this.audioContext.currentTime+o;a.context.onTrigger(f,a,this.audioContext.currentTime,this.cps)}r&&(r==null||r(a))}})},e)}start(){if(!this.pattern)throw new Error("Scheduler: no pattern set! call .setPattern first.");this.audioContext.resume(),this.phase=0,this.worker.start()}stop(){this.worker.stop()}setPattern(t){this.pattern=t}setCps(t=1){this.cps=t}}export{x as ClockWorker,v as Scheduler,S as getAudioContext,y as getCachedBuffer,T as getLoadedBuffer,B as getLoadedSamples,I as loadBuffer,R as loadGithubSamples,W as resetLoadedSamples,j as samples};
|
||||
//# sourceMappingURL=index.04913383.js.map
|
||||
var d=Object.defineProperty;var g=(s,t,e)=>t in s?d(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var i=(s,t,e)=>(g(s,typeof t!="symbol"?t+"":t,e),e);import{K as S,L as y,N as T,S as B,M as I,O as R,R as W,Q as j}from"./index.ef8b8284.js";const k=s=>"("+s+")();",w=s=>URL.createObjectURL(new Blob([k(s)],{type:"text/javascript"})),m=s=>new Worker(w(s));class x{constructor(t,e=this.interval){i(this,"worker");i(this,"interval",.1);i(this,"tick",0);this.interval=e,this.worker=m(()=>{let r,o=null;const h=()=>{o&&(clearInterval(o),o=null)},c=()=>{if(h(),!r)throw new Error("no interval set! call worker.postMessage({interval}) before starting.");postMessage("tick"),o=setInterval(()=>postMessage("tick"),r*1e3)};self.onmessage=function(n){n.data=="start"?c():n.data.interval?(r=n.data.interval,o&&c()):n.data=="stop"&&h()}}),this.worker.postMessage({interval:e}),this.worker.onmessage=r=>{r.data==="tick"&&t(this.tick++,this.interval)}}start(){this.worker.postMessage("start")}stop(){this.worker.postMessage("stop"),this.tick=0}setInterval(t){this.worker.postMessage({interval:t})}}class v{constructor({audioContext:t,interval:e=.1,onEvent:r,latency:o=.1}){i(this,"worker");i(this,"pattern");i(this,"phase");i(this,"audioContext");i(this,"cps",1);this.audioContext=t,this.worker=new x((h,c)=>{const n=this.phase,l=this.phase+c*this.cps;this.phase=l,this.pattern.queryArc(n,l).forEach(a=>{var p,u;if(typeof((p=a.value)==null?void 0:p.cps)=="number"&&this.setCps((u=a.value)==null?void 0:u.cps),!!a.part.begin.equals(a.whole.begin)){if(a.context.onTrigger){const f=(a.whole.begin-n)/this.cps+this.audioContext.currentTime+o;a.context.onTrigger(f,a,this.audioContext.currentTime,this.cps)}r&&(r==null||r(a))}})},e)}start(){if(!this.pattern)throw new Error("Scheduler: no pattern set! call .setPattern first.");this.audioContext.resume(),this.phase=0,this.worker.start()}stop(){this.worker.stop()}setPattern(t){this.pattern=t}setCps(t=1){this.cps=t}}export{x as ClockWorker,v as Scheduler,S as getAudioContext,y as getCachedBuffer,T as getLoadedBuffer,B as getLoadedSamples,I as loadBuffer,R as loadGithubSamples,W as resetLoadedSamples,j as samples};
|
||||
@@ -0,0 +1 @@
|
||||
import{W as a,J as b}from"./index.ef8b8284.js";export{a as WebMidi,b as enableWebMidi};
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"index.7b2cda5c.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{U as a}from"./index.ef8b8284.js";export{a as loadWebDirt};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,2 +0,0 @@
|
||||
import{U as a}from"./index.c88845f4.js";export{a as loadWebDirt};
|
||||
//# sourceMappingURL=index.a595d658.js.map
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"index.a595d658.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,2 +1 @@
|
||||
var d=Object.defineProperty,m=Object.defineProperties;var x=Object.getOwnPropertyDescriptors;var f=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var u=(r,e,t)=>e in r?d(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,v=(r,e)=>{for(var t in e||(e={}))p.call(e,t)&&u(r,t,e[t]);if(f)for(var t of f(e))T.call(e,t)&&u(r,t,e[t]);return r},w=(r,e)=>m(r,x(e));import{P as W}from"./index.c88845f4.js";var n,b=!1;async function $(r=38400){if(!b){if(b=!0,n)return n;if("serial"in navigator){const e=await navigator.serial.requestPort();await e.open({baudRate:r});const t=new TextEncoderStream;t.readable.pipeTo(e.writable);const s=t.writable.getWriter();n=function(i){s.write(i)}}else throw"Webserial is not available in this browser."}}const j=.1;W.prototype.serial=function(...r){return this._withHap(e=>{n||$(...r);const t=(s,i,g)=>{var o="";if(typeof i.value=="object")if("action"in i.value){o+=i.value.action+"(";var c=!0;for(const[a,l]of Object.entries(i.value))a!=="action"&&(c?c=!1:o+=",",o+=`${a}:${l}`);o+=")"}else for(const[a,l]of Object.entries(i.value))o+=`${a}:${l};`;else o=i.value;const y=(s-g+j)*1e3;window.setTimeout(n,y,o)};return e.setContext(w(v({},e.context),{onTrigger:t}))})};export{$ as getWriter};
|
||||
//# sourceMappingURL=serial.c58f9fd1.js.map
|
||||
var d=Object.defineProperty,m=Object.defineProperties;var x=Object.getOwnPropertyDescriptors;var f=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var u=(r,e,t)=>e in r?d(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,v=(r,e)=>{for(var t in e||(e={}))p.call(e,t)&&u(r,t,e[t]);if(f)for(var t of f(e))T.call(e,t)&&u(r,t,e[t]);return r},w=(r,e)=>m(r,x(e));import{P as W}from"./index.ef8b8284.js";var n,b=!1;async function $(r=38400){if(!b){if(b=!0,n)return n;if("serial"in navigator){const e=await navigator.serial.requestPort();await e.open({baudRate:r});const t=new TextEncoderStream;t.readable.pipeTo(e.writable);const s=t.writable.getWriter();n=function(i){s.write(i)}}else throw"Webserial is not available in this browser."}}const j=.1;W.prototype.serial=function(...r){return this._withHap(e=>{n||$(...r);const t=(s,i,g)=>{var o="";if(typeof i.value=="object")if("action"in i.value){o+=i.value.action+"(";var c=!0;for(const[a,l]of Object.entries(i.value))a!=="action"&&(c?c=!1:o+=",",o+=`${a}:${l}`);o+=")"}else for(const[a,l]of Object.entries(i.value))o+=`${a}:${l};`;else o=i.value;const y=(s-g+j)*1e3;window.setTimeout(n,y,o)};return e.setContext(w(v({},e.context),{onTrigger:t}))})};export{$ as getWriter};
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"serial.c58f9fd1.js","sources":["../../packages/serial/serial.mjs"],"sourcesContent":["/*\nserial.mjs - <short description TODO>\nCopyright (C) 2022 Strudel contributors - see <https://github.com/tidalcycles/strudel/blob/main/packages/serial/serial.mjs>\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.\n*/\n\nimport { Pattern, isPattern } from '@strudel.cycles/core';\n\nvar serialWriter;\nvar choosing = false;\n\nexport async function getWriter(br=38400) {\n if (choosing) {\n return;\n }\n choosing = true;\n if (serialWriter) {\n return serialWriter;\n }\n if ('serial' in navigator) {\n const port = await navigator.serial.requestPort();\n await port.open({ baudRate: br });\n const textEncoder = new TextEncoderStream();\n const writableStreamClosed = textEncoder.readable.pipeTo(port.writable);\n const writer = textEncoder.writable.getWriter();\n serialWriter = function (message) {\n writer.write(message)\n }\n }\n else {\n throw('Webserial is not available in this browser.')\n }\n}\n\nconst latency = 0.1;\n\nPattern.prototype.serial = function (...args) {\n return this._withHap((hap) => {\n if (!serialWriter) {\n getWriter(...args);\n }\n const onTrigger = (time, hap, currentTime) => {\n var message = \"\";\n if (typeof hap.value === 'object') {\n if ('action' in hap.value) {\n message += hap.value['action'] + '(';\n var first = true;\n for (const [key, val] of Object.entries(hap.value)) {\n if (key === 'action') {\n continue;\n }\n if (first) {\n first = false;\n }\n else {\n message +=',';\n }\n message += `${key}:${val}`\n }\n message += ')';\n }\n else {\n for (const [key, val] of Object.entries(hap.value)) {\n message += `${key}:${val};`\n }\n }\n }\n else {\n message = hap.value;\n }\n const offset = (time - currentTime + latency) * 1000;\n window.setTimeout(serialWriter, offset, message);\n };\n return hap.setContext({ ...hap.context, onTrigger });\n });\n};\n"],"names":[],"mappings":"qdAQA,GAAI,GACA,EAAW,GAER,iBAAyB,EAAG,MAAO,CACxC,GAAI,GAIJ,IADA,EAAW,GACP,EACF,MAAO,GAET,GAAI,UAAY,WAAW,CACzB,KAAM,GAAO,KAAM,WAAU,OAAO,YAAW,EAC/C,KAAM,GAAK,KAAK,CAAE,SAAU,CAAI,CAAA,EAChC,KAAM,GAAc,GAAI,mBACK,EAAY,SAAS,OAAO,EAAK,QAAQ,EACtE,KAAM,GAAS,EAAY,SAAS,UAAS,EAC7C,EAAe,SAAU,EAAS,CAChC,EAAO,MAAM,CAAO,CACrB,CACF,KAEC,MAAM,8CAEV,CAEA,KAAM,GAAU,GAEhB,EAAQ,UAAU,OAAS,YAAa,EAAM,CAC5C,MAAO,MAAK,SAAS,AAAC,GAAQ,CAC5B,AAAK,GACH,EAAU,GAAG,CAAI,EAEnB,KAAM,GAAY,CAAC,EAAM,EAAK,IAAgB,CAC5C,GAAI,GAAU,GACd,GAAI,MAAO,GAAI,OAAU,SACvB,GAAI,UAAY,GAAI,MAAO,CACzB,GAAW,EAAI,MAAM,OAAY,IACjC,GAAI,GAAQ,GACZ,SAAW,CAAC,EAAK,IAAQ,QAAO,QAAQ,EAAI,KAAK,EAC/C,AAAI,IAAQ,UAGZ,CAAI,EACF,EAAQ,GAGR,GAAU,IAEZ,GAAW,GAAG,KAAO,KAEvB,GAAW,GACZ,KAEC,UAAW,CAAC,EAAK,IAAQ,QAAO,QAAQ,EAAI,KAAK,EAC/C,GAAW,GAAG,KAAO,SAKzB,GAAU,EAAI,MAEhB,KAAM,GAAU,GAAO,EAAc,GAAW,IAChD,OAAO,WAAW,EAAc,EAAQ,CAAO,CACrD,EACI,MAAO,GAAI,WAAW,OAAK,EAAI,SAAT,CAAkB,WAAS,EAAE,CACvD,CAAG,CACH"}
|
||||
+1
-1
@@ -9,7 +9,7 @@
|
||||
<!-- TODO: add manifest images -->
|
||||
<!-- <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> -->
|
||||
<title>Strudel REPL</title>
|
||||
<script type="module" crossorigin src="/assets/index.c88845f4.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index.ef8b8284.js"></script>
|
||||
<link rel="stylesheet" href="/assets/index.ea54525d.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user