Pop

I agree! Then we could start with an experimental sound from sound picker and modify it.

For all hardcore sound fans:

Warning: sfxr knowledge required, also base64 and binary data conversion. I only provide the structure information here.

Guide to the interpretation of sound data

Main purpose: Decoding of unreadable sound data format. Encoding is also possible if you feel like it.

E.g. this is from the Sounds Plus example:


sound(DATA, "ZgBAKgBLQFRAQEBAAAAAAK5T+j46fh4/UwBAf0BAQEBAZEBA")

Get a binary representation by base64 decoding the string, then parse it to this structure:


Type notation:
  cint:
    char in short version
    int in long version
  cfloat:
    char in short version
      -> value / 128.f is used to calculate the float
    float in long version

Version:
  102 for short version, total binary data length is 36
  103 for long version

Structure:
  uint8_t version;
  cint    wave_type;
  cfloat  sound_vol;
  cfloat  base_freq;
  cfloat  freq_limit;
  cfloat  freq_ramp;
  cfloat  freq_dramp;
  cfloat  duty;
  cfloat  duty_ramp;
  cfloat  vib_strength;
  cfloat  vib_speed;
  cfloat  vib_delay;
  float   env_attack;
  float   env_sustain;
  float   env_decay;
  cfloat  env_punch;
  bool    filter_on;
  cfloat  lpf_resonance;
  cfloat  lpf_freq;
  cfloat  lpf_ramp;
  cfloat  hpf_freq;
  cfloat  hpf_ramp;
  cfloat  pha_offset;
  cfloat  pha_ramp;
  cfloat  repeat_speed;
  cfloat  arp_speed;
  cfloat  arp_mod;

I think Codea only uses the short version but it should be possible to pass the long version into the sound function if you ever feel the need to do so.