Refactor project structure by removing "common" module

Removed the "common" module and associated configurations from the project. Updated dependencies and file placements to reflect these changes across build and source files. Migrated necessary code from the "common" module to relevant existing modules to maintain functionality.
This commit is contained in:
2024-12-08 14:57:01 +01:00
parent b20b2266ba
commit ee76d4c4a3
10 changed files with 201 additions and 282 deletions

View File

@@ -40,15 +40,9 @@ kotlin {
sourceSets {
val commonMain by getting {
dependencies {
implementation(project(":common"))
implementation("nl.astraeus:vst-worklet-base:1.0.0-SNAPSHOT")
}
}
val jsMain by getting {
dependencies {
implementation(project(":common"))
}
}
val jsMain by getting
}
}

View File

@@ -4,7 +4,6 @@ package nl.astraeus.vst.chip
import nl.astraeus.vst.ADSR
import nl.astraeus.vst.AudioWorkletProcessor
import nl.astraeus.vst.Note
import nl.astraeus.vst.currentTime
import nl.astraeus.vst.registerProcessor
import nl.astraeus.vst.sampleRate
@@ -21,6 +20,8 @@ import kotlin.math.sin
val POLYPHONICS = 10
val PI2 = PI * 2
@ExperimentalJsExport
@JsExport
class PlayingNote(
val note: Int,
var velocity: Int = 0

View File

@@ -0,0 +1,196 @@
package nl.astraeus.vst.chip
import nl.astraeus.vst.chip.Note.entries
import kotlin.math.max
import kotlin.math.min
import kotlin.math.pow
import kotlin.math.round
/**
* User: rnentjes
* Date: 14-11-15
* Time: 11:50
*/
@ExperimentalJsExport
@JsExport
enum class Note(
val sharp: String,
val flat: String
) {
NO01("C--", "C--"),
NO02("C#-", "Db-"),
NO03("D--", "D--"),
NO04("D#-", "Eb-"),
NO05("E--", "E--"),
NO06("F--", "F--"),
NO07("F#-", "Gb-"),
NO08("G--", "G--"),
NO09("G#-", "Ab-"),
NO10("A--", "A--"),
NO11("A#-", "Bb-"),
NO12("B--", "B--"),
C0("C-0", "C-0"),
C0s("C#0", "Db0"),
D0("D-0", "D-0"),
D0s("D#0", "Eb0"),
E0("E-0", "E-0"),
F0("F-0", "F-0"),
F0s("F#0", "Gb0"),
G0("G-0", "G-0"),
G0s("G#0", "Ab0"),
A0("A-0", "A-0"),
A0s("A#0", "Bb0"),
B0("B-0", "B-0"),
C1("C-1", "C-1"),
C1s("C#1", "Db1"),
D1("D-1", "D-1"),
D1s("D#1", "Eb1"),
E1("E-1", "E-1"),
F1("F-1", "F-1"),
F1s("F#1", "Gb1"),
G1("G-1", "G-1"),
G1s("G#1", "Ab1"),
A1("A-1", "A-1"),
A1s("A#1", "Bb1"),
B1("B-1", "B-1"),
C2("C-2", "C-2"),
C2s("C#2", "Db2"),
D2("D-2", "D-2"),
D2s("D#2", "Eb2"),
E2("E-2", "E-2"),
F2("F-2", "F-2"),
F2s("F#2", "Gb2"),
G2("G-2", "G-2"),
G2s("G#2", "Ab2"),
A2("A-2", "A-2"),
A2s("A#2", "Bb2"),
B2("B-2", "B-2"),
C3("C-3", "C-3"),
C3s("C#3", "Db3"),
D3("D-3", "D-3"),
D3s("D#3", "Eb3"),
E3("E-3", "E-3"),
F3("F-3", "F-3"),
F3s("F#3", "Gb3"),
G3("G-3", "G-3"),
G3s("G#3", "Ab3"),
A3("A-3", "A-3"),
A3s("A#3", "Bb3"),
B3("B-3", "B-3"),
C4("C-4", "C-4"),
C4s("C#4", "Db4"),
D4("D-4", "D-4"),
D4s("D#4", "Eb4"),
E4("E-4", "E-4"),
F4("F-4", "F-4"),
F4s("F#4", "Gb4"),
G4("G-4", "G-4"),
G4s("G#4", "Ab4"),
A4("A-4", "A-4"),
A4s("A#4", "Bb4"),
B4("B-4", "B-4"),
C5("C-5", "C-5"),
C5s("C#5", "Db5"),
D5("D-5", "D-5"),
D5s("D#5", "Eb5"),
E5("E-5", "E-5"),
F5("F-5", "F-5"),
F5s("F#5", "Gb5"),
G5("G-5", "G-5"),
G5s("G#5", "Ab5"),
A5("A-5", "A-5"),
A5s("A#5", "Bb5"),
B5("B-5", "B-5"),
C6("C-6", "C-6"),
C6s("C#6", "Db6"),
D6("D-6", "D-6"),
D6s("D#6", "Eb6"),
E6("E-6", "E-6"),
F6("F-6", "F-6"),
F6s("F#6", "Gb6"),
G6("G-6", "G-6"),
G6s("G#6", "Ab6"),
A6("A-6", "A-6"),
A6s("A#6", "Bb6"),
B6("B-6", "B-6"),
C7("C-7", "C-7"),
C7s("C#7", "Db7"),
D7("D-7", "D-7"),
D7s("D#7", "Eb7"),
E7("E-7", "E-7"),
F7("F-7", "F-7"),
F7s("F#7", "Gb7"),
G7("G-7", "G-7"),
G7s("G#7", "Ab7"),
A7("A-7", "A-7"),
A7s("A#7", "Bb7"),
B7("B-7", "B-7"),
C8("C-8", "C-8"),
C8s("C#8", "Db8"),
D8("D-8", "D-8"),
D8s("D#8", "Eb8"),
E8("E-8", "E-8"),
F8("F-8", "F-8"),
F8s("F#8", "Gb8"),
G8("G-8", "G-8"),
G8s("G#8", "Ab8"),
A8("A-8", "A-8"),
A8s("A#8", "Bb8"),
B8("B-8", "B-8"),
C9("C-9", "C-9"),
C9s("C#9", "Db9"),
D9("D-9", "D-9"),
D9s("D#9", "Eb9"),
E9("E-9", "E-9"),
F9("F-9", "F-9"),
F9s("F#9", "Gb9"),
G9("G-9", "G-9"),
// out of midi range
//G9s("G#9","Ab9"),
//A9("A-9","A-9"),
//A9s("A#9","Bb9"),
//B9("B-9","B-9"),
NONE("---", "---"),
UP("^^^", "^^^"),
END("XXX", "XXX"),
;
// 69 = A4.ordinal
val freq: Double = round(440.0 * 2.0.pow((ordinal - 69) / 12.0)) // * 10000.0) / 10000.0
val cycleLength: Double = 1.0 / freq
var sampleDelta: Double = 0.0
fun transpose(semiNotes: Int): Note = if (ordinal >= C0.ordinal && ordinal <= G9.ordinal) {
var result = this.ordinal + semiNotes
result = min(result, G9.ordinal)
result = max(result, C0.ordinal)
fromMidi(result)
} else {
this
}
companion object {
fun fromMidi(midi: Int): Note {
// todo: add check
return entries[midi]
}
fun updateSampleRate(rate: Int) {
println("Setting sample rate to $rate")
for (note in Note.entries) {
note.sampleDelta = (1.0 / rate.toDouble()) / note.cycleLength
}
}
}
}
// freq = 10Hz
// cycleLength = 0.1
// sampleRate = 48000
// sampleDelta = 4800
// (1.0 / freq) * sampleRate