Тебе нужна настраиваемая реализация ISound путем создания подкласса MovingSound. У него есть поле высоты тона, которое можно изменить, это должно быть то, что тебе нужно для твоей "скорости звука".
Затем, чтобы можно было остановить это, установи для параметра donePlaying значение true на ISound.
В зависимости от того, что воспроизводит этот звук, нужно где-то хранить экземпляр ISound. Если у тебя есть блок, то TileEntity будет хорошим выбором. Кроме того, звуки полностью на стороне клиента, поэтому нужно отправлять пакеты клиенту, когда звук должен начинаться/останавливаться.