Lleu Yang megakite
  • Joined on 2024-02-29
Lleu Yang pushed to sample-sound-node at megakite/blender 2024-07-29 15:58:45 +02:00
fbf5f9abbb Geometry Nodes: Sample Sound: redesign cache API, fix segfaults
abc53b256e Merge branch 'main' into sample-sound-node
017c8742cb Fix: GPv3: Crash in realize instances node
5e9096829c Cycles: Add Central Cylindrical Panoramic camera model
b17734598d Fix #125446: Video decoding artifacts on AVX512 CPU with some video widths
Compare 239 commits »
Lleu Yang commented on pull request blender/blender#122228 2024-07-22 19:22:39 +02:00
Geometry Nodes: Sample Sound node

Aside from what is stated in the commit description, the last commit also brought back absolute frequency, and added a new PROP_UNIT_FREQUENCY unit to represent numbers in Hz.

More details…

Lleu Yang pushed to sample-sound-node at megakite/blender 2024-07-22 19:11:42 +02:00
f2452d8a6e Geometry Nodes: new Sound Info node & select channel for Sample Sound
caa236b38b Merge branch 'main' into sample-sound-node
fc49a5928b Fix: GPv3: Duplicate previous key using auto key
d0ff8d89c9 Fix: GPv3: Use correct temporary eraser size
a1ac565315 Cleanup: Improve comments for UI related property flags
Compare 224 commits »
Lleu Yang commented on pull request blender/blender#122228 2024-07-15 19:09:13 +02:00
Geometry Nodes: Sample Sound node

I think a lot of this is already solved by the Map Range node which significantly simplifies the math one has to do. I think the logarithmic scale is not necessary yet. It should be easy…

Lleu Yang commented on pull request blender/blender#122228 2024-07-15 17:59:40 +02:00
Geometry Nodes: Sample Sound node

Personally, I don't really like using relative frequencies. I think it makes it much less obvious what data you get out of this node. Would prefer to keep using absolute frequencies in…

Lleu Yang commented on pull request blender/blender#122228 2024-07-15 17:19:09 +02:00
Geometry Nodes: Sample Sound node

575b26c196f48336b8c411896decc06b96417910 discards bin_index as part of the key of the map, i.e. caches are now continuous like how blender/blender#122228 (comment)

Lleu Yang pushed to sample-sound-node at megakite/blender 2024-07-15 17:16:05 +02:00
575b26c196 Geometry Nodes: Sample Sound: do not consider bin_index as part of key
Lleu Yang commented on pull request blender/blender#122228 2024-07-15 16:04:09 +02:00
Geometry Nodes: Sample Sound node

The last commit refactored the caching system into C++, used std::shared_mutex to achieve thread safety, improved user interface, and removed unnecessary node category.

More details can be…

Lleu Yang pushed to sample-sound-node at megakite/blender 2024-07-15 15:31:24 +02:00
b8bad4ab19 Geometry Nodes: Sample Sound: Caching in C++, improved UI design
769a7ca9a3 Merge branch 'main' into sample-sound-node
ed873e420a Refactor: Make PaintStroke::mode_data an unique pointer
a843d93bd1 Cleanup: Remove unused icon defines
a33b1a8da0 Fix: GPv3: Sculpt mode crash after brush assets merge
Compare 379 commits »
Lleu Yang commented on pull request blender/blender#122228 2024-07-12 18:28:02 +02:00
Geometry Nodes: Sample Sound node

That reminds me… Yes, it's possible and also very useful. It's very common that a user is expecting to get more details (in frequency, not time) in lower range. That would be hard to implement…

Lleu Yang commented on pull request blender/blender#122228 2024-07-10 19:35:42 +02:00
Geometry Nodes: Sample Sound node

Sampling a range of [0, infinity] with FFT is different from directly sampling without FFT. FFT inevitably decreases time resolution, as depicted below:

![fft.drawio.png](/attachments/a0…

Lleu Yang commented on pull request blender/blender#122228 2024-07-10 18:14:07 +02:00
Geometry Nodes: Sample Sound node

I apologize for the ambiguity. What I mean is that we could specialize the node's operation when the start/end frequency range contains full spectrum. For example, if the frequency range is [0,…

Lleu Yang commented on pull request blender/blender#122228 2024-07-10 07:59:55 +02:00
Geometry Nodes: Sample Sound node

Storing all samples of one audio channel in float will take up ~10MB space per minute. Will it be considered a large space compared to Blender's overall memory usage?

Besides, I think the…

Lleu Yang commented on pull request blender/blender#122228 2024-07-10 07:38:18 +02:00
Geometry Nodes: Sample Sound node

This is not what I expected… In C the designated initializers is used everywhere. It seems that GNU extensions did something in secret again.

Nevermind, will change according to the standard.

Lleu Yang commented on pull request blender/blender#122228 2024-07-10 07:31:23 +02:00
Geometry Nodes: Sample Sound node

Putting them into the side-bar is indeed a better solution. Will change & also choose appropriate default values.

Lleu Yang commented on pull request blender/blender#122228 2024-07-10 07:27:46 +02:00
Geometry Nodes: Sample Sound node

It may be more intuitive to have default values containing full spectrum. However there would be a problem:

Audio sources may have different sample rates, so the default value of `End…

Lleu Yang commented on pull request blender/blender#122228 2024-07-10 06:37:35 +02:00
Geometry Nodes: Sample Sound node

That sounds reasonable. I'll use NODE_CLASS_CONVERTER for Sample Sound node, and NODE_CLASS_INPUT for the coming Sound Info node. The reason I was considering to create a new class is because…

Lleu Yang commented on pull request blender/blender#122228 2024-07-08 20:13:06 +02:00
Geometry Nodes: Sample Sound node

Fixed empty bands in the last demo video, also supported multiple layers with this node to coexist.

image
Lleu Yang pushed to sample-sound-node at megakite/blender 2024-07-08 20:06:25 +02:00
0f47d6d13c Fix: fftw crashes & zero results when bin_start == bin_end
Lleu Yang commented on pull request blender/blender#122228 2024-07-08 14:36:09 +02:00
Geometry Nodes: Sample Sound node

Replaced LRU with a relatively simpler (yet efficient) caching structure. The change also allows user to select FFT size by themselves. More details can be found on [devtalks](https://devtalk.blen