From fe0e64ae1f31fdf555b02c774e3d5022275a01cb Mon Sep 17 00:00:00 2001 From: Lumi Pakkanen Date: Thu, 30 Nov 2023 11:11:04 +0200 Subject: [PATCH] Fix issues found by type-checking --- src/components/ScaleBuilder.vue | 3 +++ src/components/modals/export/KorgExport.vue | 7 +++++-- src/components/modals/export/MtsSysexExport.vue | 5 ++++- src/components/modals/export/ReaperExport.vue | 7 +++++-- .../modals/modification/StretchScale.vue | 15 ++++++++------- 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/components/ScaleBuilder.vue b/src/components/ScaleBuilder.vue index cfdcdd29..7f3c31f1 100644 --- a/src/components/ScaleBuilder.vue +++ b/src/components/ScaleBuilder.vue @@ -504,6 +504,7 @@ function confirmPreset() { :newline="props.newline" :scaleName="scaleName" :baseMidiNote="baseMidiNote" + :midiOctaveOffset="midiOctaveOffset" :scale="scale" /> @@ -514,6 +515,7 @@ function confirmPreset() { :newline="props.newline" :scaleName="scaleName" :baseMidiNote="baseMidiNote" + :midiOctaveOffset="midiOctaveOffset" :scale="scale" /> @@ -524,6 +526,7 @@ function confirmPreset() { :newline="props.newline" :scaleName="scaleName" :baseMidiNote="baseMidiNote" + :midiOctaveOffset="midiOctaveOffset" :scale="scale" /> diff --git a/src/components/modals/export/KorgExport.vue b/src/components/modals/export/KorgExport.vue index 1a616b22..dcad9429 100644 --- a/src/components/modals/export/KorgExport.vue +++ b/src/components/modals/export/KorgExport.vue @@ -4,11 +4,13 @@ import { sanitizeFilename } from '@/utils' import { computed, ref } from 'vue' import Modal from '@/components/ModalDialog.vue' import type { Scale } from 'scale-workshop-core' +import type { ExporterParams } from '@/exporters/base' const props = defineProps<{ newline: string scaleName: string baseMidiNote: number + midiOctaveOffset: number scale: Scale }>() @@ -39,11 +41,12 @@ const fileTypePreview = computed(() => { }) async function doExport() { - const params = { + const params: ExporterParams = { newline: props.newline, scale: props.scale, filename: sanitizeFilename(props.scaleName), - baseMidiNote: props.baseMidiNote + baseMidiNote: props.baseMidiNote, + midiOctaveOffset: props.midiOctaveOffset } const exporter = new KorgExporter(params, modelName.value, useOctaveFormat.value) diff --git a/src/components/modals/export/MtsSysexExport.vue b/src/components/modals/export/MtsSysexExport.vue index d25b842d..9dea7f27 100644 --- a/src/components/modals/export/MtsSysexExport.vue +++ b/src/components/modals/export/MtsSysexExport.vue @@ -5,11 +5,13 @@ import { ref, watch } from 'vue' import Modal from '@/components/ModalDialog.vue' import type { Scale } from 'scale-workshop-core' import { clamp } from 'xen-dev-utils' +import type { ExporterParams } from '@/exporters/base' const props = defineProps<{ newline: string scaleName: string baseMidiNote: number + midiOctaveOffset: number scale: Scale }>() @@ -48,11 +50,12 @@ function presetIndexInputCallback(indexInput: string): void { } function doExport() { - const params = { + const params: ExporterParams = { newline: props.newline, scale: props.scale, filename: sanitizeFilename(props.scaleName), baseMidiNote: props.baseMidiNote, + midiOctaveOffset: props.midiOctaveOffset, name: name.value, presetIndex: parseInt(presetIndex.value) } diff --git a/src/components/modals/export/ReaperExport.vue b/src/components/modals/export/ReaperExport.vue index e3647d2f..64278f6a 100644 --- a/src/components/modals/export/ReaperExport.vue +++ b/src/components/modals/export/ReaperExport.vue @@ -4,11 +4,13 @@ import { sanitizeFilename } from '@/utils' import { ref } from 'vue' import Modal from '@/components/ModalDialog.vue' import type { Scale } from 'scale-workshop-core' +import type { ExporterParams } from '@/exporters/base' const props = defineProps<{ newline: string scaleName: string baseMidiNote: number + midiOctaveOffset: number scale: Scale }>() @@ -30,14 +32,15 @@ const integratePeriod = ref(false) const displayPeriod = ref(true) function doExport() { - const params = { + const params: ExporterParams = { newline: props.newline, scale: props.scale, filename: sanitizeFilename(props.scaleName), baseMidiNote: props.baseMidiNote, + midiOctaveOffset: props.midiOctaveOffset, format: format.value, basePeriod: basePeriod.value, - baseDegrree: baseDegree.value, + baseDegree: baseDegree.value, centsRoot: centsRoot.value, integratePeriod: integratePeriod.value, displayPeriod: displayPeriod.value diff --git a/src/components/modals/modification/StretchScale.vue b/src/components/modals/modification/StretchScale.vue index 2e9decf0..18a97659 100644 --- a/src/components/modals/modification/StretchScale.vue +++ b/src/components/modals/modification/StretchScale.vue @@ -3,7 +3,7 @@ import { ref } from 'vue' import Modal from '@/components/ModalDialog.vue' import ScaleLineInput from '@/components/ScaleLineInput.vue' import { ExtendedMonzo, Interval, type Scale } from 'scale-workshop-core' -import { DEFAULT_NUMBER_OF_COMPONENTS } from '@/constants' +import { DEFAULT_NUMBER_OF_COMPONENTS, FIFTH } from '@/constants' const props = defineProps<{ scale: Scale centsFractionDigits: number @@ -12,17 +12,16 @@ const props = defineProps<{ const emit = defineEmits(['update:scale', 'cancel']) const amount = ref(1.005) -// Dummy variable to get the types right -const pureFifth = new Interval( - ExtendedMonzo.fromFraction('3/2', DEFAULT_NUMBER_OF_COMPONENTS), - 'ratio' +const equallyTemperedFifth = new Interval( + ExtendedMonzo.fromEqualTemperament('7/12', '2/1', DEFAULT_NUMBER_OF_COMPONENTS), + 'equal temperament' ) const referenceString = ref('') -const reference = ref(pureFifth) +const reference = ref(FIFTH) const targetString = ref('') -const target = ref(pureFifth) +const target = ref(FIFTH) function calculateAmount() { const calculated = target.value.totalCents() / reference.value.totalCents() @@ -69,6 +68,7 @@ function modify() { @@ -78,6 +78,7 @@ function modify() {