/sfxr/Data.hx

http://github.com/tong/sfxr · Haxe · 58 lines · 39 code · 18 blank · 1 comment · 7 complexity · 53cc2b485ffc8258bb2ef951baef157f MD5 · raw file

  1. package sfxr;
  2. import flash.utils.ByteArray;
  3. import flash.utils.Endian;
  4. class Data {
  5. public static function apply( synth : Synth, file : ByteArray ) {
  6. // synth.deleteCache();
  7. file.position = 0;
  8. file.endian = Endian.LITTLE_ENDIAN;
  9. var version = file.readInt();
  10. if( version != 100 && version != 101 && version != 102 )
  11. return;
  12. synth.waveType = file.readInt();
  13. synth.masterVolume = (version == 102) ? file.readFloat() : 0.5;
  14. synth.startFrequency = file.readFloat();
  15. synth.minFrequency = file.readFloat();
  16. synth.slide = file.readFloat();
  17. synth.deltaSlide = (version >= 101) ? file.readFloat() : 0.0;
  18. synth.squareDuty = file.readFloat();
  19. synth.dutySweep = file.readFloat();
  20. synth.vibratoDepth = file.readFloat();
  21. synth.vibratoSpeed = file.readFloat();
  22. var unusedVibratoDelay = file.readFloat();
  23. synth.attackTime = file.readFloat();
  24. synth.sustainTime = file.readFloat();
  25. synth.decayTime = file.readFloat();
  26. synth.sustainPunch = file.readFloat();
  27. var unusedFilterOn = file.readBoolean();
  28. synth.lpFilterResonance = file.readFloat();
  29. synth.lpFilterCutoff = file.readFloat();
  30. synth.lpFilterCutoffSweep = file.readFloat();
  31. synth.hpFilterCutoff = file.readFloat();
  32. synth.hpFilterCutoffSweep = file.readFloat();
  33. synth.phaserOffset = file.readFloat();
  34. synth.phaserSweep = file.readFloat();
  35. synth.repeatSpeed = file.readFloat();
  36. synth.changeSpeed = (version >= 101) ? file.readFloat() : 0.0;
  37. synth.changeAmount = (version >= 101) ? file.readFloat() : 0.0;
  38. synth.validate();
  39. }
  40. }