jeffshee / NextGenVisualizer

Audio visualizer library for Android. Written in Kotlin. Light-weight, Flexible, Easy.
Apache License 2.0
59 stars 15 forks source link
android android-library audio-visualizer kotlin visualizer

[Beta] NextGenVisualizer

Audio visualizer library for Android. Written in Kotlin. Aim for:

Light-weight, Flexible, Easy.

Preview

Tested on Huawei MediaPad M3, performance was around 50~60 fps. (It depends)

Gif

(Basic) Waveform, FftBar, FftLine, FftWave, FftWaveRgb

(Basic) FftCircle, FftCircleWave, FftCircleWaveRgb

Glitch+Beat+Rotate, SimpleIcon, FftCircle

Shake, SimpleIcon, FftCircleWaveRgb, Waveform

Shake, Background, FftCircle

Video

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.

Please!! (。>u<。)

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!!

Parameter's Naming Convention

Just for reference \(;゚∇゚)/ Some of them might not accurate, but you will get the idea.

  1. bitmap = Bitmap class. Doesn't have a default param value.

  2. text = String. "" by default.

  3. painter = Painter class. Doesn't have a default param value.

  4. painters = List of Painter class. Doesn't have a default param value.

  5. paint = Paint class. Lots of customization could be done here. For example, change color, style, stroke_width ...

  6. startHz = Start Frequency

  7. endHz = End Frequency

  8. num = Number of Bars/Bands; In case of "Wave", number of slices. (The more slices, the better quality of the curves = computational heavier)

  9. interpolator = The method of interpolation. "li" for Linear, "sp" for Spline.

  10. side = The side where the drawing should appear. "a" for Side A (= up/out), "b" for Side B (= down/in), "ab" for Both Side

  11. mode = *Might be changed in the future. Mode. "mirror" for Mirror mode.

  12. 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.

  13. 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.

  14. wR = The ratio of width to the canvas.width

  15. hR = The ratio of height to the canvas.height

  16. X = *Change confirmed. The X position

  17. Y = *Change confirmed. The Y position

  18. gapX = *Might be changed in the future. The width of the gap.

  19. baseR = *Might be changed in the future. The ratio of radius to the canvas.width

  20. ampR = The rate of amplification. 1f by default.

  21. beatAmpR = *Might be changed in the future. The rate of amplification of beat.

  22. peak = *Might be changed in the future. The threshold of beat.

  23. rpm = Rotation per minute.

  24. enableBoost = *Might be changed in the future. To use "Power Spectrum" instead.