code format

This commit is contained in:
Felix Roos 2022-12-13 21:32:03 +01:00
parent 67ad82d52e
commit bf1ba6efc0
17 changed files with 75 additions and 78 deletions

View File

@ -5,3 +5,4 @@
**/out
**/dist
packages/mini/krill-parser.js
packages/xen/tunejs.js

View File

@ -12,5 +12,4 @@
"proseWrap": "preserve",
"htmlWhitespaceSensitivity": "css",
"endOfLine": "lf"
}
}

View File

@ -16,7 +16,7 @@ evalScope(
import('@strudel.cycles/tonal'),
);
setStringParser(mini)
setStringParser(mini);
const { evaluate } = repl({
defaultOutput: webaudioOutput,

View File

@ -80,16 +80,16 @@ export class Hap {
}
show(compact = false) {
const value = typeof this.value === 'object'
const value =
typeof this.value === 'object'
? compact
? JSON.stringify(this.value).slice(1, -1).replaceAll('"', '').replaceAll(',', ' ')
: JSON.stringify(this.value)
: this.value
: this.value;
var spans = '';
if (this.whole == undefined) {
spans = '~' + this.part.show;
}
else {
} else {
var is_whole = this.whole.begin.equals(this.part.begin) && this.whole.end.equals(this.part.end);
if (!this.whole.begin.equals(this.part.begin)) {
spans = this.whole.begin.show() + ' ⇜ ';
@ -102,12 +102,10 @@ export class Hap {
spans += ')';
}
if (!this.whole.end.equals(this.part.end)) {
spans += ' ⇝ ' + this.whole.end.show()
spans += ' ⇝ ' + this.whole.end.show();
}
}
return (
'[ ' + spans + ' | ' + value + ' ]'
);
return '[ ' + spans + ' | ' + value + ' ]';
}
showWhole(compact = false) {

View File

@ -544,32 +544,31 @@ export class Pattern {
return pat.withHaps((haps) => {
const result = [];
for (var i=0; i < haps.length; ++i) {
for (var i = 0; i < haps.length; ++i) {
var searching = true;
var a = haps[i];
while (searching) {
const a_value = JSON.stringify(haps[i].value);
var found = false;
for(var j=i+1; j<haps.length; j++) {
for (var j = i + 1; j < haps.length; j++) {
const b = haps[j];
if (a.whole.equals(b.whole)) {
if (a.part.begin.eq(b.part.end)) {
if (a_value === JSON.stringify(b.value)) {
// eat the matching hap into 'a'
a = new Hap(a.whole, new TimeSpan(b.part.begin, a.part.end), a.value)
haps.splice(j,1);
a = new Hap(a.whole, new TimeSpan(b.part.begin, a.part.end), a.value);
haps.splice(j, 1);
// restart the search
found = true;
break;
}
}
else if (b.part.begin.eq(a.part.end)) {
} else if (b.part.begin.eq(a.part.end)) {
if (a_value == JSON.stringify(b.value)) {
// eat the matching hap into 'a'
a = new Hap(a.whole, new TimeSpan(a.part.begin, b.part.end), a.value)
haps.splice(j,1);
a = new Hap(a.whole, new TimeSpan(a.part.begin, b.part.end), a.value);
haps.splice(j, 1);
// restart the search
found = true;
break;

View File

@ -917,20 +917,18 @@ describe('Pattern', () => {
});
describe('defragmentHaps', () => {
it('Can merge two touching haps with same whole and value', () => {
expect(stack(pure('a').mask(1,0), pure('a').mask(0,1)).defragmentHaps().firstCycle().length)
.toStrictEqual(1);
expect(stack(pure('a').mask(1, 0), pure('a').mask(0, 1)).defragmentHaps().firstCycle().length).toStrictEqual(1);
});
it('Doesnt merge two overlapping haps', () => {
expect(stack(pure('a').mask(1,1,0), pure('a').mask(0,1)).defragmentHaps().firstCycle().length)
.toStrictEqual(2);
expect(stack(pure('a').mask(1, 1, 0), pure('a').mask(0, 1)).defragmentHaps().firstCycle().length).toStrictEqual(
2,
);
});
it('Doesnt merge two touching haps with different values', () => {
expect(stack(pure('a').mask(1,0), pure('b').mask(0,1)).defragmentHaps().firstCycle().length)
.toStrictEqual(2);
expect(stack(pure('a').mask(1, 0), pure('b').mask(0, 1)).defragmentHaps().firstCycle().length).toStrictEqual(2);
});
it('Doesnt merge two touching haps with different wholes', () => {
expect(stack(sequence('a', silence), pure('a').mask(0,1)).defragmentHaps().firstCycle().length)
.toStrictEqual(2);
expect(stack(sequence('a', silence), pure('a').mask(0, 1)).defragmentHaps().firstCycle().length).toStrictEqual(2);
});
});
});

View File

@ -20,7 +20,7 @@ export class TimeSpan {
// Support zero-width timespans
if (begin.equals(end)) {
return([new TimeSpan(begin, end)]);
return [new TimeSpan(begin, end)];
}
while (end.gt(begin)) {

View File

@ -25,8 +25,6 @@ const config = {
},
};
const osc = new OSC({ plugin: new OSC.BridgePlugin(config) });
osc.open(); // start a WebSocket server on port 8080

View File

@ -1,7 +1,7 @@
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()]
})
plugins: [react()],
});

View File

@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<!-- <link rel="icon" type="image/svg+xml" href="/src/favicon.svg" /> -->
<!-- <link rel="icon" type="image/svg+xml" href="/src/favicon.svg" /> -->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Strudel React Components</title>
</head>

View File

@ -9,4 +9,4 @@ module.exports = {
tailwindcss: {},
autoprefixer: {},
},
}
};

View File

@ -1,5 +1,10 @@
import React from 'react'
import ReactDOM from 'react-dom'
import App from './App'
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(<React.StrictMode><App /></React.StrictMode>,document.getElementById('root'))
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root'),
);

View File

@ -23,17 +23,16 @@ export async function getWriter(br = 38400) {
const encoder = new TextEncoder();
const writer = port.writable.getWriter();
writeMessage = function (message, chk) {
const encoded = encoder.encode(message)
const encoded = encoder.encode(message);
if (!chk) {
writer.write(encoded);
}
else {
} else {
const bytes = new Uint8Array(4);
bytes[0] = 124; // | symbol
bytes[1] = (chk >> 8) & 0xFF;
bytes[2] = chk & 0xFF;
bytes[1] = (chk >> 8) & 0xff;
bytes[2] = chk & 0xff;
bytes[3] = 59; // semicolon
const withchk = new Uint8Array(encoded.length+4)
const withchk = new Uint8Array(encoded.length + 4);
withchk.set(encoded);
withchk.set(bytes, encoded.length);
writer.write(withchk);
@ -48,12 +47,12 @@ const latency = 0.1;
// crc16 (CCITT-FALSE) https://gist.github.com/tijnkooijmans/10981093
function crc16(data) {
const length = data.length
const length = data.length;
if (length == 0) {
return 0;
}
var crc = 0xFFFF;
var crc = 0xffff;
for (var i = 0; i < length; ++i) {
crc ^= data.charCodeAt(i) << 8;
for (var j = 0; j < 8; ++j) {
@ -64,7 +63,7 @@ function crc16(data) {
return crc & 0xffff;
}
Pattern.prototype.serial = function (br=38400,sendcrc=false,singlecharids=false) {
Pattern.prototype.serial = function (br = 38400, sendcrc = false, singlecharids = false) {
return this.withHap((hap) => {
if (!writeMessage) {
getWriter(br);
@ -96,7 +95,7 @@ Pattern.prototype.serial = function (br=38400,sendcrc=false,singlecharids=false)
}
message += ')';
if (sendcrc) {
chk = crc16(message)
chk = crc16(message);
}
} else {
for (const [key, val] of Object.entries(hap.value)) {
@ -108,7 +107,9 @@ Pattern.prototype.serial = function (br=38400,sendcrc=false,singlecharids=false)
}
const offset = (time - currentTime + latency) * 1000;
window.setTimeout(function () {writeMessage(message, chk)}, offset);
window.setTimeout(function () {
writeMessage(message, chk);
}, offset);
};
return hap.setContext({ ...hap.context, onTrigger, dominantTrigger: true });
});

View File

@ -59,7 +59,7 @@ export const instruments = [
'0046_GeneralUserGS_sf2_file', // ?
'0050_Aspirin_sf2_file', // glass organ
'0050_Chaos_sf2_file', // short glass organ
'0050_FluidR3_GM_sf2_file',// long glass organ !
'0050_FluidR3_GM_sf2_file', // long glass organ !
'0050_GeneralUserGS_sf2_file', // short glass organ
'0050_JCLive_sf2_file', // glass organ
'0050_SBLive_sf2', // ?

View File

@ -9,4 +9,4 @@ module.exports = {
tailwindcss: {},
autoprefixer: {},
},
}
};

View File

@ -1,13 +1,11 @@
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans',
'Droid Sans', 'Helvetica Neue', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
}

View File

@ -9,4 +9,4 @@ module.exports = {
tailwindcss: {},
autoprefixer: {},
},
}
};