HN user

mfcc64

149 karma
Posts29
Comments13
View on HN
github.com 5mo ago

Show HN: Wc-template – create custom elements using template and link

mfcc64
1pts0
github.com 8mo ago

Show HN: YouTube Musical Spectrum is now available on Spotify and SoundCloud

mfcc64
2pts0
github.com 1y ago

Show HN: YouTube Musical Spectrum as a DAW Plugin

mfcc64
3pts0
jsperf.app 2y ago

JavaScript Static vs. Dynamic Object

mfcc64
2pts1
github.com 2y ago

Show HN: I made helpers for Web Components

mfcc64
49pts11
airlive.net 2y ago

Both pilots of an A320 fell asleep in the cockpit for 28 minutes

mfcc64
109pts119
news.ycombinator.com 2y ago

Show HN: YouTube Musical Spectrum Bookmarklet

mfcc64
1pts0
github.com 2y ago

Show HN: YouTube Musical Spectrum – visualizer for YouTube with musical notes

mfcc64
2pts0
www.youtube.com 3y ago

Relationship between Mandelbrot set and Julia set [video]

mfcc64
1pts0
arstechnica.com 3y ago

It took 48 hours, but the mystery of the mass Asus router outage is solved

mfcc64
71pts22
mfcc64.github.io 3y ago

Show HN: I've built a realtime audio spectrogram

mfcc64
2pts0
github.com 3y ago

Show HN: YouTube Musical Spectrum – audio visualizer with musical notes

mfcc64
1pts0
www.youtube.com 3y ago

Is C = 0.25 part of Mandelbrot set?

mfcc64
2pts1
medium.com 3y ago

Tesla Is in Deep Trouble

mfcc64
11pts2
github.com 3y ago

Show HN: I made showcqt-element – an HTML custom element for audio visualization

mfcc64
3pts0
github.com 3y ago

Show HN: Web Component "showcqt-element" – showcqt audio visualization made easy

mfcc64
1pts0
github.com 3y ago

Show HN: Showcqt-JS – a JavaScript audio visualization engine library

mfcc64
2pts0
www.thejakartapost.com 3y ago

Govt blocks Yahoo, Steam, PayPal for failing to comply with licensing policy

mfcc64
3pts0
www.wolframalpha.com 4y ago

Bad Math at Wolfram Alpha (Or Not?)

mfcc64
9pts10
www.xda-developers.com 4y ago

Google rebrands Android security to ‘Protected by Android’

mfcc64
1pts1
timesofindia.indiatimes.com 4y ago

Couple sue son and bahu for ‘depriving them of grand kid’

mfcc64
10pts3
seekingalpha.com 4y ago

Bitcoin: The Return to Reality

mfcc64
1pts0
www.vice.com 4y ago

Woman Performing Rain-Stopping Ritual Becomes Unlikely Star of MotoGP

mfcc64
1pts0
mfcc64.github.io 4y ago

Show HN: WebAssembly SIMD benchmark on showcqt-js

mfcc64
1pts1
fractalforums.org 4y ago

CCC – Covid, conspiracy or chaos theory

mfcc64
1pts0
www.thejakartapost.com 4y ago

Man takes selfies everyday for 5 years, makes crypto fortune

mfcc64
1pts0
www.xda-developers.com 4y ago

How Chrome Killed Internet Explorer: Extensions, Android, and Innovation

mfcc64
3pts0
www.theregister.com 4y ago

'Not great, but usable': GNOME desktop boots on Asahi Linux for Apple M1

mfcc64
3pts0
github.com 4y ago

Show HN: YouTube Musical Spectrum – visualizer for YouTube with musical notes

mfcc64
72pts32

Dear HN,

This is a simple benchmark to compare SIMD and non-SIMD WebAssembly performance using showcqt-js [1]. Please wait a moment until the benchmark completes, indicated by avg entry (w = avg, h = avg, r = avg).

The result on my laptop:

    chrome:
    name =  reference, calc =     444 us, render =    2211 us, total =    2655 us
    name =   standard, calc =     450 us, render =    1692 us, total =    2141 us
    name =       simd, calc =     244 us, render =     484 us, total =     728 us
    firefox:
    name =  reference, calc =     508 us, render =    2522 us, total =    3030 us
    name =   standard, calc =     503 us, render =    1575 us, total =    2078 us
    name =       simd, calc =     310 us, render =     568 us, total =     878 us
[1] https://github.com/mfcc64/showcqt-js

So this is some sort of compromise to increase speed?

Partially. The main purpose is to increase time domain accuracy on low frequency. If you want to do experiment on window length (in time domain), use ffmpeg showcqt filter (https://ffmpeg.org/ffmpeg-filters.html#showcqt). showcqt-js window length is hardcoded to tc=0.33 attack=0.033 and tlength='st(0,0.17); 384tc / (384 / ld(0) + tcf /(1-ld(0))) + 384tc / (tcf / ld(0) + 384 /(1-ld(0)))' (https://github.com/mfcc64/mpv-scripts/blob/a0cd87eeb974a4602...).

Have you thought about implementing in WASM?

It is implemented in WASM.

Agreed, but for a visualisation, it could just be a parameter just for the user to mess with.

If you want to do experiment on it, showcqt.js exposes intermediate color data cqt.color[]. It can be modified arbitrarily, including autocorrelation. If some day I do experiment on it and find that the result is satisfying, maybe I'll include it in YouTube Musical Spectrum.

linear STFT's window length in time domain = k (constant)

CQT's window length in time domain = k/f

showcqt-js window length in time domain = a * b / (a / c + b * f / (1 - c)) + a * b / (b * f / c + a / (1 - c))

whera a = 384, b = 0.33, c = 0.17

I also apply asymmetric window to reduce latency before doing VQT.

I think having an autocorrelation option on the visualization could be cool, as it could reduce the spikes from the overtones (and also show a missing fundamental). But I think you'd need a different convolution for each instrument.

Research needed. Doing autocorrelation on simple single instrument monophonic audio is probably easy. But doing it on complex multi instrument audio isn't easy. Probably, it needs some sort of machine learning.

Why does the extension on Firefox block AV1 by default? It seems unrelated to the purpose of the extension.

Because AV1's decoding is slow and on some low-end hardware it makes the animation stutter.

Also have you considered coloring the spectrum according to the musical note? So every C is red, every E is green, every G is cyan, etc.

The color is used for left-right channel separation.