Any resources for designing/building my own sampler?

I would like to design a very simple device that can record and playback audio and have no idea where to begin as far as research.

Was thinking of using teeensy or a raspberry pi. Pure data or lua but honestly have no background at all on coding or anything of that nature.

Ideally I would like to build a device that could function as a micro cdj.

1 Like

Edited*

I noticed you mentioned coding experience so I’m going to rearrange my answer…

May I ask why you intend to build one? There’s really so much that goes into this question…

Is it to learn? Or because what you want doesn’t exist? Or what you want exists but its too ‘macro?’

I think a sample playback device, which streams files from an sd card with variable speed playback is definitely an approachable project without prior experience. This might look something like a teensy and involve learning a bit of c++ and using the teensy audio design tool and copying most of the code from examples…

…but then that would need some type of interface which will involve picking up some electronics knowledge. Which is manageable but possibly a slippery slope depending on your expectations.

If you’re after something that does slip mode and grabs loops and is more like an actual cdj… I personally would find some development platform that has taken care of the interface and lets you focus on the code. Something like norns or the daisy platform. Working with audio buffers in an embedded system (likely using c and pointers) can be a steep learning curve and could take a while to tackle.

I don’t want to come off disparaging… but depending on how ambitious you’re feeling it is very likely your desires change before terraforming your brain to know how to realize them. Or that’s my experience anyway.

If you were to choose between making an interface that controlled a basic sample playback device and making a program or pure data patch that did cool stuff w audio which one would you choose?

3 Likes

I think it’s a mixture of wanting to learn and also because the device doesn’t exist.

I would love to expand on this idea later if the learning/building process is something I enjoy. Im guessing when you said slip mode that means like scrubbing through a sample which i don’t necessarily need. Don’t necessarily need it to loop either although I do probably want to build a looper in the future.

My interest in the whole project comes from playing live sets with my octatrack and most recently incorporating a eurorack case for processing (most granular/reverb/delay).

So I think to start I would simply like a device that can playback stereo audio files. And potentially record but even just playback would suit me fine to start. Would love to add a cdj style cross fader but this also could easily be handled with a eurorack crossfader.

And I was thinking puredata just because I’ve seen it name dropped a bunch but I’m open to any software for programming. I need to research the daisy platform more as well.

Also thanks for your response I feel like it’s hard to help someone with no experience at all so I appreciate ya!

2 Likes

Excellent. Yes. Okay, how long the audio files are might have some influence here. If they are like “backing track” length, and/or one shots you can get there and possibly a lot farther with a teensy, possibly an audio shield depending on your teensy version, maybe some perf board, a few circuits to get power and raise line to euro levels, all flying wire style to a panel…

If you want more room to improve, less hardware headaches, something like a daisy init might make a lot more sense. Seems like you can just focus on the audio programming aspect and the hardware is not limiting once you want to get into looping etc.

I thought I remember someone making a generic teensy audio eurorack shield, but maybe I’m mistaken…

On the weirder side I recall some projects using a sparkfun “Wav Trigger” now called “Audio Processing Evaluation Board” or something and circuit bending the clock with CV all in euro format…

2 Likes

Without knowing too much about all this but maybe existing projects can be a starting point. Do you know the M8 tracker? It’s built upon open source software and will also run on a teensy, so you can build your diy M8. Here’s the instructions: M8Docs/M8HeadlessSetup.md at main · Dirtywave/M8Docs · GitHub

Maybe you can take a peek at the code and get some ideas for your project.

I actually have the m8. And I really like it but I’m selling it to buy an er-301 which I also think could accomplish what I’m trying to do pretty easily.

The m8 is really cool but I don’t really need all the bells and whistles of it. And the 301 is definitely above and beyond what I would need. Still would like it even with this ideal device I’d like to design.

I feel like the whole process of making this hopefully opens doors to designing more advanced loopers/granular processors

One of my favorite platforms for prototyping new instrument ideas is the Electrosmith Daisy platform. It’s similar to programming a rasp pi / arduino / teensy board, but specifically tailored for musical applications. And they (somehow) have a stable supply chain! Also the patch-sm module is designed to essentially be plug-and-play for eurorack (look into the Daisy seed if you’re thinking a standalone device). There is also the ability to use pure data code as well (I only have experience with C++ and MAX MSP/gen~ code). One of my prototypes uses a Daisy to sample in multiple channels of audio via line-in/external mic, loop/pitch-shift, and add reverb/delay effects…all controlled with individual knobs. Highly recommend looking into it! Patch Submodule — Electro-Smith

4 Likes

I was looking at the Daisy patch which looked really cool because of the separate outputs.

Seems like I could program something to go to different outputs which could maybe be a crossfader that could blend audio signals.

My main concern really is being able to handle long files. Ideally would like it to be handle up to 10-12 min songs and a bunch of them. And if it could record and I could maybe name them or edit them somewhere. If that’s asking too much I’d definitely be content at least initially with being able to load songs on a sd card.

Do you think teeensy or the Daisy system would be better for longer files?

What differentiates the submodule from something like the init or patch module?

That prototype sounds very much aligned with what I’m trying to build as well!

if i were just getting started on this project, i would begin with either pure data or supercollider tutorials and not worry about the hardware side of things until i had the sense of whether i was enjoying the process of coding. this way, i would be reducing the number of things i was trying to learn about up front.

8 Likes

The Patch.Init is Electrosmith’s fully assembled eurorack module, with a Patch Submodule already included. To use the patch submodule, you’ll need to make your own PCB (which is open source and easily available, lemme know and I can send you the PCB files!). Using a patch submodule with your own pcbs is ultimately cheaper, and allows you the ability to customize the PCB/knobs/layout to your own design. If you’re interested in Daisy, I’d recommend starting with the Patch.Init eurorack module, it’s the quickest way to start prototyping your code (and not have to worry about PCB/hardware stuff). If you’re really interested to dive into Daisy, the synthux.academy community is awesome and heavily focused on helping folks learn how to create instruments using Daisy https://www.synthux.academy/

2 Likes

This strikes me as a task for “streaming audio from an sd card” fwiw

While the daisy has a relatively enormous amount of RAM for a dev board this is not what you’d want to use for this task. (Speaking of the RAM/audio buffer here not the daisy platform in general).

Even commercial samplers stream larger files from SD.

All that lauded “audio buffer” room on the daisy platform will be for dsp, looping, delays, granular effects, etc…

Just wanting to point your research in the right direction for that task.

3 Likes

So the Daisy platform isn’t able to stream from sd card?

Someone with more experience with the platform correct me if I’m wrong, but from appearances the daisy doesn’t have an sd card slot on the seed dev board.

The daisy has the io necessary to read and write from an sd card but you need to have those connected electrically somehow.

The daisy patch.init doesn’t seem to have an sd card slot.

The daisy patch does.

The teensy has one built in on some models.

Just to clarify though, I was not speaking about platforms persay but programming (when you get there). “Streaming from an SD card” would be a search term that points you in the right direction for writing code that will play a 10 min file.

I can confirm that the Daisy Patch.Init does have an SD card slot ready to go. Just tried reading a preloaded wav file from a micro SD card and it works! I tried loading a 10+ minute song, and I ran into some buffer/memory issues…but this can likely be sorted out in code.

3 Likes

The Daisy Pod also has an SD card reader on board as well as some audio in/out, MIDI in/out, and a few buttons/pots & encoder. It’s essentially a prototyping carrier board for the Daisy Seed.

2 Likes

M8’s microcontroller firmware is not actually open source, though the creator has mentioned the possibility of opening it in the future.

OP, just so you’re aware, using long audio files necessitates streaming audio from disk and will likely make development much less beginner-friendly. You may want to consider seeing what you can so with short audio snippets (stored in RAM) to get your feet wet first.

Really good to know!

To be honest I already have a bunch of devices that can handle shorter buffers. I may start with just trying to build out something that can function more as a looper but I’m definitely more interested in something that can handle longer files.