Add orx-minim
This commit is contained in:
31
orx-jvm/orx-minim/src/demo/kotlin/DemoFFT01.kt
Normal file
31
orx-jvm/orx-minim/src/demo/kotlin/DemoFFT01.kt
Normal file
@@ -0,0 +1,31 @@
|
||||
import ddf.minim.Minim
|
||||
import ddf.minim.analysis.FFT
|
||||
import ddf.minim.analysis.LanczosWindow
|
||||
|
||||
import org.openrndr.application
|
||||
import org.openrndr.extra.minim.minim
|
||||
import org.openrndr.math.map
|
||||
import kotlin.math.ln
|
||||
|
||||
fun main() {
|
||||
application {
|
||||
configure {
|
||||
width = 1280
|
||||
height = 720
|
||||
}
|
||||
|
||||
program {
|
||||
val minim = minim()
|
||||
val lineIn = minim.getLineIn(Minim.MONO, 2048, 48000f)
|
||||
val fft = FFT(lineIn.bufferSize(), lineIn.sampleRate())
|
||||
fft.window(LanczosWindow())
|
||||
extend {
|
||||
fft.forward(lineIn.mix)
|
||||
for (i in 0 until 200) {
|
||||
val bandDB = 20.0 * ln(2.0 * fft.getBand(i) / fft.timeSize())
|
||||
drawer.rectangle(i * 5.0, height / 2.0, 5.0, bandDB.map(0.0, -150.0, 0.0, -height / 8.0))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
19
orx-jvm/orx-minim/src/main/kotlin/Minim.kt
Normal file
19
orx-jvm/orx-minim/src/main/kotlin/Minim.kt
Normal file
@@ -0,0 +1,19 @@
|
||||
package org.openrndr.extra.minim
|
||||
|
||||
import ddf.minim.Minim
|
||||
import org.openrndr.Program
|
||||
import java.io.File
|
||||
|
||||
class MinimObject {
|
||||
fun sketchPath(fileName:String) = "./"
|
||||
fun createInput(fileName: String) = File(fileName).inputStream()
|
||||
}
|
||||
|
||||
fun Program.minim(): Minim {
|
||||
val minim = Minim(MinimObject())
|
||||
ended.listen {
|
||||
minim.stop()
|
||||
|
||||
}
|
||||
return minim
|
||||
}
|
||||
Reference in New Issue
Block a user