lainchan / λ

Programming noise

Switch · 2017-12-30 18:55
Lets get a discussion going about the art of programming sound. I'm still relatively new to the topic but I'm interested in creating a rudimentary software defined synthesizer in C++. Digital signal processing, the pure data language; any related topic is welcome.
Nguoi La · 2017-12-30 19:19
I've been meaning to get into a music live-coding environment. The one that has me most interested is extempore: https://www.youtube.com/watch?v=yY1FSsUV-8c https://www.youtube.com/watch?v=xpSYWd_aIiI https://github.com/digego/extempore Its biggest problem is poor documentation. I would probably need to put a lot of time digging into the source code, learning about DSP, FM synthesis, etc., and analyzing the sorts of tricks that Andrew uses in his performances before I could do anything meaningful with it. I don't want to use Sonic Pi because it essentially locks you into its own IDE, and the language used for it is similar to Ruby, but isn't an actual subset of Ruby. I haven't played around with any other systems. I feel like extempore's Lisp has a good aesthetic for a music notation language - I don't think I'd want to get into something with an imperative-style DSL like Csound.
Yuki Nagato · 2017-12-30 22:49
https://www.youtube.com/watch?v=eO_70TBTTiY Mario Composer FTW.
Nemissa · 2017-12-31 19:11
i don't have much to contribute now but i'll be following this thread closely. some lainon posted this in a similar thread at some point: http://canonical.org/~kragen/bytebeat/ tl;dr: experimental digital synthesis based around writing byte values directly to the ALSA buffer using a c program >>5934 >poor documentation the "documentation" you're looking for is an undergrad music theory textbook. plus something to learn DSP/synthesis. at that point tying everything together is fairly intuitive. puredata probably has the biggest academic community behind it (though obviously it's not "programming" in the traditional sense). i've used csound: it works more or less the same as extempore (from what i see in that video anyway). my problem with both systems is that they feel a little "sandboxed" for lack of a better term. i've been trying to figure out a way to do live coding without using some special runtime. i just think it would be neat to do stuff like that in the stock python interpreter or something.
Mitnick · 2017-12-31 20:41
>>5941 >>poor documentation the "documentation" you're looking for is an undergrad music theory textbook. plus something to learn DSP/synthesis. at that point tying everything together is fairly intuitive. The problem I have is that the higher-level constructs Andrew uses in his performances are poorly documented. There is a bit of documentation on creating and using instruments, but its mostly outdated. I have a decent background in music theory, so if I had access to these higher-level constructs I could probably start making some cool stuff, but as it stands, the cost of entry for me is a bit high. Are you saying that the design patterns that Andrew uses to abstract away instruments are intuitive implementations of the sorts of models used in standard texts on DSP/synthesis? Do you have any book recommendations for this stuff? >puredata Haven't heard of it before. Might look into it if I find some time. >i've been trying to figure out a way to do live coding without using some special runtime. Isn't the main purpose of these runtimes to provide live compilation/hot-swapping of code? Seems like a server like this would be essential for a live coding environment. >http://canonical.org/~kragen/bytebeat/ >tl;dr: experimental digital synthesis based around writing byte values directly to the ALSA buffer using a c program Very cool. Computerphile once did a video on a longer, more complex piece like this: https://www.youtube.com/watch?v=MqZgoNRERY8. Link to the code: http://txti.es/bitshiftvariationsincminor. Kind of made me think how much structure there is in the music we enjoy, that it's possible to compress it down to something as precise and short as a 200-something byte C program.
John Peters, You Know, The Farmer · 2018-01-01 17:25
>>5933 I'm also interested in making sounds. I wanted to start off with something challenging, but not too complicated, like a MIDI Player. I'm going to be taking a DSP class soon, so I got that part covered, but I want to know what libraries people use to make sound from your computer. I've been told to use SDL Mixer, but it doesn't appear to be low-level enough that I can play any arbitrary sum of sines and cosines without converting it into a .WAV file (or something formatted like a .WAV). Would the other SDL libraries be able to do this? Many thanks in advance
typedef · 2018-01-01 21:53
>>5950 >what libraries people use to make sound from your computer JACK for music production software, ALSA for anything else. >Would the other SDL libraries be able to do this? no idea, but ALSA can. just get a playback buffer and write bytes to it.