Playing Multiple Sample Loops Simultaneously


#1

Hi! I am interested in purchasing as I have some projects in mind. I will use two separate posts for this.

One, is it possible to play multiple loops simultaneously?

Simple version: 4 tracks, one for each loop with the ability to change the respective loops in realtime, for a live performance for example.....

Thank you in advance!


#2

I should be clear....I mean prerecorded loops.


#3

should be possible.

probably the main challenge is "change the respective loops in realtime" and what this actually means.
if this is changing the start point, should not be an issue, as long as the streaming for SD card is quick enough.
the issue is changing the start point, will need to re-read the buffer, this is done in a separate thread for performance reasons. so depending exactly what is being done this should not be an issue.

Now... you could get clever here, if depending on your problem domain, e.g. by reading into memory buffers, this would work if you knew where the jump points were likely to be.

personally, Id just 'give it a go' ... frankly, Axoloti is such great value (cheap!) its easier to try than to over think it, even if it doesn't do what you have in mind, you'll still find a great use for it... its so flexible :smile:


#4

Thx for your swift response! I should have worded that better...I meant change the actual loops that are playing in real time...like choose different loops in real time and then apply fx to them. I hope that is clearer:)


#5

yeah, chaining the actual loop being streamed shouldn't be a problem, as long as its not too frequent.
I thikn @jaffasplaffa has played with streaming quite a bit, he might be able to say more on how quick it is to start streaming a new file.


#6

Yes it is possible. But there are things to keep in mind:

  1. Sample length. Axoloti can load a certain sample length in total(have not tested precisely how long that is). BUT...... I have one patch with 4 samples loaded in tables. The sizes of those 4 tables, individually are:
    2091752 (43,57816666666667)
    1048576 (21,84533333333333 seconds)
    262144 (5,46133333333333 seconds)
    262144 (5,46133333333333 seconds)

Calculated like this:
Tablesize/48000(Axolotis samplerate) = table length in seconds.

That is around 1 minut and 10 seconds in total of those 4 tables. I think you can also make 7 tables of 10 seconds if you want, cause you still stay withitn 1 min 10 secs....

But from what I under stand you would like to process the loops through effects too, right? Both the tables and effects like delay/chorus/etc. use SDram. So I think it would be good practice to make maybe 4 loops, 4 bars each. Not too long...... And then use the rest of SDram for the effects.

Keeping everything tight in real time can be a challenge. Still struggeling a bit with some things. But a good idea is to prepare the sample WELL before you import them into Axoloti. Make sure you know exactly tempo, length in samples, etc. You are going to need that information for Axoloti. Maybe even make sure the tempo/length of all the loops you want to use are the same. That will make it WAY easier to work with.

But again, there are many things to consider, depending on which road you wanna take. Like @thetechnobear says, you should just try and build one and see what issues comes up. You can always ask for tips :wink:


#7

I wasn't suggesting loading the loops,
I was thinking streaming directly from SD card, as there is little manipulation happening.


#8

Yeah again, I think my vocabulary is off.

Streaming: you mean using the waveplayer?

Just notice a post i didnt see before:

Yeah you can also change loops in realtime. BUT there is usually a small "blib" when loading a new sample into a table. The larger the table, the longer the blib.


#9

using wave/play ... then table length is irrelevant, as you are streaming directly off the card.

there could be a very short wait when doing this, as I assume it has to load the first buffer of data, in the streaming thread.his could become a factor if you are very frequently changing what you are playing back or doing starting the steaming of many things at exactly the same time. it all comes to IO being 'relatively' expensive.
(I've not checked the code, so its an assumption).

all that said, if its launching a few loops, Id have thought it would cope.
(in contrast I suspect using streaming, as say a sample player back, would cause issue due to frequency of changes)

thats why not to use tables...
also I don't think the table size should matter... it should be down to the size of the file you are loading, i.e. a small file into a large table should be quick. (afaik)


#10

Yeah. I just prefer the tables, cause yo can manipulate it more than the waveplayer. Both can be used for sure :smile: But yeah the tables will make blibs.

BUT
You could just have 4 tables with 4 loops running in sync and feed their outputs into a muxer. Then you select loop played from the muxer.

Again. there are many ways to do this :smile:


#12

so generally, im gathering....the shorter the sample, the better, due to ram/buffer limitations?


#13

cheers for your response, will have to go through it more deeply....the "blibs" you are referring to are a (unwanted) sound?

(I deleted my earlier reply as I hadn´t tagged mr splaffa:P)


#14

The blib comes when a new sound is loaded. I am not sure about why there is a blib. Maybe Johannes or thetechnpbear know this.


#15

I am just getting back into axo stuff and playing around with tables and raw files. first question is what is the best way to get table/play pitch to loop. I am not sure if a simple toggle in means it will loop or just play once but in any case my raw file is shorter than the table and a series of triggers seems a good way to work as i can also trigger a short enveolpe at the same time to mitigate clicks.I am currenly putting an lfo into the start inlet but thismeans the on and off times are equal. what is the best way to trigger a long on with a very short off in the duty cycle? My first thought was a square wave with a pulse width.

also about raw files- do they need to be mono?

thanks