add freesound() function with local cache