Warning: session_start(): open(/var/lib/php/sessions/sess_mmrgv48l05u2qclqmu1gfud28c, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
import static x30_pkg.x30_util.VF1;
sclass PlayAudioLoop > DynModule {
bool enabled = true;
float gain = 0.5f;
File file;
transient short[] loop;
transient StereoSamplesIterator source;
transient GainSoundSource gainSource;
start {
loop = decodeAudioFileToStereoSamples(file);
onChange(r {
set(gainSource, gain := enabled ? (double) gain : 0.0);
});
// Make sound source & add to audio output module
dm_addSoundSource(
gainSource = GainSoundSource(enabled ? gain : 0,
source = stereoSamplesIterator_longCounter(loop)));
}
visualize {
ret jHandleFileDrop(voidfunc(final File f) enter { thread { loadFile(f); } },
centerAndSouth(withLabel("File:", dm_fieldLabel('file)),
centerAndEast(
withLabel("Volume (0-200%):", liveSliderZeroToOne(gain/2, voidfunc(float f) { setField(gain := f*2) })),
dm_fieldCheckBox('enabled))));
}
void loadFile(File f) {
loop = null;
setField(file := f);
print("Loading audio file: " + f);
pcall { loop = decodeAudioFileToStereoSamples(f); }
gainSource.replaceSource(source = stereoSamplesIterator_longCounter(loop));
}
}