If you want to play files that are different size than table, you can do that. But unfortunately in Axoloti we can not, like PD, change the actual tablesize dynamically, so instead you need to compensate the range of the phasor, so it only plays back a part of the table.
And that's the most obvious thing that springs to my mind is, that you dont have any compensation after the phasor. You need it to only playback the part that you recorded. And it might not be too simple, cause for every table size there is, you need to bit shift the compensation value a certain amount. The bit shifting is what make things tricky in Axoloti world, in Pure data it's much simpler cause you can work with real world value like samples and ms, etc. But in Axoloti you can also use those values you just need to bithift a bit to get the right values. So keep that in mind, that you probably need to add some bitshifters too.
If you for example is playing a file that is 34565 samples and the table size is 65536, using the set up below in your picture, it will only set the phasor to play the sample at right speed...... BUT the phasor ill still play through the whole table, so you need to set some kind of compensation.
Like this for example, using a math/*c for the compensation, you can feed any value that you get automatically from the speed into "b", to set that "file length" compensation automatically.
And also try use the scopes to see what actually is going on, so you understand better what you need to fix. It makes it much easier
If you set the math/* "b" input to full(64) it will playback the whole table, if you set it to 32 it will playback half the table etc. You need to find out how to set this compensation value automatically too. It's possible, you can probably find you own way of doing that with some of rbrts objects. Oh, and its for the "b" input you are going to need the bit shifting.