What if We combine Programming, Art, and Music?

  Рет қаралды 29,003

Tsoding Daily

Tsoding Daily

Күн бұрын

Previous Episodes: • Music Visualizer
Chapters:
- 00:00:00 - Disclaimer
- 00:00:42 - Intro
- 00:02:12 - Smoothing
- 00:13:05 - Rainbow
- 00:23:46 - Circles
- 00:46:25 - Shaders
- 01:24:43 - Smears
References:
- Tom Scott - Why Snow and Confetti Ruin KZfaq Video Quality - • Why Snow and Confetti ...
- Tsoding - Musializer - github.com/tsoding/musializer
- nu11 - KZfaq - / @nu11_ft
- nu11 - WIP Works 2016-2022 - / nu11-wip-works-2016-2022
- pilotredsun - Achievement (full album) - • pilotredsun - Achievem...
- rainbowism_ - Rainbow Spectrogram - / 1688368606793367552
- Easing Functions - easings.net/
- Tsoding Daily - Most Important Idea in Computer Graphics - • The Most Powerful Idea...
Socials:
- Twitch: / tsoding
- Twitter: / tsoding
Support:
- BTC: bc1qj820dmeazpeq5pjn89mlh9lhws7ghs9v34x9v9

Пікірлер: 72
@jaumeguimeramarquez2244
@jaumeguimeramarquez2244 8 ай бұрын
I guess I'm not ready for a Tsoding Ross session.
@JohnDoe-sp3dc
@JohnDoe-sp3dc 8 ай бұрын
Regardless of the visual fidelity, your videos are always incredibly interesting and educational. I always learn something new about programming when you pop up in my feed. Thank you for taking the time to put these videos out there, you do the world an incredible service!
@russjr08
@russjr08 8 ай бұрын
Agreed! As funny as it sounds, I usually watch Tsoding's videos from my TV in bed at the end of the day to wind down, I can still focus on what's going on (where as if I watch in the day time normally my attention is split between whatever billion things is going on during the day) and the text size that Tsoding uses in Emacs makes it perfectly easy to read everything even from the TV as well. It sounds strange, I know. But it's become a ritual of mine, and one I look forward to!
@lolcat69
@lolcat69 2 ай бұрын
​@@russjr08 Same!
@chrissimpson6088
@chrissimpson6088 8 ай бұрын
On visualising chip tune: Do an fft pass for each note in the western scale for the perceivable range (effectively quantising for 12 semitones per octave) and visualise each tone as a bar in the frequency graph
@konstanty8094
@konstanty8094 8 ай бұрын
Better title: "What if We combine Programming, Algorithms, Art, and Music?"
@iDoComputers
@iDoComputers 8 ай бұрын
it got used lol
@emuhast
@emuhast 8 ай бұрын
Man i have to tell you. If you showed me the end product of this stream at the beginning, i would kind of have an idea of how to do it (in my head, i am not close to being able to implement it myself), but the way you walk through your thought process and everything is awesome. I can't tell you how much i have learned from your streams. Keep it up and thank you so much, really. - From a still incompetent coder (but trying to get better)
@hwstar9416
@hwstar9416 8 ай бұрын
maybe a reason why SetConfigFlags doesn't take the enum is for compatibility with C++. In C++ to be able to use an enum as flags (use | and & , etc.) you need to do operator overload, which C doesn't have.
@TsodingDaily
@TsodingDaily 8 ай бұрын
Ah, that's a good point! I keep forgetting C++ exists :)
@ElPikacupacabra
@ElPikacupacabra 8 ай бұрын
@@TsodingDaily What do you think about C++?
@at-2974
@at-2974 8 ай бұрын
Former animator here. Your insights regarding animation are absolutely on point. This computer generated smear frame technique is very cool - would 100% steal.
@EVehicleJ
@EVehicleJ 8 ай бұрын
for visualizing square waves, look at Hadamard transform, or maybe discrete wavelet transform
@sirynka
@sirynka 8 ай бұрын
I believe youtube has a cap on bitrate for each quality option so simply increasing the bitrate and leaving quality at 1080p wouldn't help. You could've tried to encode video in 4k so youtube would preserve more details after re-encoding.
@SeishukuS12
@SeishukuS12 8 ай бұрын
Looks pretty good! I had fun back in the early 2000s doing the same stuff, but mine didn't play the music. It would sample anything that the OS was playing with the "Stereo Mix" record channel... So it would visualize *anything* that was playing on the system including live from mic or line-in. Did all that on my old dev system, a 733MHz Pentium 3 machine with an original ATI Radeon... *Barely* enough power to do a realtime FFT, but it did work quite well.
@xhivo97
@xhivo97 8 ай бұрын
your thumbnails are always so good!
@telceantiberiu7715
@telceantiberiu7715 8 ай бұрын
12:12 I remember seeing a visualizer of a tracker file on youtube, it's called nsfplay. It's a piano roll but what impressed me was that it showed vibrato and sweeps. The other way chiptune is visualized is with oscilloscopes like in rainbowism's program.
@zemariagp
@zemariagp 8 ай бұрын
Dude you are going places
@DFPercush
@DFPercush 8 ай бұрын
I am so jealous of how easy it is to call a shader in raylib. Holy smokes. I'm messing around with Vulkan for an AI accelerator. It is pain lol. But I want to keep my dependency count down, and I don't need graphics, just compute. Oh well, that's really cool anyway.
@TsodingDaily
@TsodingDaily 8 ай бұрын
It's a thin wrapper around OpenGL. So you still have all the OpenGL bs. For instance, different version of the shader language. In fact that problem popped up immediately after I published the source code. github.com/tsoding/musializer/issues/1
@sids911
@sids911 8 ай бұрын
Wow, is that going well? I was experimenting with performence of basic neutral networks and implementing them with different api/methods... standard single thread implementation, one with SSE, one AVX, oneDNN, Cuda(runtime and driver), openCL and last but not the least Vulkan. Setting up vulkan and doing just processing requires 100x boiler code unfortunately(don't know how that would scale). Vulkan's memory usage was sweet compared to runtime Cuda but comes very short compared to cublas acceleration. The memory advantage isn't there when compared to driver api, but that also requires a bit of boilerplate.
@DFPercush
@DFPercush 8 ай бұрын
@@sids911 Interesting to hear about your experience. I wrote a basic single threaded version in C++ to make sure I understood the algorithms, and instead of going the intermediate step of multi threaded SIMD on the cpu, to just jump straight to the GPU and see what I could do. I don't have a lot of experience with Vulkan yet, so I'm still learning how to set up everything. I don't even have the first test code complete yet. I think I've set up the pipeline correctly, so today I'm working on setting up memory allocation, buffers, and descriptor sets. But my strategy is, at first, to just use the compute shader as basically a dot product calculator for forward propagation, and on back prop it will just handle a single layer at a time. That will require host synchronization, which I'm sure is not the fastest way to do it. From there I might try to dynamically generate the pipeline to include barriers between layers so it can all be done with one dispatch, but I'll have to scratch my head a little more first, lol. It's not surprising that Nvidia would have special optimizations in CUDA for doing AI work, but I portability is one of the goals for me. Interesting to hear about the memory usage. Currently in the CPU code I'm using a bump allocator to place the weights, biases, and activations, so I can easily get the exact size of bulk memory I need before hand. I'm hoping that for now I can put everything in host visible memory, but if I want to run large models I might have to handle the case where the physical device needs to move things into device-only memory. That's gonna be "fun." And yes, it's a LOT of boilerplate, but the idea with Vulkan is that it's more work to set up, but faster and easier to call a dispatch. But anyway, it's still very much a WIP, so no stats to share yet. But I'll try to remember to post again when I get something working.
@federicosalvetti7703
@federicosalvetti7703 8 ай бұрын
Amazing amazing amazing
@rupen42
@rupen42 8 ай бұрын
It's so funny that the climax of the video kinda got screwed by the compression. Regardless, it's great. Maybe WASM port soon so we can see it for ourselves and with our music? 👀
@FunkschyIsWatchingYou
@FunkschyIsWatchingYou 8 ай бұрын
This looks epic :o (especially when trying it on my own pc without artifacts)
@postmodernist1848
@postmodernist1848 8 ай бұрын
43:10 an enumeration is a collection of a fixed number of values, but the flags parameter is a combination of those flags bitwise-or-ed together, so putting that enum type there would be incorrect BTW, the visualizations look really pretty and nothing is spoiled by the encoding
@diegorocha2186
@diegorocha2186 8 ай бұрын
Pretty pog ngl!!! Nice one, I really like these offline sessions where nobody is pissing you off lol seems like you were having a lot of fun!!
@cheebadigga4092
@cheebadigga4092 8 ай бұрын
very nice!!
@anaskorichiyt9935
@anaskorichiyt9935 8 ай бұрын
it is art
@sassasallalla2312
@sassasallalla2312 8 ай бұрын
All that pilotredsun music kinda made me feel nostalgic for zozeens streams from two years ago tsodingHoldingBackTears
@the_duda
@the_duda 8 ай бұрын
coding is an art form if done correctly
@mirkoadzic8941
@mirkoadzic8941 8 ай бұрын
Can you try making the visualization in a circular shape instead of a linear one?
@flleaf
@flleaf 8 ай бұрын
i didn't even think it was tsoding video when i saw the thumbnail in the recommendation and watched only much later lol
@ahmedabuharthieh579
@ahmedabuharthieh579 6 ай бұрын
Something you can do is to highlight the frequency that has the greatest change in amplitude (for example make it light up and then gradually dim back to base color). That way you can see the lead voice dancing around the frequency spectrum.
@JoeShmowYo
@JoeShmowYo 8 ай бұрын
For chip tune music you could probably isolate unique “voices”/“instruments” using FIR filtering techniques. given how isolated the frequency content can be, it might be fun to try and come up with a method of feature extraction using some kind of autoregressive process or something maybe
@forayer
@forayer 8 ай бұрын
That was fun 😄
@echoes6092
@echoes6092 8 ай бұрын
I'm not an audio engineer, but I did study sound physics for a while and I've played several instruments. I have, however, no idea what I'm talking about when it comes to math. With that out of the way, to get rid of the white-noise-looking FFT, I think what you have to do is know what the harmonics of the square wave look like-it's a curve on the odd (?) frequencies where amplitude decreases with pitch increasing. Then you effectively divide the FFT by the expected frequency, somehow.
@moosethemucha
@moosethemucha 8 ай бұрын
Honestly can't actually notice any of the issues you discussed at the beginning - looking forward to more features.
@caio_c
@caio_c 8 ай бұрын
In order to get rid of unwanted harmonics you can use a digital band pass filter controlled by amplitude, the amplitude of the highest frequency will shift the band pass towards it, killing all other harmonics
@gameofpj3286
@gameofpj3286 8 ай бұрын
44:05 I actually know how to fix that, it's actually just because small circles use too many triangles. I posted about how to fix it in an issue. The easy fix (without recompiling raylib) is to use the DrawCircleSector function with a smaller segment count.
@gameofpj3286
@gameofpj3286 8 ай бұрын
It's issue 2410 if you want an in depth thingy (can't post a link here unfortunately)
@Vulto166
@Vulto166 8 ай бұрын
This time, with disclaimer. xD
@charfractal9441
@charfractal9441 8 ай бұрын
that shirt is very dope
@zennmyst5347
@zennmyst5347 8 ай бұрын
I have to say in some ways I enjoy your off line content more because you seem to be happier and and enjoy it. I do wish you would go back to building your text editor this way I have always want to know how to do that as well and was enjoying it. Till too many people started coming in.
@saiprasadhakki9189
@saiprasadhakki9189 8 ай бұрын
Visualize rush E after you have finished the development of musializer
@vitalyl1327
@vitalyl1327 8 ай бұрын
There was a hope that shaders (like, the shadertoy community) will revive Demo-scene. Sadly, did not happen...
@bigmistqke
@bigmistqke 8 ай бұрын
I like watching shader showdowns
@simonl1938
@simonl1938 8 ай бұрын
The smoothness parameter should be a curve with a different value for each frequency, high frequency waves carry more energy and should lose more energy over time than low frequency waves. I cant remember the math exactly, high school physics was a while ago :) It might be the other way around too im not sure anymore now that I think about it. You could also try making the height logarithmic, should result in the louder frequencies notes standing out more.
@Szwagi
@Szwagi 8 ай бұрын
KZfaq lets you upload in a ton more bitrate if you upload in 1440p or 4k, unfortunately 1080p gets compressed like crazy. If you record in 1080p it's worth to just stretch the video.
@petergreen8450
@petergreen8450 8 ай бұрын
thx for the serie
@antonsimkin
@antonsimkin 8 ай бұрын
Некто по имени Sebastian Lague проводит челлендж (до октября по-моему), в котором он предлагает всем желающим улучшить его шахматный движок. Есть ограничения: это должен быть один файл, там используются хэш таблицы, программа должна быть не больше определенного размера. Оцениваться будет не только мощность, но и просто оригинальность решения. Он ютубер (рекомендую) выпустит видео с результатами. В общем, мне было бы интересно увидеть твою попытку участия в этом во всем.
@ShanyGolan
@ShanyGolan 8 ай бұрын
It's an art. If used c or assembly.
@c4llv07e
@c4llv07e 8 ай бұрын
IMHO, hue = height also looks nice.
@Benedikte123
@Benedikte123 2 ай бұрын
Hi ,from Denmark. It is very great videos you make about coding in c. I am curious, what is the name of the text editor you are using, is it VIM?
@batlin
@batlin 8 ай бұрын
Getting rid of "ghost" harmonics from FFT analysis has been a problem for a long time, and still not solved perfectly by music transcription software. I think the most successful methods so far use deep learning and are very computationally expensive. But for visualisation simpler methods might be alright.
@mustaregis
@mustaregis 8 ай бұрын
12:41 what if you create an FIR filter to get rid of the harmonics?
@AR-yr5ov
@AR-yr5ov 8 ай бұрын
some people's code is art
@nofacee94
@nofacee94 8 ай бұрын
did you try autocorrelation?
@anon-fz2bo
@anon-fz2bo 8 ай бұрын
mado scientisto - hyoin kyoma aka okabe rintaro aka sonuva bitch
@d3nbg12
@d3nbg12 8 ай бұрын
Azozin
@antonsimkin
@antonsimkin 8 ай бұрын
Programming art and music? You mean video game?
@vigneshsp4619
@vigneshsp4619 8 ай бұрын
Where is 720p?
@TsodingDaily
@TsodingDaily 8 ай бұрын
The future is now old man
@mmmmm1438
@mmmmm1438 8 ай бұрын
bro what is required for your videos i have c language basic
@jacobwilson8275
@jacobwilson8275 8 ай бұрын
raylib is the graphics library used here
@mmmmm1438
@mmmmm1438 8 ай бұрын
@@jacobwilson8275 if i learned with him i can understand it ?
@----__---
@----__--- 8 ай бұрын
highschool math and programming stuff
@mmmmm1438
@mmmmm1438 8 ай бұрын
@@----__--- i am engineering
@Benedikte123
@Benedikte123 2 ай бұрын
I found the answer myself. Emacs, Tsoding explaining his set up here.: kzfaq.info/get/bejne/hrGRfdKitrfTeXU.html Vim goodbye I say, after seein Tsodings acrobatics in emacs, with nice dark mode. very inspiring. Tosding please make more great videos using c.
@cheebadigga4092
@cheebadigga4092 8 ай бұрын
I can't see Scheiße in this Mist!!! xDDDDDDDDDDD
@user-rv6eq7zt7s
@user-rv6eq7zt7s 8 ай бұрын
Не передати словами, як я посміявся с жарту про НАТО-пропаганду.
Can C actually do Perfect Bézier Curves?
2:17:22
Tsoding Daily
Рет қаралды 6 М.
I regret doing this...
1:20:07
Tsoding Daily
Рет қаралды 60 М.
маленький брат прыгает в бассейн
00:15
GL Show Russian
Рет қаралды 4,1 МЛН
Teenagers Show Kindness by Repairing Grandmother's Old Fence #shorts
00:37
Fabiosa Best Lifehacks
Рет қаралды 38 МЛН
Music Visualizer (Fast Fourier Transform)
2:53:52
Tsoding Daily
Рет қаралды 57 М.
Ok I tried Tree-sitter! Here is what I think about it...
1:56:47
Tsoding Daily
Рет қаралды 48 М.
Read a paper: Ropes-- an alternative to Strings
6:51
Vivek Haldar
Рет қаралды 7 М.
You don't need Generics in C
1:37:38
Tsoding Daily
Рет қаралды 55 М.
Is C++ better than C?
1:46:10
Tsoding Daily
Рет қаралды 27 М.
Is John Carmack Right about UI?!
1:52:02
Tsoding Daily
Рет қаралды 29 М.
Wait, but Who's Debugging the Debugger?!
59:53
Tsoding Daily
Рет қаралды 33 М.
i wrote my own memory allocator in C to prove a point
5:23
Low Level Learning
Рет қаралды 325 М.
An introduction to Shader Art Coding
22:40
kishimisu
Рет қаралды 891 М.
Terminal To-Do App in Rust
2:55:05
Tsoding Daily
Рет қаралды 43 М.
На iPhone можно фоткать даже ночью😳
0:30
GStore Mobile
Рет қаралды 1,3 МЛН
How Neuralink Works 🧠
0:28
Zack D. Films
Рет қаралды 28 МЛН