!7 // TODO: volume concept Sound { S name, dataID; } cmodule AISounds > DynCRUD { afterVisualize { addSelectionDependentButton("Play", rThread { playSound(selected()); }); } // API void playSound(Sound sound) { if (sound == null) ret; print("Playing sound: " + sound.name); playAudioFile(loadLibrary(sound.dataID)); } void playSound(S soundName) { playSound(random(conceptsWhereCI Sound(name := soundName))); } }