What is the +Drive

Hello, I’m new to Elektron gear and Digitakt. Maybe a dumb question but what is the +Drive? How I use it on the Digitakt?

Thanks

The +Drive is the storage area where all the projects, sounds, and samples are stored.

I strongly encourage you to go to Elektron’s website, where they provide a full user manual that explains all aspects of the Digitakt:

4 Likes

+Drive is the main storage on the device. You load sounds from this to the project area per project.

2 Likes

+Drive is Flash Storage, capacity is 1GB.

The +Drive is a non-volatile storage. It keeps up to 128 projects stored internally, and it also holds all saved sounds. The +Drive also contains the sample bank. All projects have access to these samples.

:slight_smile: Cool isn’t it ?

6 Likes

and Drive is a big word for a lousy capacity…
but that is how marketing works :laughing:

yes yes, I know, that it is sufficient for most uses and in the future there might be a way to back that capacity up…
I belive that when I hold the software in my greedy hands… And I hope that it will be quick…

Just pulled my Digitakt out again after a while, and I am trying to relearn it properly, since basically everything I did before was a half baked workaround.

I would like to know exactly what the +Drive is. Like, let’s pretend we’re using a computer.

Obviously, the +Drive is not the root directory. I created a new project, and when I navigated to the +Drive, both it and the Sound Pool claim to both be empty.

However, if I load an old project from a few years ago, there are, in fact, plenty of sounds that I imported. When I look at the +Drive and the Sound Pool while in the old project which has sounds that I have loaded, they claim to both be empty! I mean, I press the buttons and I hear the cr78 I sampled? If this sample is not in the +Drive, where is it?

Is the +Drive a wrapper for the project? I tell you, I never fail to find Elektron’s terminology utterly baffling. It would be swell if they actually had a glossary out there, but I can not find one.

Anyway, if someone could describe this in a way that a UNIX kid could understand, I’d be grateful.

1 Like

It’s not a hierarchical filesysttem like a UNIX filesystem with arbitrary levels of files and directories. I think it’s a content-addressable storage system, so the “files” are accessed by a unique key (some kind of hash ID of the actual file data) not by a pathname like /project1/sounds/cr78-snare.wav. So just think of it as “the non-volatile storage device where data is saved even when the digitakt is powered off” rather than as a UNIX-like filesystem.

Page 14 of the manual says:

When a Sound is imported to a pattern, it becomes an independent copy of the Sound on the +Drive and is not linked to the original Sound on the +Drive. Instead, it fully becomes a part of the pattern.

I think that’s why you can hear the samples that don’t show up in the sound pool: the samples have been copied into the project and you’re hearing that copy of the sound.

2 Likes

Awesome! Never heard of CAS before, so thanks for the knowledge drop.

I should point out that while I used IRIX a lot back in the day for my job as a film compositor/fx artist, I have a user’s understanding, not a programmers. So what you said was just about as technical as I can digest easily. Always willing to work a bit to learn something fundamental, though, so thanks.

So, bearing in that in mind… According to the flow chart on page 14 of the new manual, the Project is in the +Drive. Or so it looks to me, but I think I might have a fundamental misunderstanding of the whole structure.

It also seems implied that the +Drive contains everything, and yet mine contains nothing at all, even though I have a projects, a few sequences, and some samples. Likewise with the Sound Pool.

Yet I can still add and replace samples, which are visible in the Project (gear icon) sample section. So, where do these samples reside, if the appear to not be in either the +Drive or the Sound Pool?

I have to say, once I get things loaded in, I love playing with this little guy. But absolutely nothing seems familiar to me- not the terminology (is there a glossary somewhere? Googling each and every (and i do mean every!) term is a long, frustrating task, and it would be nice to find something that explains this entirely unique set of terms. Like, should I read an Octatrack manual? Does it actually define these things?

Thanks again for your help. Really appreciate it.

1 Like

Samples are stored in the +drive. Sounds are samples + parameter changes, you can save them to the Sound banks for universal use or just as part of the pattern. Sounds can be moved to a Sound pool for trig insertion, each project can have one Sound pool.
When you “navigated to the +drive”, you must have done something wrong, the +drive is not the same as the project ram, the project ram needs to be populated from the +drive.
The sound pool is a collection of sounds and is project based so each project requires its own sound pool(if you want one) to be put together from the sound banks which are universal.
Accessing the +drive is done in two ways, either through a single track using func+src followed by func+yes or as a whole through the sampling menu.
Accessing the +drive through a single track will add or replace the sample in the project ram slot you are in, so be aware that any patterns in the project using the same ram slot will be affected. Adding samples to the project ram through the sample menu allows bulk loading and adds samples to the end of the project ram list in unused slots.

1 Like

I also had never heard of this before, but after reading it actually explains a lot.
This explains why samples can’t be edited and why you can’t externally edit samples and put them back in the +Drive without its references failing.

It totally makes sense now.

1 Like

I’m referring to holding [FUNC] and pressing down the [LEVEL/DATA] knob to open the Sound Browser. I’m looking at it right now, and it currently says, “+DRIVE HAS NO SOUNDS”.

If I hit the left cursor to access the “VIEW POOL” option, it says, “SOUND POOL IS EMPTY”.

Am I not looking at the +Drive and Sound Pool when I do this?

First, you have to make a distinction between Sounds and samples.

Let’s take a single square waveform sample: to get a bass out of it, you’ll set a loop in the SRC menu. And maybe add some filter with resonance and envelope to turn it into acid bass.
Now you can save these settings around the sample as (what Elektron calls) a Sound, and this one will be made available in your +Drive for all projects.
You can also load it in the Pool so that you can create a Sound lock on a trig.

Try saving a Sound (check the manual for this), you should see it appear.

Is it clearer?

1 Like

@ [LyingDalai]

Thanks! This is a little clearer. I think I have badly misinterpreted the flow chart in the manual, so this helps a bunch.

So, if I can store “Sounds” on the +Drive and the Sound Pool, what’s the difference?

Once a Sound is put in the Sound pool it is part of the project ram and is there specifically for trig insertion across multiple tracks. Sounds live in the +drive until you select one for an audio track then it will replace the current track sample, bring the related Sample from the +drive and add it to the end of the project ram list.
Something else to consider is that new Samples, and Sounds with new sample links that are added to the project ram require a whole project save to retain project ram slot data, save pattern to project saves everything else.

1 Like

I was going to start a new thread to ask a question about some +drive stuff, but this seems like a good one to resume.

Does anyone have any info on the maximum number of files that can be stored in the +drive? I’m not talking about the capacity in bytes (megabytes/gigabytes), but the actual number of files or objects (samples) that can be stored.

I’m considering importing a rather large number of single-cycle waveforms, which don’t take up much in bytes, but the number of items will be large.

I think it’s safe to import them, because I’m under the impression the operating system isn’t on the +drive, so I believe worst case scenario is that I blow out the +drive and get some kind of “out of storage” message(?)

This comment touches a bit on what I’m asking.

On Unix filesystems, depending on the design you might end up with an inode table or an inode tree, which lead to different limitations on the max number of files overall, or max number of files per directory.

Do we know for sure this is CAS? Even with CAS, the pointers to each object can eventually hit a limit, depending on the metadata area…

If anyone has any info on the max number of samples that can be stored, or on the type of filesystem that’s used, I would love to know.

It’s the drive that gives you more

I think this would be the case and you’re safe.

Regarding the +Drive itself, as other have mentioned, it’s flash memory that stores, AFAIK, every sample, sound, preset and project. This memory is managed by the OS, which exposes some APIs thru MIDI SysEx depending on the data type supported in every device.

Basically, there are 2 APIs: one for the samples and one for the sound and projects. In the Model:Cycles, there is a tweaked preset API that mimics the sample API. (I guess this is due to the fact that Model:Samples and Model:Cycles share the same hardware.)

Take a look at the struct fs_operations definitions in here. Notice that these structs include non FS related members.

To my knowledge, the +Drive is not CAS but the sample and preset FS are. These FS provide a 32 bits hash to identify the samples or presets. I guess, this is what they use internally to address a sample regardless of the directory it’s in.

Regarding the amount of samples, a few things to mention.

  • I’d say sound and project memory is already reserved.
  • The SysEx messages use u32 for addressing the samples in some operations.
  • Hypothetically, the SysEx data block size used there (the value came from reverse engineering Elektron Transfer) is 8 KB, which makes sense considering how large samples are. This would give 1 GB / 8 KB / block = 128 K blocks. But since there are other data types the actual number of blocks has to be smaller than that. I’d say the amount of samples would be in the order of tens of thousands but it’d be just a guess.
2 Likes

Thanks!

I didn’t know about this elektroid project – it sounds familiar, but perhaps I didn’t realize what it was. I’ll definitely be reading through that to potentially satisfy other curiosities I have about these systems. I see it runs in Linux, which is pretty cool. I’ve used amidi to transfer sysex before, but it’s really nice to know this tool exists and is open source. Is this your project?

That might be a big clue, actually. I think you’re right that it might be in the order of tens of thousands – if I had to guess, I would probably say 64k files per directory, like FAT32/VFAT. If that’s the case, I’m safe.

I have about 10k files I want to import. I’m hoping to add them all once. I’ll report back to this thread if I get any good data points on this, in case anyone else has the same question in the future.

Yes.

My calculations were an approximation of the total amount of files. No idea about the amout of files per directory. Even if it’s possible to store 10 K files in a directory, there will be other things to consider.

For instance, will the machines work reliably with such large directories? Or, will there be issues regarding the machines and computer OS buffers when reading a directory? (When reading a directory, a single SysEx message containing the name and other details is sent, so it will be larger than 100 KB.)

Why not splitting all those files across a few dirs?

I’m curious about your experiment.