Files
intono/shared/src/commonMain/kotlin/com/notemusicali/audio/InstrumentPreset.kt
T
lucianoandClaude Fable 5 21ad969b10 Initial commit: InTono — app KMP per l'apprendimento musicale
App Kotlin Multiplatform (Android/iOS/Desktop) con Compose Multiplatform:
controllo intonazione (YIN), pratica guidata, metronomo, ear training,
sfide, scansione spartiti via AI, spartiti bundled e pentagramma con
glifi tipografici, travature, battute e spaziatura proporzionale.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-22 10:06:59 +02:00

78 lines
2.0 KiB
Kotlin

package com.notemusicali.audio
enum class InstrumentPreset(
val displayName: String,
val minFrequency: Float,
val maxFrequency: Float,
val yinThreshold: Float,
val bufferSize: Int,
val minOctave: Int,
val maxOctave: Int,
val description: String,
) {
VIOLINO(
displayName = "Violino",
minFrequency = 180f,
maxFrequency = 2700f,
yinThreshold = 0.15f,
bufferSize = 2048,
minOctave = 3,
maxOctave = 7,
description = "G3-E7 \u2022 Ottimizzato per archi",
),
VIOLA(
displayName = "Viola",
minFrequency = 120f,
maxFrequency = 1800f,
yinThreshold = 0.15f,
bufferSize = 2048,
minOctave = 3,
maxOctave = 6,
description = "C3-A6 \u2022 Ottimizzato per archi",
),
VIOLONCELLO(
displayName = "Violoncello",
minFrequency = 60f,
maxFrequency = 1100f,
yinThreshold = 0.15f,
bufferSize = 4096,
minOctave = 2,
maxOctave = 6,
description = "C2-C6 \u2022 Buffer ampio per note basse",
),
PIANOFORTE(
displayName = "Pianoforte",
minFrequency = 27f,
maxFrequency = 4200f,
yinThreshold = 0.10f,
bufferSize = 4096,
minOctave = 0,
maxOctave = 8,
description = "A0-C8 \u2022 Soglia bassa, segnale pulito",
),
CHITARRA(
displayName = "Chitarra",
minFrequency = 78f,
maxFrequency = 1400f,
yinThreshold = 0.12f,
bufferSize = 2048,
minOctave = 2,
maxOctave = 6,
description = "E2-E6 \u2022 Corde pizzicate",
),
VOCE(
displayName = "Voce",
minFrequency = 75f,
maxFrequency = 1200f,
yinThreshold = 0.15f,
bufferSize = 2048,
minOctave = 2,
maxOctave = 6,
description = "D2-D6 \u2022 Range vocale esteso",
),
;
val octaveRange: IntRange get() = minOctave..maxOctave
}