Compare commits

..

1 Commits

Author SHA1 Message Date
Jade (Rose) Rowland 598f5affbd Merge branch 'main' into glossing-glossing/ducking-click 2025-09-15 21:16:21 -04:00
6 changed files with 28 additions and 43 deletions
+2 -3
View File
@@ -5,9 +5,8 @@ let debounce = 1000,
lastTime;
export function errorLogger(e, origin = 'cyclist') {
if (process.env.NODE_ENV === 'development') {
console.error(e);
}
//TODO: add some kind of debug flag that enables this while in dev mode
// console.error(e);
logger(`[${origin}] error: ${e.message}`);
}
+17 -16
View File
@@ -4,35 +4,36 @@ OSC output for strudel patterns! Currently only tested with super collider / sup
## Usage
Assuming you have [node.js](https://nodejs.org/) installed, you can run the osc bridge server via:
OSC will only work if you run the REPL locally + the OSC server besides it:
```sh
npx @strudel/osc
From the project root:
```js
npm run repl
```
You should see something like:
and in a seperate shell:
```js
npm run osc
```
This should give you
```log
osc client running on port 57120
osc server running on port 7771
osc server running on port 57121
websocket server running on port 8080
```
By default it will use port 57120 for the osc client, which is what [superdirt](https://github.com/musikinformatik/SuperDirt) uses. You can change it via the `--port` option:
Now open Supercollider (with the super dirt startup file)
```sh
npx @strudel/osc --port 7771 # classic dirt
```
To test it in strudel, you have can use `all(osc)` to send all events through osc:
Now open the REPL and type:
```js
$: s("bd*4")
all(osc)
s("<bd sd> hh").osc()
```
[open in repl](hhttps://strudel.cc/#JDogcygiYmQqNCIpCgphbGwob3NjKQ%3D%3D)
or just [click here](https://strudel.cc/#cygiPGJkIHNkPiBoaCIpLm9zYygp)...
You can read more about [how to use Superdirt with Strudel the Tutorial](https://strudel.cc/learn/input-output/#superdirt-api)
+4 -2
View File
@@ -6,7 +6,7 @@ This program is free software: you can redistribute it and/or modify it under th
import OSC from 'osc-js';
import { logger, parseNumeral, register, isNote, noteToMidi, ClockCollator } from '@strudel/core';
import { logger, parseNumeral, Pattern, isNote, noteToMidi, ClockCollator } from '@strudel/core';
let connection; // Promise<OSC>
function connect() {
@@ -81,4 +81,6 @@ export async function oscTrigger(hap, currentTime, cps = 1, targetTime) {
* @memberof Pattern
* @returns Pattern
*/
export const osc = register('osc', (pat) => pat.onTrigger(oscTrigger));
Pattern.prototype.osc = function () {
return this.onTrigger(oscTrigger);
};
+1 -2
View File
@@ -1,9 +1,8 @@
{
"name": "@strudel/osc",
"version": "1.2.8",
"version": "1.2.4",
"description": "OSC messaging for strudel",
"main": "osc.mjs",
"bin": "./server.js",
"type": "module",
"publishConfig": {
"main": "dist/index.mjs"
+1 -16
View File
@@ -1,5 +1,3 @@
#!/usr/bin/env node
/*
server.js - <short description TODO>
Copyright (C) 2022 Strudel contributors - see <https://codeberg.org/uzu/strudel/src/branch/main/packages/osc/server.js>
@@ -8,19 +6,6 @@ This program is free software: you can redistribute it and/or modify it under th
import OSC from 'osc-js';
const args = process.argv.slice(2);
function getArgValue(flag) {
const i = args.indexOf(flag);
if (i !== -1) {
const nextIsFlag = args[i + 1]?.startsWith('--') ?? true;
if (nextIsFlag) return true;
return args[i + 1];
}
}
let udpClientPort = Number(getArgValue('--port')) || 57120;
// dirt = 7771
const config = {
receiver: 'ws', // @param {string} Where messages sent via 'send' method will be delivered to, 'ws' for Websocket clients, 'udp' for udp client
udpServer: {
@@ -32,7 +17,7 @@ const config = {
},
udpClient: {
host: 'localhost', // @param {string} Hostname of udp client for messaging
port: udpClientPort, // @param {number} Port of udp client for messaging
port: 57120, // @param {number} Port of udp client for messaging
},
wsServer: {
host: 'localhost', // @param {string} Hostname of WebSocket server
+3 -4
View File
@@ -1,9 +1,8 @@
let log = (msg) => console.log(msg);
export function errorLogger(e, origin = 'superdough') {
if (process.env.NODE_ENV === 'development') {
console.error(e);
}
export function errorLogger(e, origin = 'cyclist') {
//TODO: add some kind of debug flag that enables this while in dev mode
// console.error(e);
logger(`[${origin}] error: ${e.message}`);
}