A Skiss framework implementation
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Öppenlab ed89e46027 version bump 3 months ago
.idea play audio in foreground service 3 months ago
app version bump 3 months ago
assets Upload files to 'assets' 4 months ago
gradle/wrapper play audio in foreground service 3 months ago
.gitignore initial commit 7 months ago
LICENSE fix licence and broken readme link 3 months ago
README.md fix licence and broken readme link 3 months ago
build.gradle play audio in foreground service 3 months ago
download.gmi add code signing 3 months ago
gradle.properties initial commit 7 months ago
gradlew initial commit 7 months ago
gradlew.bat initial commit 7 months ago
od.sh build script and working service 3 months ago
oppen_noise_1_0.apk add readme and apk 7 months ago
oppen_noise_2_0_0.apk release with graphics.. 7 months ago
oppen_skissnoise_release_1_0_3.apk build script and working service 3 months ago
settings.gradle initial commit 7 months ago

README.md

Noise

Noise

A noise generator and audio visualiser for Android based OS.

Install 1.0.3 (Android 6.0 API23 Android M/Marshmallow)

About

The Noise project name refers to both the audio and graphics:

Graphics

The graphics are generated from a Perlin Noise flow field with additional lensing (noise scales up with distance from origin/screen centre), an FFT implementation analyses input from the device microphone and excites the particles in 16 bands (high frequencies in the centre, low frequencies at the screen edge)

The ui uses Skiss for the graphics and a 3rd party library, Noise, for the FFT analyisis of the microphone input. There's also a Kotlin Coroutine Flow implementation with debounce for the FFT, an RxJava free alternative to the demo included with the Noise library.

Audio

Most (if not all) the noise apps in Google Play actually just loop Mp3 files. This project generates noise randomly, and applies various filters to shape the sound.

To keep things smooth and reduce processor load the audio is generated in 5 second chunks, this makes realtime filtering of the audio impossible, but Android's AudioTrack does allow you to change playback rate in realtime, the on-screen slider allows you to change the rate (and therefore pitch) of the noise.

To keep the audio subtly shifting there's an additional 'Perlin Walk' where the playback rate meanders up and down from it's current value.

Licence

European Union Public Licence v. 1.2

Most of the Kotlin algorithms were developed from implementations in other languages, each class (see the audio noise package) will refer to the original author and source in the file header.