Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_wave_seekbar (Read 810143 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_wave_seekbar

Reply #225
Yeah they're one time only, they look something like this:
FOO_LASTFM_RADIO://play.last.fm/user/c8878bea8ecb7e714adb3d101fdfe64a.mp3LASTFM

Thanks

foo_wave_seekbar

Reply #226
very nice component.

request: please add a timing tooltip (or another indicator) on x milliseconds mouseover (and when seeking)

foo_wave_seekbar

Reply #227
request: please add a timing tooltip (or another indicator) on x milliseconds mouseover (and when seeking)

In the todo list since forever, will do once I can be bothered reading up on how to do tooltips with WTL, and get some of that mythical Free Time.
Stay sane, exile.

foo_wave_seekbar

Reply #228
[OT] Hey Zao, is that you?  http://tr.im/LkOR - Did you recognize Google Streetview has been in your country  I love this service, unfortunately we'll see Germany there not soon I guess. Germany basically is a rather anti-progressive country IMO, people keep on complaining and complaining. I'm not surprised many non-german speaking people in the world know the german word "Verboten", which is sad.

foo_wave_seekbar

Reply #229
request: editable boolean expression (just like foo_skip) to specify whether to skip analyzing tracks

foo_wave_seekbar

Reply #230
I do not quite want to pollute the worker threads with accessing tags, let alone titleformatting.
I intend to provide preferences to exclude protocols, much like the current hardcoded set.
Stay sane, exile.

foo_wave_seekbar

Reply #231
This is an excellent component.  Many thanks for making this available.

Since installing it, however, I am getting a few of the following error popups:

Could not update tags (Sharing violation) on: "blah blah blah.m4a"

I don't think that this component actually writes anything to the track itself, but maintains a separate database (right?).  I suspect that it's a conflict with another component I have installed (http://www.hydrogenaudio.org/forums/index.php?showtopic=76968) that is attempting to write a lyric tag to the file at the same time as your seekbar component is reading from the file during its initial analysis.

Could there be any other explanation?  Thing is, it doesn't happen every time a new track is played, and it's often the case that a lyric tag is written and the seekbar analysis is performed concurrently (well, roughly at the same time) without any conflict; maybe the timing is such that the lyric is written soon after the seekbar component has done its stuff.

Thanks,

Mike

foo_wave_seekbar

Reply #232
Could there be any other explanation?  Thing is, it doesn't happen every time a new track is played, and it's often the case that a lyric tag is written and the seekbar analysis is performed concurrently (well, roughly at the same time) without any conflict; maybe the timing is such that the lyric is written soon after the seekbar component has done its stuff.

most probably when the lyrics are getting written on the file tags, the operation fails because wave_seekbar is scanning the file.
would be better to get lyrics and track signatures at different times 

foo_wave_seekbar

Reply #233
Could not update tags (Sharing violation) on: "blah blah blah.m4a"
Could there be any other explanation?  Thing is, it doesn't happen every time a new track is played, and it's often the case that a lyric tag is written and the seekbar analysis is performed concurrently (well, roughly at the same time) without any conflict; maybe the timing is such that the lyric is written soon after the seekbar component has done its stuff.

Your interpretation is likely correct. It only reads the track while decoding and never writes anything to it. The act of decoding it is enough to block other usage of it.
I have no way of detecting that someone is interested in writing to something I am busy decoding.
I already make an effort to not have the input open longer than necessary.
Cloning the file and decoding from a copy would still have a vulnerable period, so that wouldn't help.
Stay sane, exile.

foo_wave_seekbar

Reply #234
There is a glitch when playing MIDI files, it thinks to much and slows down foobar.

BTW, it would be nice to see MIDI notes in wave seekbar ^^ just sayin'

foo_wave_seekbar

Reply #235
Rendering MIDI files taking up CPU is something you have to take up with the author of whatever MIDI component you use.
As for visualizing notes, that's nothing I have access to, nor want to.
Stay sane, exile.

 

foo_wave_seekbar

Reply #236
I have no way of detecting that someone is interested in writing to something I am busy decoding.


Didn't think so.  I think the only solution would be for the lyric component to delay writing the lyric to the file... a 5 second delay would be plenty in my experience so far for wave_seekbar to have finished.

Thanks again for this component.  It is very interesting to see the whole dynamic of a track laid out before you.

Mike

foo_wave_seekbar

Reply #237
Introducing delays to the left and right will just modify the probability of a collision, not solve it.
I'd prefer it if the lyrics component author handled such things by either retrying or storing the data in a friendlier way.

What file format is this? Some people tell me that they have no trouble whatsoever to update their tags while playing, including RG and interactive editing via properties.
Stay sane, exile.

foo_wave_seekbar

Reply #238
I think the only solution would be for the lyric component to delay writing the lyric to the file...

It's not only about lyrics, but any kind of tagging, i.e. using discogs/muscibrainz tagger or tagging yourself some new (unprocessed) release
Maybe there should be option to switch the component like - don't process items not in media library, or something like that

foo_wave_seekbar

Reply #239
I'd prefer it if the lyrics component author handled such things by either retrying or storing the data in a friendlier way.


There is an option inthe component to store lyrics in a separate file.  But I prefer the lyric to travel with the track.  But yes, it would be better to try, and retry if the file is open by another process.

What file format is this? Some people tell me that they have no trouble whatsoever to update their tags while playing, including RG and interactive editing via properties.


There isn't usually a problem updating tags while playing; I update my (embedded) ratings all the time when the track is playing.  I don't know how foobar2000 handles reading of the track for output: perhaps it makes a temporary duplicate and reads from that, leaving other components to do what they like with the underlying file.

Quote from: 2E7AH link=msg=0 date=
It's not only about lyrics, but any kind of tagging


Of course.  The problem is that both this component and the lyric component trigger when the track starts, and therefore there is a likelihood of conflict.

foo_wave_seekbar

Reply #240
Maybe there should be option to switch the component like - don't process items not in media library, or something like that

That has been suggested before and I will likely add a preferences toggle for that.
Stay sane, exile.

foo_wave_seekbar

Reply #241
Do you have a description somewhere of what the displayed signatures actually represent -- can be fairly technical, I can cope with it !  It's just that a couple of signatures have surprised me a little -- but it's just my lack of understanding of what they truly represent.

Thanks,

Mike

foo_wave_seekbar

Reply #242
Each song is chopped into N pieces (N=2048?). Each piece is analyzed for three values: peak max, peak min, and RMS. This results in N*3 values, and is the basis of the display.

foo_wave_seekbar

Reply #243
OK, so how do you get the two traces from the three values?

Mike

foo_wave_seekbar

Reply #244
The process is done on a mono channel. I mix any higher channel counts down to mono before analysis, as mentioned a few pages back.

The out-of-the-box visualisations are centered around zero DC and extend to +1 amplitude towards the top and -1 amplitude at the bottom of the window.

The upper bound of the waveform is formed by the Maximum values, the lower bound of the waveform is formed by the Minimum values and the RMS values are symmetrical around zero.

Any surprises you see are likely due to that it picks the min/max value over each chunk, and that I mixdown before analyzing. I have pondered doing the analysis per-channel and doing the mixdown later.
Stay sane, exile.

foo_wave_seekbar

Reply #245
Maximum and Minimum of what? 

So the overall separation of the two traces is meant to represent loudness, while the variation in each trace is meant to represent variation in Maximum value (for upper trace) and Minimum value (for lower trace)?  It's just that some tracks seem overall to be fairly quiet, but the separation between tracks is quite high, and in some tracks the variation in audio seems quite low but the traces show a high variation.

And what determines where +1 and -1 are -- is it normalised per track, or is it consistent across tracks?  Sometimes, for particularly "messy" traces, the trace appears as if it is oscillating so much that it is off the scale.  Do you take account of replaygain values?

Thanks,

Mike

foo_wave_seekbar

Reply #246
Maximum and minimum of decoded floating point audio amplitude.
As I said earlier, tracks where the channels are out of phase will bloat or reduce the measurements, as I work on the downmixed data.

An amplitude of 1.0 is equivalent to the maximum value representable in a regular integer-based format. Similarly, -1.0 is the minimum value representable in a integer-based format. Unless audio is glitched or decoders overshoot, you will be much outside [-1.0, 1.0].

It is not normalized in any form, it's the raw downmixed output from the decoder. All four ReplayGain values are available but they are not taken into account in the default effect or frontends.
Stay sane, exile.

foo_wave_seekbar

Reply #247
"Bug": When foo_wave_seekbar is installed on a machine without the DirectX redist, clicking on the place where the wave seekbar should be causes the current track to restart.

foo_wave_seekbar

Reply #248
Would it be possible to add an option *not* to write signatures to the database?  On my system it only takes ~ two seconds to generate the signature after the new track starts, and it really doesn't bother me that the signature only flashes up after two seconds.  Otherwise the signature database will continue to grow and grow... mine is up to 7 GB already and I've only been using it on and off for a few days now.

Mike

foo_wave_seekbar

Reply #249
mine is up to 7 GB already and I've only been using it on and off for a few days now.
weird, i'm using this component since the official release and my "wavecache.db" file is only 83.8MB...