Audio visualizer library for Android. Written in Kotlin. Aim for:
Light-weight, Flexible, Easy.
Tested on Huawei MediaPad M3, performance was around 50~60 fps. (It depends)
(Basic) Waveform, FftBar, FftLine, FftWave, FftWaveRgb
(Basic) FftCircle, FftCircleWave, FftCircleWaveRgb
Glitch+Beat+Rotate, SimpleIcon, FftCircle
Shake, SimpleIcon, FftCircleWaveRgb, Waveform
Shake, Background, FftCircle
You can watch it on my Google Drive. Full-screen+HD recommended!
☆ I don't own the music, icon and wallpaper. For demonstration purpose only.
While the library isn't quite ready yet, feel free to open an issue if you have any problem/suggestion :heart:
Star my project if you like it! :star2:
Stay tune!!
Just for reference \(;゚∇゚)/ Some of them might not accurate, but you will get the idea.
bitmap = Bitmap class. Doesn't have a default param value.
text = String. "" by default.
painter = Painter class. Doesn't have a default param value.
painters = List of Painter class. Doesn't have a default param value.
paint = Paint class. Lots of customization could be done here. For example, change color, style, stroke_width ...
startHz = Start Frequency
endHz = End Frequency
num = Number of Bars/Bands; In case of "Wave", number of slices. (The more slices, the better quality of the curves = computational heavier)
interpolator = The method of interpolation. "li" for Linear, "sp" for Spline.
side = The side where the drawing should appear. "a" for Side A (= up/out), "b" for Side B (= down/in), "ab" for Both Side
mode = *Might be changed in the future. Mode. "mirror" for Mirror mode.
xR = The ratio of X position to the canvas.width (= the width of the visualizer's view) For example, 0f mean the start/left, while 1f mean the end/right of the screen.
yR = The ratio of Y position to the canvas.height (= the height of the visualizer's view) For example, 0f mean the top, while 1f mean the bottom of the screen.
wR = The ratio of width to the canvas.width
hR = The ratio of height to the canvas.height
X = *Change confirmed. The X position
Y = *Change confirmed. The Y position
gapX = *Might be changed in the future. The width of the gap.
baseR = *Might be changed in the future. The ratio of radius to the canvas.width
ampR = The rate of amplification. 1f by default.
beatAmpR = *Might be changed in the future. The rate of amplification of beat.
peak = *Might be changed in the future. The threshold of beat.
rpm = Rotation per minute.
enableBoost = *Might be changed in the future. To use "Power Spectrum" instead.