16 ms·
Eigentechno – Principal Component Analysis applied to electronic music
- sjg007 9y agoI would think this distills into a sine wave... based on the moog.
- swetabhsuman8 9y agoRead more about WannaCry/WannaCrypt/Ransomware Worm by NSA :- http://hackernucleus.com/hacker-news-countries-hit-by-nsa-powered-wannacrypt-ransomware-backdoor-worm/ http://hackernucleus.com/hacker-news-countries-hit-by-nsa-po...
- empath75 9y agoBeautiful work and I think he should probably make a vst or something out of. Producers are always looking for new ways to break sounds apart and put them back together.
- anigbrowl 9y agoFFT filters and the like are already a thing, I'm not sure what extra practical benefit you think this would bring. Nevertheless it's a good start and well-documented.
- bitL 9y agoPCA can decompose sound to more accurate base functions (if you look at covariance), so if you combine a few of them together with different coefficients, you might be able to generate some cool sounds much faster than with traditional methods. Later you might feed this to a RNN and perhaps compose brand new good sounding songs automatically, make a new Vocaloid band in Japan and go on a tour, generating new music on each performance ;-)
- anigbrowl 9y agoI am actually very interested in its application to musical patterns, ie the actual notes rather than the audio. I think there's already a tool that uses this to generate rich and musically-correct MIDI on the fly but I'm having trouble remembering the name/manufacturer now. Future Retro maybe.
- nom 9y agodown for me. Here is a copy, albeit useless because the audio files don't work: https://webcache.googleusercontent.com/search?q=cache:https%3A%2F%2Fwww.math.uci.edu%2F~isik%2Fposts%2FEigentechno.html https://webcache.googleusercontent.com/search?q=cache:https%... Edit: audiofiles suddenly work, but still can't access the website
- gtani 9y agoI was starting on the opposite tack, tho haven't got far, synthesizing/sampling kicks, snares and bass lines from scratch, which is prett tricky, like a kick is a sine wave swept down, play with ADSR envelope, saturate/compress, then you typically layer 3 separate kick tracks by phase aligning and more post processing. There's a lot to getting a good sounding kick with presence, attack, body. The reference on this is Rick Snoman's Dance Music Manual, 3rd ed.
- bitL 9y agoIMO you are limiting yourself by being in the analog mental model - ADSR, oscillators etc. are what made analog circuits generate sound but in the digital world they aren't necessary anymore and you can view all of it as just (periodic) function compositions in different spaces and model far beyond what analog can reach. Some new VSTis completely abandoned analog-style already.
- bitwize 9y agoYes, but how you will achieve that fat synth sound without analog?
- TheOtherHobbes 9y agoWith better than average modelling. And oversampling.
- sideshowb 9y agoHow will you define fat? (I'm guessing that wasn't a serious comment!)
- sideshowb 9y agoFrom a musical perspective the analog mental model produces very clean and high quality results. My experience of advanced digital techniques is that they sound somehow lower quality. This is not to be confused with the analog/digital debate, In which I am a fan of digital: digital synths that use the analog mental model can and do sound great e.g. virus, sylenth, zebra, fm8. It's more that the analog model evolved from how our ears perceive things while newer paradigms while mathematically neat often lead to unwanted artifacts, or boil down to much the same sort of thing as before e.g. NI Razor. Then again we might be talking about different things bitL, if you want to post links to the sort of sounds you're talking about then I'm all ears. Rick Snoman is fairly basic though I'd say the definitive synth guide was the old Sound on Sound Synth Secrets series (google). Or better just hang out on forums with more experienced people and post up links to sounds you like saying 'how do I make this?'
- sideshowb 9y agoLife imitating parody? http://archive.museumoftechno.org/exhibition_detail.php?id=6 http://archive.museumoftechno.org/exhibition_detail.php?id=6 (see also http://archive.museumoftechno.org/exhibition_detail.php?id=4 http://archive.museumoftechno.org/exhibition_detail.php?id=4 )
- Kenji 9y agoEven though the sampling loses information about the wave; from the sampled data, your computer’s digital-to-analog converter can perfectly reconstruct the portion of the sound that contains all the frequencies up to half of the sampling frequency. This is the Nyquist Theorem. So we are O.K. Pedantic note: This is only true in a theoretical setting where you have infinitely precise samples. Since each sample has only so-and-so many bits, and calculations also are lossy, you cannot reconstruct the wave perfectly. But it's good enough. There are also formats with more bits per sample to increase quality.
- umutisik 9y agoThank you. That's a good point which was not clear at all in my sentence.
- hammock 9y agoI don't get it. I guess he is deconstructing music by PCA instead of frequency or time. What is a practical application or interpretation of this? (not being critical, just trying to understand the motivation)
- umutisik 9y agoThank you for your question. At this point, this is just to see how PCA works on this kind of data-set. Normally, PCA is used to reduce the dimension of the data in a way that loses less information. It can be useful for saving computation on classification tasks for example.
- hammock 9y agoIts a cool exploration for curiosity's sake. Seems weird to use it vs Fft though because while some have said PCA is supposed to be "more optimal" , we have prior knowledge that the music is actually constructed along the FFT dimensions. So I wouldnt expect PCA to be any better
- highd 9y agoFFT and PCA are totally different. FFT is a fixed linear transform - PCA finds the linear projection to k-space that retains the most variance from the original dataset. If you projected to the top k frequencies you'd just get a couple of tones, while PCA finds linear combinations of the original signal that are most "descriptive" in a sense. Also human hearing is much closer to a wavelet transform or STFT than FFT.
- bitL 9y agoIIRC PCA finds the "stochastically optimal" base functions for you, whereas with FFT, DCT etc. you supply base functions yourself and then just do simple linear projections to this base.
- umutisik 9y agoHi, I am the author of the article. I would appreciate any comments/questions/suggestions. Update: I switched the audio files to Soundcloud now so everything should work again. Eigencrisis! It looks like the UCI servers are having trouble. I uploaded the audio files to the following Soundcloud playlist and I am working on embedding the soundcloud player in place of the files. https://soundcloud.com/umutisik/sets/eigentechno-1 https://soundcloud.com/umutisik/sets/eigentechno-1 Sorry for the inconvenience.
- corysama 9y agoThis is great. I could totally see "21 Transition 1420 Twm" appearing on an album as a self-deprecating joke. Mathematically generic techno and it still sound good :)
- chestervonwinch 9y agoFun project. FYI, on my machine: In [1]: X = randn(10000,100) In [2]: timeit apply_along_axis(np.mean, 0, X) 100 loops, best of 3: 7.91 ms per loop In [3]: timeit X.mean(axis=0) 1000 loops, best of 3: 1.21 ms per loop
- umutisik 9y agoInteresting. Thanks!
- svantana 9y agoThis is impressive, did you actually hand-prepare loops from 10k tracks? Even at 1 track per minute, which is pretty fast, that's 166 hours, a whole month of working full time!
- mooneater 9y agoIts interesting. But honestly, there are so many components that sound similar, so I dont feel we've truly gotten to something fundamental here. My first thought is to start with a Fourier, and then look at dimension reduction from there.
- adamnemecek 9y agoI'm working full time on a new DAW that should make writing music a lot faster and easier. Current DAWs don't really understand music theory or the creative process. Also the note input process and experimentation is extremely time consuming and the DAW never helps. Current DAW : my thing = Windows Notepad : IDE. The HN audience is definitely one of my core groups. Sign up here https://docs.google.com/forms/d/1-aQzVbkbGwv2BMQsvuoneOUPgyrc6HRl-DjVwHZxKvo https://docs.google.com/forms/d/1-aQzVbkbGwv2BMQsvuoneOUPgyr... And ill ping you when it's released.
- adimitrov 9y agoSounds fascinating. Will it be cross-platform? (in other words: will you support Linux?)
- adamnemecek 9y agoUnfortunately not for v1 but linux support its high priority going forward.
- thelsdj 9y agoI definitely think that current DAWs are terrible at the composition stage of things, but I wouldn't really want to give up the ease of arrangement / sound design / mixing that they provide. Something that could be used for composition that fed MIDI into my existing DAW would be great.
- adamnemecek 9y agoI'm definily targeting that workflow. What's your current mixing workflow?
- thelsdj 9y agoI tend to mix (and do everything as I go) in Ableton. I just got a Push 2 so I've been building out some templates and racks to try to skip some of the tedium of trying to explore chord/melodic ideas quickly. I was reminded of this behemoth: https://www.youtube.com/watch?v=ndb339l81pU https://www.youtube.com/watch?v=ndb339l81pU like the interface is terrible, but the DAW should basically know what kind of chord your playing and be able to make transformations to them. I'm relatively new to producing in general, but one of my main issues with composing in Ableton is just not having easy way to reference the rest of my MIDI clips working on one of them. Or if I decide I want to change my chord progression or my voicing I then have to go and check every other clip to make sure they all match or at least work with the change.
- highd 9y agoThis is really, really awesome. Some other ideas that would be really cool: 1) Do key detection and pitch-shift all the loops to a common key before processing. That might make more of the melodies come through the eigenvectors. 2) Visualize the loop point cloud - maybe with like 10-50 dimensions of PCA followed by 2 or 3 dimensions T-SNE. 3) Maybe some form of earlier dimensionality reduction? I.e. you could do a short-time fourier transform and then threshold and bin frequencies - then invert the transform to reduce the sounds to their basic characteristics. That make make it so not all of the first 20 or so eigenvectors all have slightly different kick drums. For example, if you have kick drums with fundamentals at 21Hz, 22Hz, 23Hz, 24Hz etc. those will each require two eigenvectors to represent the sine or cosine phases of the signal - but if you could "project" every kick drum sound so they were close to linearly related then PCA could isolate them with fewer eigenvectors. I would love to play with some sort of live music generation system based on this - really, really interesting ideas. And goes to show what can be built with traditional data analysis techniques and a clever idea! EDIT: Also if you uploaded your preprocessed data I think that would be really amazing.
- umutisik 9y agoThank you for these great suggestions. I will make the dataset available eventually. It's about 15 gigs so I just need some time to do it right. I will let you know when I have it released.
- sideshowb 9y agoThese are all good suggestions. "Earlier dimensionality reduction" could possibly be used to reduce noise in the eigenvectors: while PCA removes noise as defined by dimensions with low overall variance, the results still sound noisy from a sound engineering perspective. I saw some research years ago about breaking down sound into pitched and unpitched components, using some kind of kernel transformation in fourier space. If I remember rightly this reduced the usual 'artifacts' you get when manipulating fourier transforms of white noise. Perhaps a good candidate for this case. Sorry I can't remember more though I think the talk was by this guy https://www.york.ac.uk/music/staff/academic/jez-wells/ https://www.york.ac.uk/music/staff/academic/jez-wells/ Either way, to the OP who I presume can only be Dr Brady of the Museum of Techno; good work old chap, you deserve a sherry.
- platz 9y agoalso, as an alternative to PCA, try ICA (independant component analysis). This will attempt to find non-gaussian sources in the data and might be worth seeing if it can carve out more interesting portions of the sound.
- smortaz 9y agoVery nice. Suggestion: Would be great to put the Jupyter notebooks on https://notebooks.azure.com https://notebooks.azure.com so we can actually run/edit/play with them. Zot!