WaveformStyle

sealed class WaveformStyle

Sealed class representing different waveform visualization styles.

Each style can be customized with its own parameters to achieve various visual effects.

Available Styles

  • Bar - Classic vertical bars (default)

  • Spike - Thin spikes like SoundCloud

  • Line - Smooth connected line graph

  • Mirrored - Symmetric bars above and below center

  • Filled - Filled area under the waveform

Example Usage

// Default bar style
AudioWaveform(
amplitudes = amplitudes,
style = WaveformStyle.Bar()
)

// SoundCloud-like spikes
AudioWaveform(
amplitudes = amplitudes,
style = WaveformStyle.Spike(width = 1.dp, spacing = 2.dp)
)

// Mirrored for recording visualization
AudioWaveform(
amplitudes = amplitudes,
style = WaveformStyle.Mirrored()
)

Inheritors

Types

Link copied to clipboard
data class Bar(val width: Dp = 3.dp, val spacing: Dp = 2.dp, val cornerRadius: Dp = 1.5.dp, val alignment: WaveformAlignment = WaveformAlignment.Center, val minHeight: Dp = 2.dp) : WaveformStyle

Classic vertical bar visualization.

Link copied to clipboard
data class Filled(val smoothing: Float = 0.3f, val alignment: WaveformAlignment = WaveformAlignment.Bottom) : WaveformStyle

Filled area visualization.

Link copied to clipboard
data class Line(val strokeWidth: Dp = 2.dp, val smoothing: Float = 0.5f, val cap: StrokeCap = StrokeCap.Round) : WaveformStyle

Smooth connected line visualization.

Link copied to clipboard
data class Mirrored(val barWidth: Dp = 3.dp, val barSpacing: Dp = 2.dp, val gap: Dp = 2.dp, val cornerRadius: Dp = 1.5.dp) : WaveformStyle

Mirrored bar visualization.

Link copied to clipboard
data class Spike(val width: Dp = 2.dp, val spacing: Dp = 1.dp, val cap: StrokeCap = StrokeCap.Round, val alignment: WaveformAlignment = WaveformAlignment.Center) : WaveformStyle

Thin spike visualization similar to SoundCloud.