Giter Site home page Giter Site logo

Templates about clubber HOT 11 CLOSED

wizgrav avatar wizgrav commented on May 29, 2024
Templates

from clubber.

Comments (11)

wizgrav avatar wizgrav commented on May 29, 2024 1

No question, this is a bug, more than one actually. Thank you for bringing this to my attention. It is triggered by the configuration of the adapt option. Fixing it is easy but I'm investigating it a bit more. In the meanwhile, I think my description for the adapt option isn't clear (documentation PRs are most welcome).

The smooth option needs to be the same length as the template, the number of measurements produced. The adapt option takes always 4 numbers. The first one is the offset, relative to the range low-high, of the lower bound. The offset is from the average power of the notes. The second number sets the smoothing factor for the lower bounds movement. The other two numbers do the same for the upper bound. The upper bound generally needs to be more than 0.5. You can experiment in the tool and see how the specturm window behaves when the values are changed.

These are irelevant to the fact that this is a bug. It was just triggered by the 0.1 values provided to the upper bound which forced it to stay too low. This uncovered the bug because the power of the strongest note was not taking the upper bound into account, it assumed it would usually match it.

from clubber.

alvarobyrne avatar alvarobyrne commented on May 29, 2024 1

@wizgrav Thank you man. It seems to work well but I wont be able to confirm until some time next week. I want to take a look at how each template is computed and write a bit about it, hopefully add some wiki page(s) or extend the main readme.md file, but as I said before, wont be able to do so soon. I insist: thank you.

from clubber.

alvarobyrne avatar alvarobyrne commented on May 29, 2024 1

I'll consider/think about "bundling existing examples to be used a an online testing utility". I'm not sure but I'll think about doing so.

from clubber.

wizgrav avatar wizgrav commented on May 29, 2024

@alvarobyrne I did a fix, it seems to work normally now http://jsdo.it/ygravezas/QAZC please confirm so we can close this. Also the last two template descriptions were wrongly swapped, this is also fixed

from clubber.

alvarobyrne avatar alvarobyrne commented on May 29, 2024

Hi. So I have done these two at jsdo.it:
audio
audio synthesis
I don't understand why some templates get locked when band bounds are not affected. This is easier to see with the second demo: when changing the volume of synthesized audio.

from clubber.

wizgrav avatar wizgrav commented on May 29, 2024

The audio volume will affect the values returned from the web audio analyzer. Gain etc should be applied after fetching the fft data. You can achieve this with clubber by instantiating it like:

var clubber = new Clubber({ mute: true }); // It will not connect the internal analyzer to audio out

clubber.listen(audioNode); // You can also pass webaudio nodes instead of media elements

// Apply gain etc to audioNode and finally output to webAudioContext.destination

from clubber.

wizgrav avatar wizgrav commented on May 29, 2024

The second example is great for checking the note detection, your examples in general make me think of the value of a sort of test suite, would you want to tackle that?

The strongest and weakest note indexes keep their last values when no notes have been active in the window defined by the bounds. They don't zero out when the track is silent, should this behavior be changed? I felt is was more proper at the time but I'm open. Is this what you mean by locked?

I also have the impression that the actual bounds don't update to the controls values until the first time the controls are changed, the defaults only have a range of 24-34 midi which is pretty narrow and not even a full octave so the note indexes will not cover the whole range

from clubber.

alvarobyrne avatar alvarobyrne commented on May 29, 2024

Yes, that is what I mean by locked. I believe they shouldn't get locked. Although it makes me think that zeroing them would be equivalent to saying that the "0th note is the strongest/weakest", so may be setting it/them to null might be appropriate, I don't know.

Tackling a "sort of test suite"? Would you set it and i'll program it? To tell you the truth I have always thought of testing as boring, but in this case it makes me doubt. In this case "I am open".

I'm not sure if I fully understand the last paragraph. I could make and effort but could you please rephrase it or expand upon it, please.

Thanks for you attention.

from clubber.

alvarobyrne avatar alvarobyrne commented on May 29, 2024

Not relevant to issue: there is typo on line 176 of http://jsdo.it/ygravezas/4yHC: obviously it should spell 'triangle' instead of 'traingle'.

from clubber.

wizgrav avatar wizgrav commented on May 29, 2024

Well I'm in the same thought train here, writing tests is boring. What I really meant was that you could bundle your existing examples to be used as an online testing utility. That would be very valuable.

Regarding the note index lock, I think I'll provide a flag on bands that would switch between the two behaviors(locked or zeroing the values when silent).

Regarding the last paragraph scrap it, the values are indeed set according to the controls

from clubber.

alvarobyrne avatar alvarobyrne commented on May 29, 2024

Closing this issue due to recent code base changes. Congratulations on the updates!

from clubber.

Related Issues (14)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.