Тёмный

Making Music with Haskell From Scratch 

Tsoding
Подписаться 32 тыс.
Просмотров 100 тыс.
50% 1

Наука

Опубликовано:

 

4 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 227   
@Tsoding
@Tsoding 4 года назад
As was discussed on the premiere in the chat, minutephysics has a video explaining 2^1/12 in the Semitones -> Hz formula: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-1Hqm0dYKUx4.html Thanks Jagholin for bringing it up! Now I understand that black box! :)
@lividphysics1237
@lividphysics1237 4 года назад
Who needs Ableton when you have Haskell?
@webgpu
@webgpu 4 года назад
don't know if this video's author got the acid criticism in your sarcastic comment
@felixlipski3956
@felixlipski3956 4 года назад
imbecils!
@DanDart
@DanDart 4 года назад
No one has ever needed ableton when rosegarden exists!
@robertbradley3320
@robertbradley3320 4 года назад
@@webgpu Depends on how cynical you are on a scale from this video's author to you.
@Capewearer
@Capewearer 9 месяцев назад
@@DanDart also LMMS with Ardour.
@dbzlinkinpark99
@dbzlinkinpark99 4 года назад
46:51 he almost let his plan slip with that laugh when he heard it and wondered probably if you can already recognize it, the mad lad is a coding Meme Legend
@dbzlinkinpark99
@dbzlinkinpark99 4 года назад
“hey what song is that?” “It’s Darude Sandstorm “
@joriskbos1115
@joriskbos1115 4 года назад
"I will make semitones floats, because I don't feel like converting ints to floats." Time for some microtonal music :)
@abhi111094
@abhi111094 4 года назад
Tsoding inspired me to start a channel myself, where I am explaining Haskell algorithms, he is indeed an epic haskeller.
@anuraghooda8439
@anuraghooda8439 4 года назад
Cool, there should be more content for haskellers. You have got yourself a new subscriber.
@abhi111094
@abhi111094 4 года назад
It's the truth and advertisement both
@Bratjuuc
@Bratjuuc 4 года назад
Subscribed just in case you upload something new to me.
@ricardorodriguez4180
@ricardorodriguez4180 4 года назад
Subbed, thanks
@gonzalochristobal
@gonzalochristobal 4 года назад
omg this is the best youtube recommendation of the month for me
@pasdenom.9062
@pasdenom.9062 4 года назад
ikr
@ebonilha
@ebonilha 4 года назад
That attack-decay-sustain-release thing could be implemented very elegantly with simplexes or splines. As they form interesting algebras, I think Haskell would have very nice representations of that.
@Bloodfox610
@Bloodfox610 4 года назад
The text at the bottom of the screen is my favorite.
@ewowoi
@ewowoi 4 года назад
i3wm ?
@itsblack2321
@itsblack2321 4 года назад
@@ewowoi Yeah it looks like default i3status or py3status
@AndersJackson
@AndersJackson 4 года назад
@@itsblack2321 Probably using XMonad and its staus bar, or I will not be happy. :-)
@mrshurukan
@mrshurukan 4 года назад
Never really saw Haskell before, but the way you explain it... My God, I think I'm into Haskell now You've done a great job! It was entertaining and to some extend even useful to a person who never touched that language before Kudos from a fellow programmer and a musician
@fernandogurgel
@fernandogurgel 4 года назад
"Music is the most advanced form of mathematics" - GPT-3. Now everything makes sense.
@tthermic
@tthermic 4 года назад
i had to learn haskell for school so thats why i guess this is in my recommended. man this language is so over my head, watching this brought back bad memories of spending 5 hours to write 5 lines of code lol.
@arturshum7612
@arturshum7612 3 года назад
i've gotten myself into this weird situation where i'd put on your videos as i go to bed and now hearing your voice is the only thing that effectively knocks me out
@johnnyphoney5669
@johnnyphoney5669 4 года назад
This is my favorite video of yours now! I like how you come from the absolute simplicity to the details.
@ih1d
@ih1d 3 года назад
You, sir, are an excellent explainer. Really, not many youtuber programmers have your ability to explain, let alone the knowledge of Haskell. Again, excellent content.
@thepuzzlemaker2159
@thepuzzlemaker2159 4 года назад
Attack, decay, sustain, and release are used as they can help to emulate sounds of many instruments more accurately and pleasantly. For example, some instruments have a very strong “front” or attack, that decays quickly, whereas others have a weak attack but sustain for a bit then decay.
@JackSchpeck
@JackSchpeck 4 года назад
This was really entertaining video. I coded along and it was fun. You just got yourself another subscriber, sir :D
@ninoman123
@ninoman123 4 года назад
That was great. As a musician and programmer I really learned a lot about both things! Subbed!
@polza_dg
@polza_dg Год назад
This is the coolest thing i've seen about programming since i started learning it 5 month ago.
@DanielPetri
@DanielPetri 4 года назад
Wow amazing content! Keep it up. Deserves way more views
@developandplay
@developandplay 4 года назад
Lol RU-vid Vorschläge😂
@firespindash
@firespindash 3 года назад
Wow, you were here, nice :)
@RuRu-vm6yw
@RuRu-vm6yw 3 года назад
Not so much activity anymore, was enjoying haskell content. We need more of that!
@KamiKagutsuchi
@KamiKagutsuchi 4 года назад
I love how you can't help but laugh when you're putting together the song at the end
@DanDart
@DanDart 4 года назад
"442 pies per second" - Tsoding, 2020
@ekkoflok
@ekkoflok 3 года назад
Thanks a lot for this video! It's really educational to see a master at work! I wish there were some similar stuff with common lisp or scheme hacking!
@boriscreativespace
@boriscreativespace 4 года назад
this was the most legendary programming video I've seen in a while
@Neroordie
@Neroordie 4 года назад
It's been a while since I viewed a programming video but this one was really fun to watch, thank you!
@Hypafrag
@Hypafrag 4 года назад
Переписываю, значит, я тут второй день свой синт с плюсов на раст. Подумываю в процессе как бы это на хаскеле выглядело. А чувак такой: «ща покажу». На следующий день после того как я вообще этот канал обнаружил. Что это? Телепатия? Отсутствие приватности? Магия?
@shegeley
@shegeley 4 года назад
Это Гугл тебя слушает.
@Александр-й7б9и
@Александр-й7б9и 4 года назад
Да, со мной происходило подобное. Мне близко объяснение такого явления тем, что у людей с похожими интересами и занятиями рождаются +/- одни и те же идеи. Ну, а получить соответствующее видео к просмотру - вопрос времени. Есть история одного писателя-фантаста, который изо всех сил торопился выпустить свой роман. Потому что по его убеждению в то самое время другие ~двадцать человек обыгрывали ту же самую идею в своих произведениях. Вопрос был в том, кому удастся высказаться первым. В то же время публично эта идея не обсуждалась, и было это в доинтернетную эпоху. Но идеи-то витают: кто-то где-то обмолвился, кто-то что-то подумал, - и вот оказывается, таких больше одного.
@monnef
@monnef 4 года назад
Nice educational and entertaining video (not many people can pull off both aspects), good job. Even though I knew everything on the Haskell front, I learned a lot about music :D.
@anuraghooda8439
@anuraghooda8439 4 года назад
Very fun and educative. Really liked this video. Keep making amazing and cool stuff.
@jackkensik7002
@jackkensik7002 4 года назад
OMG he made DARUDE SANDSTORM IN HASKELL, absolute mad lad
@redumptious2544
@redumptious2544 Год назад
Argh!! Thank you. I knew I definitely knew the song but I could not find it for the life of me. First comment I found that actually mentioned the name 🙏
@luizinoue8635
@luizinoue8635 4 года назад
Amazing content. I would like to see more video exploring sound generation changing the frequency as a function of the time. Like police car alarm.
4 года назад
I found myself enjoying this as a child, wicked man, you are awesome!!!
@robert33232
@robert33232 4 года назад
Bro, I've watched the video with "one breath", really enjoyed it. Thanks a lot!
@dfurmans
@dfurmans 4 года назад
Wicked! Love your sessions ! Keep rockin!
@davidfriedman6625
@davidfriedman6625 4 года назад
That was so happy! Loved how much you were enjoying it. (And what a great invitation to Haskell...)
@gonzalochristobal
@gonzalochristobal 4 года назад
the reason why a is 2 ^ 1/12 is because an octave has 12 notes, (i think it's kind of made to be like that, because of the chromatic scale and things) so if we multiply the standard pitch with that 12 times: (2 ^ 1/12) ^ 12 = 2 we get 2, and that's because the ratio of one octave to the next is 1/2. if the process start again multiplying the last frequency we got, times 2 ^ 1/12 that will be in the next octave. our ears perceives pitches with double the frequency as one octave above :) source: www.simplifyingtheory.com/mathematics-and-music/
@DeineOmaStinkt2
@DeineOmaStinkt2 3 года назад
Thank you a lot for this cool tutorial. It was so fun following around and even I just started programming in Haskell I could learn a lot about Haskell AND music :D Keep on going!
@HeatCrawler
@HeatCrawler 4 года назад
That was amaizing! ❤️
@asdfmonstrosity
@asdfmonstrosity 8 месяцев назад
That was great. Now I really want to learn Haskell
@shikanokonokokoshitantan
@shikanokonokokoshitantan Месяц назад
2020 Tsoding: Linus Torvalds 2024 Tsoding: Mark Succerburg
@cuadernoazul5958
@cuadernoazul5958 6 месяцев назад
Says the legend there was a dude who uses Haskell to compose Electronic music by ear.❤
@mariansam_was_taken
@mariansam_was_taken 4 года назад
This video is awesome. I've never used Emacs and Haskell, but this is awesome.
@Chemaclass
@Chemaclass 4 года назад
This is just amazing, bro! :D (and crazy...)
@valcron-1000
@valcron-1000 4 года назад
Tsoding: "But I'm not a musician..."
@meneereenhoorn
@meneereenhoorn 4 года назад
Either that statement was (Just Musician) or he had some notes and this was (Just NotByEar). Awesome video btw :D
@pepegasit610
@pepegasit610 4 года назад
Do you know about TidalCycles? It's a music DSL based on haskell that allows you to do cool live music performances.
@Mathilde3219
@Mathilde3219 4 года назад
extremely satisfying. Thank you!
@cn-ml
@cn-ml 4 года назад
I watched the whole thing. You have a really nice coding style. That undertale in the end caught me pretty off guard though
@tagged5life
@tagged5life 4 года назад
idea for a part 2: make it read .midi files, and have summation of [Pulse] for multiple frequencies at the same time
@AndersJackson
@AndersJackson 4 года назад
Sum and scale the pulses. Anonther thing that is needed is symbols for notes and symbols for periods (full, half, quater, eighth and so forth). And not to forget abour doted notes. Probably more useful to parse the abc format.
@shadowleague2486
@shadowleague2486 4 года назад
Code You a Sound for Great Good!
@htol78
@htol78 3 года назад
не знаю что больше поразило, sandstorm на хаскеле или температура чая
@katem.1586
@katem.1586 3 года назад
Thanks for posting such a great video ! :)
@wliaputs
@wliaputs 4 года назад
Subscribed when I see music and Haskell
@miconomo
@miconomo 4 года назад
It's really nice, proposal for the next session: music visualization :-)
@evebogomil2777
@evebogomil2777 4 года назад
this is a completely different lvl of insanity
@teliph3U
@teliph3U 4 года назад
That was amazing. Thanks for sharing your knowledge. Just a few small things: * In case you didn't know: The function *void* will turn the type of any Functor into (). * Haskell is the only language that does not support implicit conversion. This is actually a good thing because it avoids a lot of nasty bugs and forces you to think about the meaning of the expressions you want to write. Converting an Integer to any other type that is an instance of Num is the easiest thing. Just use the fromInteger function. * Your pronounciation of *beats* sounds like *bits*. The i in beats is long. * Also, the last part could have used some more abstraction. :P
@eliasavelino6729
@eliasavelino6729 2 года назад
another fantastic video sir you are fantastic at coding haskell nice video
@felixlipski3956
@felixlipski3956 4 года назад
Very cool! this convinced me to learn Haskell
@beauteetmusculation8191
@beauteetmusculation8191 3 года назад
One year later, how is it going?
@felixlipski3956
@felixlipski3956 3 года назад
@@beauteetmusculation8191 very well, I'm learning OCaml and Agda now
@beauteetmusculation8191
@beauteetmusculation8191 3 года назад
@@felixlipski3956 Nice! Did you learn Haskell too?
@kacperozieblowski3809
@kacperozieblowski3809 4 года назад
I'm new here and I have one thing to say, love the slavic accent
@OleJodd10
@OleJodd10 4 года назад
Very fun and educational, thank you!
@spacewad8745
@spacewad8745 4 года назад
oh. god!!! i am now discovering this channel.
@EsperSpirit
@EsperSpirit 4 года назад
This is really great content!
@rifaldhiaw
@rifaldhiaw 4 года назад
HELL YEAHH.. 48:59
@gabrielebellavia6024
@gabrielebellavia6024 4 года назад
it can become a morse translator if you create a table of letters
@robert33232
@robert33232 4 года назад
We can go further: to construct notes with the sine overtones, to use Just Intonation note system.
@sknk1823
@sknk1823 4 года назад
You will never know that it is a click bait when he played the tone in the end part. Omegalol. Darudepoggers
@robert33232
@robert33232 4 года назад
"Специфик" - I'm already hearing this for the second time from you ;) Don't reveal yourself :-D
@GabrielFreites
@GabrielFreites 4 года назад
This is amazing o.o!
@karolisr
@karolisr 2 года назад
How do I "like" this 1000 times?
@dewijones92
@dewijones92 3 года назад
so fucking awesome. Thanks so much
@random-characters4162
@random-characters4162 Год назад
mesmerising
@juancasilla684
@juancasilla684 4 года назад
Awesome man thanks a lot
@divest6527
@divest6527 4 года назад
I've been following through this tutorial. FYI: the pitch standard tone seems slightly sharp in Tsoding's RU-vid video, but when you compare against the Wikipedia 440hz tone ( en.wikipedia.org/wiki/File:Sine_wave_440.ogg ), it sounds identical :)
@pasdenom.9062
@pasdenom.9062 4 года назад
That was awesome.
@jakubsebek
@jakubsebek 4 года назад
I don't know Haskell, but it looks beautiful.. it is like a completely alien language. I wonder how would this code look e.g. in C, could you do a video where you compare Haskell programs with their equivalents in conventional langages?
@twb0109
@twb0109 4 года назад
I will start... static blah blah blah{ Blah blah{ # The actual Code goes here } }
@jakubsebek
@jakubsebek 4 года назад
@@twb0109 I am not a fan of C# either :D
@shamsartem
@shamsartem 4 года назад
Really cool video
@dbzlinkinpark99
@dbzlinkinpark99 4 года назад
Did I just watch some code from scratch Darude -Sandstorm what a mad lad , I love it, i bursted laughing once I realized what song he was making
@nexovec
@nexovec 4 года назад
Lol I'm first... also I'm glad you uploaded sth. again
@belowaverageasian7197
@belowaverageasian7197 4 года назад
My Haskell class gave 28 grey hairs and three tumors
@arthura.kupriyanov4667
@arthura.kupriyanov4667 4 года назад
Sarude Dandstorm!!!
@kahnfatman
@kahnfatman 2 года назад
Sir, you are a musician.
@JarerFolders
@JarerFolders Год назад
чувак, ты лучший
@Jango1989
@Jango1989 4 года назад
That's amazing >_
@strelkan
@strelkan 4 года назад
я человек простой, вижу цодинг - ставлю лайк
@PhLADiPreLiO
@PhLADiPreLiO 4 года назад
I have a question. I am making my independent research in the domain. I find some information useful for me in the video. My project code is published under MIT licence but does not use the code from the video. May I use some ideas (e. g. Float type etc.) in the project with credits to the authors of the video and still with the same license?
@Tsoding
@Tsoding 4 года назад
The code shown in this video is also released under MIT license github.com/tsoding/haskell-music/blob/master/LICENSE So, yes, I suppose. :)
@AmitGold00
@AmitGold00 4 года назад
Great video, if you want to explore this topic more you can do videos on different types of waves like sawtooth and square, and maybe on distortions and effects like that
@yomaru_1999
@yomaru_1999 4 года назад
Interesting tutorial
@AlexsandError
@AlexsandError 4 года назад
amazing!
@buddyze
@buddyze 4 года назад
Subscribed because of this video only :p
@camotubi
@camotubi 3 года назад
DUDE WHERE ARE YOU?? COME BACK 😭
@robert33232
@robert33232 4 года назад
It was fun for me to listen to you in English realizing that we're both Russian :-D
@pasdenom.9062
@pasdenom.9062 4 года назад
I would find great to have better tooling for Haskell. For example, an Haskell compiler that can be easily ported to any system (it's painful to port it on new systems…), a compiler which can easily compile statically (even itself), etc.
@creaatiive1718
@creaatiive1718 4 года назад
who are you? why is your voice so magical ? you make me melt no homo
@btarg1
@btarg1 4 года назад
Now |I'm one step closer to "Still Alive in a Linux Terminal"
@smuecke
@smuecke 4 года назад
How is it possible that printf takes a variable number of arguments depending on the number of %s, %f etc?? I didn't think this would be possible with Haskell's type system
@teliph3U
@teliph3U 4 года назад
The answer is type classes. You can define instances for function types. This works so well because functions are always curried. If you're interested take a look at the QuickCheck package. As long as each parameter type of a function has an *Arbitrary* instance there is an instance that allows to test arbitrary functions.
@harryhead100
@harryhead100 4 года назад
stackoverflow.com/questions/7828072/how-does-haskell-printf-work Long story short: Typeclasses and recursion
@NoName-md6fd
@NoName-md6fd Год назад
Oh man tsoding, wait until you hear about bytebeat then realise you could have just sent "cycle[1..65535] " to the audio file to get a sawtoothwave
@SolathPrime
@SolathPrime Год назад
Oh yeah the old channele
@Zorgatone
@Zorgatone 4 года назад
Name of outro song?
@dbzlinkinpark99
@dbzlinkinpark99 4 года назад
He answered what song he was marking before people even asked the question what a mad lad coder to think that far ahead because what the only answer on RU-vid comments when someone ask “hey what’s that song called” The only answer is “Darude sandstorm”
@anwiseru9064
@anwiseru9064 4 года назад
hot i3wm setup, near default ftw
@cranknlesdesires
@cranknlesdesires 4 года назад
Yo that song at the end sounded good, what was it? The one that went dudududud dadada dudud
@Bluepaccao
@Bluepaccao 4 года назад
The one in the absolute end of the video is the megalovania from the game undertale. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-wDgQdr8ZkTw.html
@yecinemegdiche3202
@yecinemegdiche3202 4 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-y6120QOlsfU.html it is a meme, I am sure that you opened that link at least once in your life lol
Далее
Haskell for JavaScript programmers
16:51
Просмотров 58 тыс.
Women’s Celebrations + Men’s 😮‍💨
00:20
Просмотров 3,3 млн
HA-HA-HA-HA 👫 #countryhumans
00:15
Просмотров 3,5 млн
Harder Drive: Hard drives we didn't want or need
36:47
Faster than Rust and C++: the PERFECT hash table
33:52
Просмотров 576 тыс.
Making .BMP images from scratch
21:22
Просмотров 10 тыс.
Fast Inverse Square Root - A Quake III Algorithm
20:08
Test Anything with Python
1:46:06
Просмотров 27 тыс.
Programming a multiplayer game from scratch in 7 DAYS
18:28
Object-Oriented Programming is Bad
44:35
Просмотров 2,3 млн
Writing My Own Database From Scratch
42:00
Просмотров 232 тыс.