From 160dd66c3331b8373975789215b60498ad3720bf Mon Sep 17 00:00:00 2001 From: Miika Alonen Date: Tue, 22 Aug 2023 02:11:14 +0300 Subject: [PATCH] Added freq method to note --- package.json | 2 +- src/Note.ts | 12 ++++++++++-- yarn.lock | 8 ++++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index ae199c4..6b14fe9 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "tailwindcss": "^3.3.3", "tone": "^14.8.49", "vite-plugin-markdown": "^2.1.0", - "zifferjs": "^0.0.9", + "zifferjs": "^0.0.10", "zzfx": "^1.2.0" } } diff --git a/src/Note.ts b/src/Note.ts index fb11453..85d54f9 100644 --- a/src/Note.ts +++ b/src/Note.ts @@ -1,6 +1,8 @@ import { Event } from './Event'; import { type Editor } from './main'; import { MidiConnection } from "./IO/MidiConnection"; +import { freqToMidi, resolvePitchBend } from 'zifferjs'; + export class Note extends Event { values: { [key: string]: any }; midiConnection: MidiConnection; @@ -49,9 +51,15 @@ export class Note extends Event { } } - // TODO: Add bend freq = (value: number): this => { this.values['freq'] = value; + const midiNote = freqToMidi(value); + if(midiNote % 1 !== 0) { + this.values['note'] = Math.floor(midiNote); + this.values['bend'] = resolvePitchBend(midiNote)[1]; + } else { + this.values['note'] = midiNote; + } return this; } @@ -83,7 +91,7 @@ export class Note extends Event { this.midiConnection.getCurrentMidiPortIndex(); if (bend) this.midiConnection.sendPitchBend(bend, channel); - this.midiConnection.sendMidiNote(note, channel, velocity, duration, port); + this.midiConnection.sendMidiNote(note, channel, velocity, duration, port, bend); //if (bend) this.midiConnection.sendPitchBend(8192, channel); } diff --git a/yarn.lock b/yarn.lock index f5c0699..32cc326 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1441,10 +1441,10 @@ yaml@^2.1.1: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== -zifferjs@^0.0.9: - version "0.0.9" - resolved "https://registry.yarnpkg.com/zifferjs/-/zifferjs-0.0.9.tgz#47037cee6dd161838dd236bdbc3eda9b099e2281" - integrity sha512-XS/JAc9nkmoiRaT/YFuX7r1ROvApQnY5BxOKyenAeDATvKZ80sIoXUw48U27KTsuJIsiPInNm5RieJGCJkoVmQ== +zifferjs@^0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/zifferjs/-/zifferjs-0.0.10.tgz#b8c2617f5fc8fb4422f311702785c47b752a920e" + integrity sha512-kaMWRZcsAXXpPFjDoVtS3sQ5bZs+S7t3ejd8+WZV/nc52y/vXe/QcKAjT+jYCHGq8J1WMCITDn6OnVfswqJ8Ig== dependencies: lru-cache "^10.0.0"