let shader loading be independent from calling dir
simplify fm modulation code