From decd2d6625f6f5de6ddf76f12a3ded5f1b2bf370 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Fri, 5 Aug 2022 16:10:37 +0200 Subject: [PATCH 1/2] fixes #130 + #156 --- packages/core/pattern.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index 84441a1b..48e52643 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -1294,8 +1294,8 @@ export function slowcatPrime(...pats) { pats = pats.map(reify); const query = function (state) { const pat_n = Math.floor(state.span.begin) % pats.length; - const pat = pats[pat_n]; - return pat.query(state); + const pat = pats[pat_n]; // can be undefined for same cases e.g. /#cHVyZSg0MikKICAuZXZlcnkoMyxhZGQoNykpCiAgLmxhdGUoLjUp + return pat?.query(state) || []; }; return new Pattern(query)._splitQueries(); } From 8d1c98f03eb38571dae21422df403cd9279ba277 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sat, 6 Aug 2022 21:37:41 +0200 Subject: [PATCH 2/2] always throw error for invalid notes --- packages/core/util.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/util.mjs b/packages/core/util.mjs index 6a96be87..86d798d6 100644 --- a/packages/core/util.mjs +++ b/packages/core/util.mjs @@ -53,8 +53,8 @@ export const getPlayableNoteValue = (hap) => { // if value is number => interpret as midi number as long as its not marked as frequency if (typeof note === 'number' && context.type !== 'frequency') { note = fromMidi(hap.value); - } else if (typeof note === 'string' && !isNote(note)) { - throw new Error('not a note: ' + note); + } else if (typeof note !== 'string' || !isNote(note)) { + throw new Error('not a note: ' + JSON.stringify(note)); } return note; };