feat(US-03): generate 880 Hz sine wave with BeepGenerator
This commit is contained in:
parent
5897d2b77b
commit
4d72536d78
1 changed files with 20 additions and 0 deletions
20
app/src/main/kotlin/net/jeena/pacer/BeepGenerator.kt
Normal file
20
app/src/main/kotlin/net/jeena/pacer/BeepGenerator.kt
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
package net.jeena.pacer
|
||||||
|
|
||||||
|
import kotlin.math.sin
|
||||||
|
import kotlin.math.PI
|
||||||
|
|
||||||
|
object BeepGenerator {
|
||||||
|
|
||||||
|
const val SAMPLE_RATE = 44100
|
||||||
|
const val FREQUENCY = 880.0
|
||||||
|
|
||||||
|
fun generateBeep(durationMs: Int): ShortArray {
|
||||||
|
val numSamples = SAMPLE_RATE * durationMs / 1000
|
||||||
|
val samples = ShortArray(numSamples)
|
||||||
|
for (i in 0 until numSamples) {
|
||||||
|
val angle = 2.0 * PI * FREQUENCY * i / SAMPLE_RATE
|
||||||
|
samples[i] = (sin(angle) * Short.MAX_VALUE).toInt().toShort()
|
||||||
|
}
|
||||||
|
return samples
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue