How can I implement memory limitation for a project on loading samples?

I really like the memory limitation on my polyend tracker, I would like to have such limitation in renoise, can it be organized through scripts or some other way?
It’s very inspiring and disciplining to use less samples.

you misunderstood me, I want renoyz to specifically limit me in the size of samples, for example, when the total size of samples I uploaded reaches 1mb then renoyz would not let me work on the project.

1 Like

Yes, any ideas on how this could be implemented?

Hello,
This is a simple script,
just go through all the instruments and samples in them every time you upload a sample
and calculate the restrictions.
This can be inferred from the information from the samplebuffer.
The calculation is then trivial.
Filesize = (nr of samples in sample * nr of channels * bit depth) / 8 + wav header (44 bytes standard).

So a 1s sample on 44.1kHz in mono in 16 bits is equal to (44100 * 1 * 16) / 8 + 44 = 88244 bytes.
That’s all the magic.

3 Likes

Would be cool if it displayed a graphical slider showing % of arbitrary memory limit consumed and allowed for any arbitrary memory limit

Could make for some fun forum challenges to compose tracks with small footprints

3 Likes

The maker space near my home had a “music on a floppy disk” challenge once. You could use whatever you wanted and store it in any file format you liked. But it had to fit on a 1.4mb floppy without being compressed. As in the program you’re using to play the file had to be able to opening it without needing to extract it first. That was a fun challenge! With wildly different results.

If that graphical slider showing the percentage happens it could be a cool idea for a MBC.

3 Likes

heh, recently thought about the exact same thing :slight_smile: . A way to have certain set of limitations . For example based upon famous samplers of yesteryear, seeing that Renoise is basically a pimped out sampler.

I asked chatgpt to list all the characteristics of old classic samplers from which the limitation-presets in renoise could be set;

" Can you name all the hardware limitations regarding maximum sample time, bitrates, sample quality, polyphony, mono or stereo samples, aliasing characteristics (other notable specifications) of all famous hardware samplers used in Hip Hop?

ChatGPT

ChatGPT

While I can provide some general information about hardware samplers used in Hip Hop, it’s important to note that specific details may vary depending on the model and version of each sampler. Here are some hardware samplers that have been commonly used in Hip Hop, along with their general specifications:

  1. Akai MPC Series:
  • Sample Time: Varies by model; typically ranges from a few seconds to several minutes.
  • Bitrate: 16-bit.
  • Sample Quality: 44.1 kHz is standard.
  • Polyphony: Varies by model; often in the range of 64 to 128 voices.
  • Mono/Stereo: Supports both mono and stereo samples.
  • Other Notable Specifications: Time-stretching, sequencing capabilities, built-in effects.
  1. Ensoniq ASR-10:
  • Sample Time: Up to 18 seconds at standard quality.
  • Bitrate: 16-bit.
  • Sample Quality: 44.1 kHz.
  • Polyphony: 31 voices.
  • Mono/Stereo: Supports both mono and stereo samples.
  • Other Notable Specifications: Advanced synthesis capabilities, filters.
  1. E-MU SP-1200:
  • Sample Time: 10 seconds total (5 seconds per mono channel).
  • Bitrate: 12-bit.
  • Sample Quality: 26.04 kHz.
  • Polyphony: 8 voices.
  • Mono/Stereo: Mono samples only.
  • Other Notable Specifications: Distinctive sound, limited sample time contributes to its iconic character.
  1. Roland SP-404:
  • Sample Time: Varies by model; typically ranges from a few seconds to several minutes.
  • Bitrate: 16-bit.
  • Sample Quality: 44.1 kHz.
  • Polyphony: 12 voices.
  • Mono/Stereo: Supports both mono and stereo samples.
  • Other Notable Specifications: Effects processing, pattern sequencer, compact size.
  1. Korg Triton Series:
  • Sample Time: Varies by model; typically ranges from a few seconds to several minutes.
  • Bitrate: 16-bit.
  • Sample Quality: 48 kHz.
  • Polyphony: Varies by model; often in the range of 62 to 120 voices.
  • Mono/Stereo: Supports both mono and stereo samples.
  • Other Notable Specifications: Extensive sound library, built-in effects, sequencer.

These specifications are generalizations, and the exact details may differ between specific models within each series. Additionally, advancements in technology may result in newer versions with improved specifications. Always refer to the product documentation or specifications for the most accurate and up-to-date information."

As limitations breed creativity I wouldn’t mind seeing something like this build in, though with discipline you can already do it I guess.

1 Like

Hello,
I don’t know why and I haven’t investigated it in any way,
but Renoise adds 68 bytes to the saved wav. Probably some metadata, I don’t know.
So I added it to the length of the created sample.
Here is the first shot and edit the source as you like.
I put the main calculations in the ‘idle’ loop because it seemed the easiest.

cz.martblek.LowResource_v01.xrnx (1.6 KB)

2 Likes

very cool. should have a popup warning when you hit 90%.
It would be fun to have a small footprint challenge if someone wants to organize it!

1 Like

I’d be willing to set up a competition again. I even have an idea for a t-shirt design that I could hand out to the winner.

1 Like

giphy

1 Like

Okay!

1 Like

just don’t fall to the darkside in the process :wink:

1 Like

Guessing you added loop points to the .wav file?
Start loop and end loop points are part of .wav spec; they are stored there.

1 Like

There’s also Renoise Slice Markers, which are normally used in the .wav spec as a means of dividing up different songs.

2 Likes

V0.02 is here.
some gui changes.
Sample limit increased to 8MB.
It’s free to download on Gumroad.
The link is in my profile.

PS: And I checked the wav saving and you’re right. It varies by sample repeats etc.
I’ll take that into account in the next version and look at sample slices as well

and just by the way, how does polyend work with these samples? does it remove metadata? or if you set repetition, will it also be reflected in the polyend?
Thanks

3 Likes