GithubHelp home page GithubHelp logo

Comments (6)

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024 1

Is it possible to implement something similar to thermaltake's gaming mode?

Not sure which part do you want from the gaming effect, but anything can be added.
I thought about adding a "bar" sound effect, which would display average "loudness" in a bar instead of mapping each led to a frequency.

In the included sound effect mode everything works just great but some leds look very sensitive sometimes

Yes that effect requires some trial and error. But I'd rather leave it very configurable so the user can do what he wants instead of adding multiple preset effects.
I implemented that effect a long time ago kinda as a test so the math there might not be best suited for this usecase, I just matched the FFT example from CSCore project.

Also is it possible to make it look like just a static color that changes gradient without the extra stuff?

Not sure what you mean.

Is it possible to add a small delay to a specific fan to make aurora look a bit different between them?

Not currently, you could add rotate modifier to the ports to make them slightly different.
But neat idea, I'll see if its feasible to add. I think easiest would be to add a "DelayEffect" that wraps another effect and just outputs the wrapped effect colors with a delay.

How can I control each one of the leds seperately?

Again not sure what you mean, you can set the colors by hand for each led with StaticColorEffect with "PerLed" color provider.

Also few notes for your config above:

  • "DpsgSpeedController" can be only used with thermaltake PSU's, it does not work with anything else. Preferably you should use the PwmSpeedController
  • You dont need to add "LerpLedColorModifier" since almost all effects will generate the correct amount of colors to match the led count. It is mainly used for effects like "RazerConnectEffect" which generate static amount of colors, in that case 4.
  • The config looks messed up because the project uses 2 spaces for json indentation, but you added tabs which are commonly 4 spaces. It does not matter at all.

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024 1

It determines how the raw FFT values are scaled for the spectrum:

case ScalingStrategy.Decibel:
value0 = ((20 * Math.Log10(fftBuffer[i]) - MinDbValue) / DbScale) * actualMaxValue;
break;
case ScalingStrategy.Linear:
value0 = fftBuffer[i] * ScalingFactor * actualMaxValue;
break;
case ScalingStrategy.Sqrt:
value0 = Math.Sqrt(fftBuffer[i]) * ScalingFactor * actualMaxValue;
break;

Like I said that plugin probably needs another look to check the math, I dont fully remember/understand it.

I'll make this issue a feature request, but not sure when this will be implemented. You can also make your own effects pretty easy if you want.

from ttcontroller.

BillisC avatar BillisC commented on July 26, 2024

Thanks for the fixes and for the quick reply ;) About the gaming mode yeah I meant that bar that you said. But it would be a good idea to add frequencies too, some people like me may prefer to see it only with sub-bass. One more question, what's the difference between decibels, linear and sqrt? I just choose the one that looks better but what do they actually do?

from ttcontroller.

BillisC avatar BillisC commented on July 26, 2024

That's all for now, I appreciate your help 👍

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Pushed a build with the support for delaying ports: https://ci.appveyor.com/project/MoshiMoshi0/ttcontroller/builds/36831613/artifacts

Usage:

        "ColorModifiers": [
          {
            "Type": "DelayPortModifier",
            "Config": {
              "FrameCount": 63
            }
          }
        ]

The "FrameCount" determines the delay, with default config each frame is 32ms (30hz/fps), so delaying by 63 frames makes it about 2s.

Also I changed the names of all modifiers, so if you use any, change LedColor to Port in the name: LerpLedColorModifier -> LerpPortModifier

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Pushed a build with refactored sound effect: https://ci.appveyor.com/project/MoshiMoshi0/ttcontroller/builds/36920583/artifacts
There are now two separate sound effects, "LedSpectrumSoundEffect" is the renamed "SoundEffect", and a new "BarSpectrumSoundEffect".

They share the same settings that control the fft math. With "BarSpectrumSoundEffect" you want to target a small frequency range, 50-250 in the example, the effect then averages the frequency values to calculate the bar length. "FrequencyPointCount" determines how many fft points will be generated in the specified frequency range.
This is what I think thermaltake different sound modes do, they target low/mid/high frequencies for different types of sound.

Example:

        {
          "Type": "BarSpectrumSoundEffect",
          "Config": {
            "Mirror": true,
            "FrequencyPointCount": 4,
            "BackgroundColor": {
              "Full": [16, 16, 16]
            },
            "BarColor": {
              "Gradient": [
                [0, [0, 255, 0]],
                [1, [0, 0, 255]]
              ]
            },

            "UseAverage": false,
            "MinimumFrequency": 50,
            "MaximumFrequency": 250,
            "ScalingStrategy": "Linear",
            "ScalingFactor": 9,
            "IsXLogScale": false,
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }

from ttcontroller.

Related Issues (20)

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.