Download all waveform at onece

Feature description:

Need to have an option which downloads all waveform at once instead of downloading at playback

Problem solved:

It resolve double data useage if already have wavform for that song

Brought benefits:

Reducing data usage if using mobile data or hotspot

Other application solutions:

 

 

Additional description and context:

 

 

Screenshots / Mockup:

    

3 Likes

There’s is no waveform extraction on mobile data.

The only use case where batch creating the waveforms should have an advantage that I can think of would be for offline cached songs. Assuming that you are in reach of a charger when you offline cache, creating the waveforms then instead of when you actually use symfonium out in the wild might save a bit of battery. I don’t know if that would be significant tho.

2 Likes

How long are the waveforms taking to come up? Mine usually appear within a few seconds, the exception being when a song has not downloaded into the playback cache. I would imagine that isn’t avoidable, how can it analyze a file that it hasn’t finished downloading yet?

I’d really like this feature, usually it takes like 30 seconds to show the waveform, and I really like seeing it to have a better idea of what the song’ll be like. This is including for songs that are offline cached

In my use case (according to the automatic offline cache rule, my songs are deleted after one listen) it would be ideal to get all the waveforms for all the songs on the device or even in the library (I don’t think they take up much space)

It would also help a lot with the new smart fades feature. In the current format - when a song is only in the queue - its waveform is not scanned and the fade doesn’t work properly unfortunately

Or, as an option, get only the waveforms of cached songs

The wave forms are extracted as needed and work without the need to have them extracted before.

Ok, is it possible to add an option to extract waveform from the current song and the next one? Therefore, crossfades will work every time

This is already what is done if you enable smart fades.

Open a proper issue if you have issues ?

1 Like

Done

Are waveforms extracted to permanent cache? I’d like to be able to extract them all at once permanently so I know that there’s no chance the app will need to extract them later (when I’m on on battery)

1 Like

Extracted as needed

disclaimer: obviously need is a strong word, since I technically don’t need a music player at all! But I need one in order to listen to music

In this case, I think it needs to be pre-extracted in order to display instantly.

Even with offline files (i use local storage for my source), there’s still a several second delay before the waveform is displayed. I want it to display immediately, as soon as the song has started, and currently extracting “as needed” isn’t as fast as desired. I also have extra storage space, so i’d rather precompute the waveforms while charging, and then simply load them later while I’m on battery. So in order to have instant, minimal battery impact waveforms, I would argue that they need to be pre-computed

Even if enabling smart fade preloads the next tracks waveform, if I randomly start playing a new track then there will still be a delay in waveform generation. Preloading all waveforms is needed in order to always have them instantly displayed. I also don’t want tracks to fade, I want the entire track to play from start to finish before switching to the next one. Currently the docs are unclear about whether enabling smart fade but disabling both curves does that or not

@Tolriq would it be possible for the user to pre-generate the waveform files and put them in the same folder as a song, with the same filename, like how lyrics files are? And then if that file exists, symfonium will load it, otherwise it’ll use the current generation logic?

Like is there an ffmpeg command that would generate the waveform file in the format symfonium uses?

No there’s not, can you stop spamming about this ?

This is a mobile application not a media server that you can let run during a week or more to extract data …

One last idea: lazy-load permanent caching for the waveform, to avoid calculating it multiple times for the same song, and so it’s not running for a week in the background to generate the complete cache in one go.

Sorry for being annoying, I’ll stop asking now. Thanks for the great app