use webaudio output by default
This commit is contained in:
parent
6af681354b
commit
5c230c2d65
3 changed files with 8 additions and 30 deletions
4
packages/react/dist/index.cjs.js
vendored
4
packages/react/dist/index.cjs.js
vendored
File diff suppressed because one or more lines are too long
17
packages/react/dist/index.es.js
vendored
17
packages/react/dist/index.es.js
vendored
|
|
@ -7,9 +7,9 @@ import { tags } from '@lezer/highlight';
|
||||||
import { createTheme } from '@uiw/codemirror-themes';
|
import { createTheme } from '@uiw/codemirror-themes';
|
||||||
import { useInView } from 'react-hook-inview';
|
import { useInView } from 'react-hook-inview';
|
||||||
import { evaluate } from '@strudel.cycles/eval';
|
import { evaluate } from '@strudel.cycles/eval';
|
||||||
import { getPlayableNoteValue } from '@strudel.cycles/core/util.mjs';
|
|
||||||
import { Tone } from '@strudel.cycles/tone';
|
import { Tone } from '@strudel.cycles/tone';
|
||||||
import { TimeSpan, State } from '@strudel.cycles/core';
|
import { TimeSpan, State } from '@strudel.cycles/core';
|
||||||
|
import { webaudioOutputTrigger } from '@strudel.cycles/webaudio';
|
||||||
import { WebMidi, enableWebMidi } from '@strudel.cycles/midi';
|
import { WebMidi, enableWebMidi } from '@strudel.cycles/midi';
|
||||||
|
|
||||||
var strudelTheme = createTheme({
|
var strudelTheme = createTheme({
|
||||||
|
|
@ -282,19 +282,8 @@ function useRepl({ tune, defaultSynth, autolink = true, onEvent, onDraw: onDrawP
|
||||||
if (event.context.logs?.length) {
|
if (event.context.logs?.length) {
|
||||||
event.context.logs.forEach(pushLog);
|
event.context.logs.forEach(pushLog);
|
||||||
}
|
}
|
||||||
const { onTrigger, velocity } = event.context;
|
const { onTrigger = webaudioOutputTrigger } = event.context;
|
||||||
if (!onTrigger) {
|
onTrigger(time, event, currentTime, 1 /* cps */);
|
||||||
if (defaultSynth) {
|
|
||||||
const note = getPlayableNoteValue(event);
|
|
||||||
defaultSynth.triggerAttackRelease(note, event.duration.valueOf(), time, velocity);
|
|
||||||
} else {
|
|
||||||
throw new Error('no defaultSynth passed to useRepl.');
|
|
||||||
}
|
|
||||||
/* console.warn('no instrument chosen', event);
|
|
||||||
throw new Error(`no instrument chosen for ${JSON.stringify(event)}`); */
|
|
||||||
} else {
|
|
||||||
onTrigger(time, event, currentTime, 1 /* cps */);
|
|
||||||
}
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.warn(err);
|
console.warn(err);
|
||||||
err.message = 'unplayable event: ' + err?.message;
|
err.message = 'unplayable event: ' + err?.message;
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ This program is free software: you can redistribute it and/or modify it under th
|
||||||
|
|
||||||
import { useCallback, useState, useMemo } from 'react';
|
import { useCallback, useState, useMemo } from 'react';
|
||||||
import { evaluate } from '@strudel.cycles/eval';
|
import { evaluate } from '@strudel.cycles/eval';
|
||||||
import { getPlayableNoteValue } from '@strudel.cycles/core/util.mjs';
|
|
||||||
import useCycle from './useCycle.mjs';
|
import useCycle from './useCycle.mjs';
|
||||||
import usePostMessage from './usePostMessage.mjs';
|
import usePostMessage from './usePostMessage.mjs';
|
||||||
|
import { webaudioOutputTrigger } from '@strudel.cycles/webaudio';
|
||||||
|
|
||||||
let s4 = () => {
|
let s4 = () => {
|
||||||
return Math.floor((1 + Math.random()) * 0x10000)
|
return Math.floor((1 + Math.random()) * 0x10000)
|
||||||
|
|
@ -48,19 +48,8 @@ function useRepl({ tune, defaultSynth, autolink = true, onEvent, onDraw: onDrawP
|
||||||
if (event.context.logs?.length) {
|
if (event.context.logs?.length) {
|
||||||
event.context.logs.forEach(pushLog);
|
event.context.logs.forEach(pushLog);
|
||||||
}
|
}
|
||||||
const { onTrigger, velocity } = event.context;
|
const { onTrigger = webaudioOutputTrigger } = event.context;
|
||||||
if (!onTrigger) {
|
onTrigger(time, event, currentTime, 1 /* cps */);
|
||||||
if (defaultSynth) {
|
|
||||||
const note = getPlayableNoteValue(event);
|
|
||||||
defaultSynth.triggerAttackRelease(note, event.duration.valueOf(), time, velocity);
|
|
||||||
} else {
|
|
||||||
throw new Error('no defaultSynth passed to useRepl.');
|
|
||||||
}
|
|
||||||
/* console.warn('no instrument chosen', event);
|
|
||||||
throw new Error(`no instrument chosen for ${JSON.stringify(event)}`); */
|
|
||||||
} else {
|
|
||||||
onTrigger(time, event, currentTime, 1 /* cps */);
|
|
||||||
}
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.warn(err);
|
console.warn(err);
|
||||||
err.message = 'unplayable event: ' + err?.message;
|
err.message = 'unplayable event: ' + err?.message;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue