Questions from Sam's Jun 27th practice session

Hopefully this is a good place for this, but in watching almost every step is raising questions I’m having a little trouble finding answers to.

  • where are bass_atoms and funken_beat coming from (looks like basically all the samples)? Pre-loaded from another buffer?

  • do you use sonicpi to build samples or some other (or various other) means?

  • what’s the second integer arg to sample doing? (why doesn’t the “lang” help section even mention it, or further where should I be looking on github for the code level definitions on the main buffer DSL?)

  • where can I define my own snippet templates? (you mentioned this isn’t doc’d yet, so maybe I can just hold tight on that one, but looks awesome)

  • what device are we hearing when you trigger notes through midi?

@samaaron if you’d like to use these as material for Friday’s live stream or answer here. Whatever works best for you. Love your work and hope to run into you in Helsinki airport again some time :stuck_out_tongue:


I can at least answer this question. The samples he is using are from a sample library that he has imported into Sonic Pi. The first variable name (ie funken_beat) is the variable name that he has given to the path to this folder of samples. The second integer you are referring to is the number that sample is in terms of the order of samples in the folder. For example, funken_beat, 8 would mean the sample is coming from the funken_beat path folder and the sample being played is the 8th sample in that folder.

This is all documented in the built in Help tutorials under Sample Packs:

Hope that helps.

Technically it would be the 9th sample in the folder as the index is zero-based… :slight_smile:

1 Like

Ahhh! I read that but failed to remember it apparently :blush: Thanks!

Is there a place I should PR a doc update along these lines?

Hey @matschaffer, thanks for the questions! I hope I can shed some light on them:

  1. “where are bass_atmos and funken_beat coming from” - these are both functions which resolve to strings representing paths to directories of samples. So instead of typing sample "/foo/bar/baz" I can type sample bass_atmos.

  2. “do you use sonicpi to build samples” - not quite sure what you mean by ‘build samples’, but I buy and download sample packs from my favourite artists and also with specific themes and work with them in my performances. This is all done by hand (i.e. creating well-named nested directories of wav files).

  3. “what’s the second integer arg to sample doing?” this is documented in detail in the lang section for sample. I’m surprised you think it isn’t documented. Where were you looking?

  4. “where can I define my own snippet templates” - you’re correct, this feature isn’t completed or documented yet. This might help you get started though:

  5. "what device are we hearing when you trigger notes through midi" - I’m using both a Moog Minitaur and Waldorf Streichfett which are triggered by calls to midi and their audio is fed into my sound card and made audible with live_audio.

Very happy to go into more detail on any of these things in Friday’s Patreon live interactive stream :slight_smile:

1 Like
  1. Nice, thanks!

  2. “buy” is the answer. I was wondering if maybe you used sonic-pi to build interesting sounds, exported those and were using the results as samples to layer things together. But guess not in this case :slight_smile:

  3. I was looking at the screenshot in Questions from Sam’s Jun 27th practice session - maybe I’m too used to reading ruby stuff like (random example) where an optional 2nd arg would show up at the top where the method signature is documented. Looks like the index stuff is quite a bit further down in that doc.

  4. fantastic!

  5. also fantastic!

Not super likely I’ll make the live stream, but hope to one of these weeks and will definitely watch the recording. Thanks for doing those!

1 Like


the problem with sample is that it’s far from a regular Ruby method :slight_smile: It’s actually very flexible and non-standard in terms of how it accepts and manages its arguments. If you have any ideas on how I might improve the docs, I’d love to know though…

Gotcha. Looks like searching for the docs helped me find it and I can see why a regular rubydoc wouldn’t quite cut it here :wink:

Will read through it a bit more carefully and PR if anything comes to mind. Thanks!

  1. On the topic of ‘buying’ samples, I recently discovered the Converse Sample Library, which is a vast collection of (IMO) high quality samples, and maybe you find something you like there.

Wow and free too? Thanks @benjamin!

The “kit” feature is also pretty awesome.

@benjamin - that’s a great candidate to add to Free Sample Libraries.... whats out there :slightly_smiling_face:


I’ve added it to the list of Free Samples Libraries