paracosms album

paracosms

for the past three months I’ve been trying to make entire songs using only pre-recorded samples which has resulted in a new album. there are a hundred songs on this album, all the result of combining samples using some software that automatically generates songs from sample pools. each song combines over a dozen samples, each from a different artist. each song is a paracosm: a random imagined world emerging from a combination of creators.

though there are many songs, they all follow a similar theme which I would vaguely describe as glitched ambient jungle usually with instrumentation from synths, strings, pianos and saxophones. the album can be listened in order from track 1 to track 100 - each song changes key from one to next according to the circle of fifths to promote a sense of progression (but really, listen in whatever order you want).

the goal

my goal for this album was to utilize a process that used only pre-recorded samples. I usually avoid this type of process, for various reasons. generally I think I like performance-based music because its more akin to my musical-origins of playing piano. so one of my motivations for this project was to immerse myself in my own personal reluctance.

the process

to start, I needed samples. I curated a catalog of pre-recorded samples by randomly selecting things I liked from splice.com. I spent $110 to collect all the samples I needed to make the entire album.

the process of manipulating samples into a song can be laborious - it requires taking a sample in a different key or tempo and stretching it to the target tempo, re-pitching it, trimming it to the right length, adding the right effects, splicing it in with crossfades in the right way, etc. for a hundred song album, this would mean doing these microedits thousands of times.

to avoid the tedium in using samples, I wrote a program I call raw (github.com/schollz/raw). The “daw” is familiar as the “digital audio workstation” but this audio workstation made almost all decisions stochastically so I call it the random audio workstation" (e.g. raw). raw randomly chooses which samples to use, how to layer the samples, how to do transitions, and which effects to add. The decisions are all based around probabilities so the same set of samples might create an entirely different song. I have control over the probabilities but not much else.

I didn’t write the entire program from scratch - raw was built upon freely available open-source music tools - sox and SuperCollider. I used sox to perform all the splicing / stretching operations / effects, and I used SuperCollider for additional special effects like special gated delays and filter ramps.

(raw is a more sophisticated version of a norns script I wrote called sampswap which itself is a more sophisticated version of a norns script I wrote called makebreakbeat).

process continued...

I realize that my process of pooling random samples and juxtaposing them
randomly is a bit alternative so I thought I’d describe in detail pieces of it.

I have all of my downloaded samples in a single directory. to make matters easier I renamed each file to include its tempo. I auditioned songs by listening to them back in a web browser that pointed to the directory of samples. this little website I made that has code that is so poorly written I’m embarrassed to share it!

sampledb

the screenshot of the website for sample auditioning is above. Its a very basic UI that I can scroll through my samples in parallel and play them back (using howler.js) to see which pool of samples might work well together. Its really dumb simple - written in Vue and it generates a bash script that will copy the necessary files into a new directory so that they can be utilized by raw.

after that I simply run raw which generates 4-5 stems: one for drums, bass, chords, melody and sometimes vocals. This process takes 1-2 minutes to generate everything. The end result are 4-5 music files, each is a single stem for each part (drums, bass, chords, etc.), and each is the length fo the final song.

raw

the last thing to do is to take these stems and mix them together in a way that makes sense. I usually prefer to make the drum sounds louder and vocals louder in the mix. To do this I just open them in Ableton and edit the mixing levels.

ableton

In Ableton I don’t do much - the stems each contain the entirety of one instrument of the song. After that I listen through, fix any pops that occurred from the splicing program, and render it!

each song took between 15-30 minutes to go through the entire process. I probably generated around 300 songs for this album (rejecting >60% of them) so it was easily about 150 hours of work. If I wasn’t automating most of the steps I imagine it would’ve taken much much longer.

the art in the art

during this process I was thinking - what is the art in this process? I had no part in creating the samples - they are all pre-recorded from other musicians who sent them to splice.com. and though I wrote software to make the songs, the software itself works through randomness and makes the main choices (which samples to layer, which effects, when) without my input. So where’s the artist input?

late into the process I found that I could maintain a sense of “artistic
direction” by harnessing three things within my control:

  • curating of the pool of samples.
  • choosing of the tempo.
  • mixing the final five stems.

they seem fairly subtle, but actually in my process they had a big impact.

the raw software will layer samples from the pool randomly, but the pool of samples is created by me. it took a few dozen songs to get the hang of this, but I found I would need to select a pool of samples that can intermingle in a variety of ways, otherwise it can end up sounding like multiple radio stations playing simultaneously.

also I found that my chosen tempo made a big difference - sometimes tempos were fast and sounded like a mishmash of radio stations and sometimes they were so slow they just plodded. I spent a lot of time just trying to figure out the right tempo for each track. Usually I generated a song two or three times to get one that I liked.

another realization I had was that this whole process is basically a lesson in mixing. my software didn’t mix them - it just outputs things at the levels they were prerecorded. I could get better results by working to mix them (really just manipulating five numbers, but boy those numbers make a big difference).

enjoy

In the end I enjoyed the process (though only because it was somewhat automated) and I am enjoying the resulting album. this album has been my go-to listening for months and I’ve listened all the way through almost a dozen times. hope you will enjoy it too. feel free to pwyw or just download it with a code:

bandcamp codes

tcu7-7kt8 tpwv-5kun kvat-xrne ug9y-jsvu vt23-kdgp fzmm-6hrn m389-kjcj bvzu-gksy 5ftv-ukxr gau8-v9md 275y-g8kc d57y-unzx s85n-jj9q 6z64-v7gm u3yh-g5f6 mvkj-3uek 99z8-wqn8 z32y-c85n yvmy-x2ne 398z-jdvu 5tnn-kcgp rkav-6xrn a396-kvcj ray2-y9sy k4ub-79y8 kew5-5znn z6h9-7tvj nzcn-57zy mtjx-759f gkgh-vugm 3nts-ypf6 5aze-bfek 86tg-wmn8 t3nz-ct5n taaz-xbne xmfk-77kx hgau-vv6q 4u7a-k88z ql5b-6f76 9s65-ymqk yh3f-7zy8 yexm-56nn y8c6-7gvj 2zhu-5uzy ayqd-up9f 8t8c-jfgm vn9g-kmsj 75tn-gzcy m7zm-u6lr 9m26-j6vd nrmk-yyzc wvbt-7ukx cgv3-jq6q c2b5-kt8z plvf-6n76 8cgm-yjqk 66k6-cju8 kn3k-wyan k5at-h3ue n69y-jsmu mz23-kd8p ftmm-6lbn 5u89-kjsj b5zu-g6cy 5rtv-uklr 8mu8-jkvd 2b5y-g8zc ukh3-5fky vzel-7a6f 6t64-v78m nuyh-ge76 m5kj-3upk 98z8-cvu8 yu2y-c8an y5my-xrue 388z-jdmu aznn-kc8p ryav-6hbn jxm7-kuf6 64ga-gvjk ksub-79t8 zjw5-59un zgh9-7tmj ntcn-5nky 5zjx-7e6f gygh-vu8m 32ts-g576 amze-bfpk 8gtg-wqu8 6vn9-jzmd ufaz-ytkc xafk-77zx 46au-vv9q 437a-6ygz qd5b-6ff6 g465-yqjk yc3f-7zt8 tjxm-5zun t9c6-7gmj

the codes can be redeemed at infinite digits .

btw, the cover art

the artwork for the album utilizes Disco Diffusion, an AI that can create artworks from text. the text I chose is artwork of Savlador’s Dali’s terrariums. Dali wrote extensively about the importance of keeping spider terrariums which were like little paracosms meant to deliver inspiration.

53 Likes

@infinitedigits

It’s really awesome !

Could you recommend some splice.com libraries that you used ?

1 Like

Thanks for sharing, I used the second code.

I’ve been listening to this quite a bit, and was planning to write my thoughts about it, but then I realized that the codes point to Sampswap, which is a different album, even though the first track is the same. Care to elaborate on the difference of the albums @infinitedigits? Is it a first incarnation of Paracosms?

1 Like

oh no! sorry about that. I update the codes to point to the right album.

the codes that were there previously were from my personal demo of paracosms. when I started out with the album I would put songs onto this personal demo album and listen to them and if they were good (to me) I would move them into the official album, “paracosms”. I stopped doing this after song ~#30. but the songs that remained on there are either duplicates or re-generations.

3 Likes