((section 2 "Outdated egg!" (p "This is an egg for CHICKEN 4, the unsupported old release.  You're almost certainly looking for " (int-link "/eggref/5/allegro" "the CHICKEN 5 version of this egg") ", if it exists.") (p "If it does not exist, there may be equivalent functionality provided by another egg; have a look at the " (link "https://wiki.call-cc.org/chicken-projects/egg-index-5.html" "egg index") ". Otherwise, please consider porting this egg to the current version of CHICKEN.") (tags "allegro" "game")) (section 2 "allegro" (p "This document pertains to audio related methods found in the Allegro egg.") (p "Please see the main [allegro] wiki page for more information.") (toc)) (section 2 "Constants" (ul (li "audio-pan-none"))) (section 2 "Enums" (section 3 "audio-depth" (def (sig (procedure "(audio-depth->int audio-depth)" (id audio-depth->int))) (p (tt "{audio-depth") " may be one of the following symbols:") (ul (li "int8") (li "int16") (li "int24") (li "float32") (li "unsigned") (li "uint8") (li "uint16") (li "uint24"))) (def (sig (procedure "(int->audio-depth integer)" (id int->audio-depth))))) (section 3 "channel-configuration" (def (sig (procedure "(channel-configuration->int channel-configuration)" (id channel-configuration->int))) (p (tt "channel-configuration") " may be one of the following symbols:") (ul (li "one") (li "two") (li "three") (li "four") (li "five-one") (li "six-one") (li "seven-one"))) (def (sig (procedure "(int->channel-configuration integer)" (id int->channel-configuration))))) (section 3 "mixer-quality" (def (sig (procedure "(mixer-quality->int mixer-quality)" (id mixer-quality->int))) (p (tt "mixer-quality") " may be one of the following symbols:") (ul (li "point") (li "linear"))) (def (sig (procedure "(int->mixer-quality integer)" (id int->mixer-quality))))) (section 3 "playmode" (def (sig (procedure "(playmode->int playmode)" (id playmode->int))) (p (tt "playmode") " may be one of the following symbols:") (ul (li "once") (li "loop") (li "bidirectional"))) (def (sig (procedure "(int->playmode integer)" (id int->playmode)))))) (section 2 "Records" (section 3 "audio-stream" (def (sig (record "audio-stream" (id audio-stream))))) (section 3 "mixer" (def (sig (record "mixer" (id mixer))))) (section 3 "sample" (def (sig (record "sample" (id sample))))) (section 3 "sample-id" (def (sig (record "sample-id" (id sample-id))))) (section 3 "sample-instance" (def (sig (record "sample-instance" (id sample-instance))))) (section 3 "voice" (def (sig (record "voice" (id voice)))))) (section 2 "Functions" (section 3 "Audio" (def (sig (procedure "(make-sample* (blob buffer) (unsigned-integer samples) (unsigned-integer frequency) audio-depth channel-configuration (bool free-buffer))" (id make-sample*))) (p "Implements al_create_sample.")) (def (sig (procedure "(make-sample (blob buffer) (unsigned-integer samples) (unsigned-integer frequency) audio-depth channel-configuration (bool free-buffer))" (id make-sample))) (p "Implements al_create_sample, with (free-sample!) declared as a finalizer.")) (def (sig (procedure "(free-sample! sample)" (id free-sample!))) (p "Implements al_destroy_sample.")) (def (sig (procedure "(make-sample-instance* sample)" (id make-sample-instance*))) (p "Implements al_create_sample_instance.")) (def (sig (procedure "(make-sample-instance sample)" (id make-sample-instance))) (p "Implements al_create_sample_instance, with (free-sample-instance!) declared as a finalizer.")) (def (sig (procedure "(free-sample-instance! sample)" (id free-sample-instance!))) (p "Implements al_destroy_sample_instance.")) (def (sig (procedure "(sample-frequency sample)" (id sample-frequency))) (p "Implements al_get_sample_frequenecy.")) (def (sig (procedure "(sample-length sample)" (id sample-length))) (p "Implements al_get_sample_length.")) (def (sig (procedure "(sample-depth sample)" (id sample-depth))) (p "Implements al_get_sample_depth.")) (def (sig (procedure "(sample-channels sample)" (id sample-channels))) (p "Implements al_get_sample_channels.")) (def (sig (procedure "(sample-instance-frequency sample-instance)" (id sample-instance-frequency))) (p "Implements al_get_sample_instance_frequency.")) (def (sig (procedure "(sample-instance-length sample-instance)" (id sample-instance-length))) (p "Implements al_get_sample_instance_length.")) (def (sig (procedure "(sample-instance-position sample-instance)" (id sample-instance-position))) (p "Implements al_get_sample_instance-position.")) (def (sig (procedure "(sample-instance-speed sample-instance)" (id sample-instance-speed))) (p "Implements al_get_sample_instance_speed.")) (def (sig (procedure "(sample-instance-gain sample-instance)" (id sample-instance-gain))) (p "Implements al_get_sample_instance_gain.")) (def (sig (procedure "(sample-instance-pan sample-instance)" (id sample-instance-pan))) (p "Implements al_get_sample_instance_pan.")) (def (sig (procedure "(sample-instance-time sample-instance)" (id sample-instance-time))) (p "Implements al_get_sample_instance_time.")) (def (sig (procedure "(sample-instance-depth sample-instance)" (id sample-instance-depth))) (p "Implements al_get_sample_instance_depth.")) (def (sig (procedure "(sample-instance-channels sample-instance)" (id sample-instance-channels))) (p "Implements al_get_sample_instance_channels.")) (def (sig (procedure "(sample-instance-playmode sample-instance)" (id sample-instance-playmode))) (p "Implements al_get_sample_instance_playmode.")) (def (sig (procedure "(sample-instance-playing? sample-instance)" (id sample-instance-playing?))) (p "Implements al_get_sample_instance_playing.")) (def (sig (procedure "(sample-instance-attached? sample-instance)" (id sample-instance-attached?))) (p "Implements al_get_sample_instance_attached.")) (def (sig (procedure "(sample-instance-position-set! sample-instance unsigned-integer)" (id sample-instance-position-set!))) (p "Implements al_set_sample_instance_position.")) (def (sig (procedure "(sample-instance-length-set! sample-instance unsigned-integer)" (id sample-instance-length-set!))) (p "Implements al_set_sample_instance_length.")) (def (sig (procedure "(sample-instance-speed-set! sample-instance float)" (id sample-instance-speed-set!))) (p "Implements al_set_sample_instance_speed.")) (def (sig (procedure "(sample-instance-gain-set! sample-instance float)" (id sample-instance-gain-set!))) (p "Implements al_set_sample_instance_gain.")) (def (sig (procedure "(sample-instance-pan-set! sample-instance float)" (id sample-instance-pan-set!))) (p "Implements al_set_sample_instance_pan.")) (def (sig (procedure "(sample-instance-playmode-set! sample-instance playmode)" (id sample-instance-playmode-set!))) (p "Implements al_set_sample_instance_playmode.")) (def (sig (procedure "(sample-instance-playing-set! sample-instance bool)" (id sample-instance-playing-set!))) (p "Implements al_set_sample_instance_playing.")) (def (sig (procedure "(sample-instance-detach! sample-instance)" (id sample-instance-detach!))) (p "Implements al_detach_sample_instance.")) (def (sig (procedure "(sample-instance-sample sample-instance)" (id sample-instance-sample))) (p "Implements al_get_sample.")) (def (sig (procedure "(sample-instance-sample-set! sample-instance sample)" (id sample-instance-sample-set!))) (p "Implements al_set_sample")) (def (sig (procedure "(sample-instance-play sample-instance)" (id sample-instance-play))) (p "Implements al_play_sample_instance.")) (def (sig (procedure "(sample-instance-stop sample-instance)" (id sample-instance-stop))) (p "Implements al_stop_sample_instance.")) (def (sig (procedure "(make-audio-stream* (integer buffer-count) (unsigned-integer samples) (unsigned-integer frequency) audio-depth channel-configuration)" (id make-audio-stream*))) (p "Implements al_create_audio_stream.")) (def (sig (procedure "(make-audio-stream (integer buffer-count) (unsigned-integer samples) (unsigned-integer frequency) audio-depth channel-configuration)" (id make-audio-stream))) (p "Implements al_create_audio_stream, with (free-audio-stream!) declared as a finalizer.")) (def (sig (procedure "(free-audio-stream! audio-stream)" (id free-audio-stream!))) (p "Implements al_destroy_audio_stream.")) (def (sig (procedure "(audio-stram-drain audio-stream)" (id audio-stram-drain))) (p "Implements al_drain_audio_stream.")) (def (sig (procedure "(audio-stream-frequency audio-stream)" (id audio-stream-frequency))) (p "Implements al_get_audio_stream_frequency.")) (def (sig (procedure "(audio-stream-length audio-stream)" (id audio-stream-length))) (p "Implements al_get_audio_stream_length.")) (def (sig (procedure "(audio-stream-fragments audio-stream)" (id audio-stream-fragments))) (p "Implements al_get_available_audio_stream_fragments.")) (def (sig (procedure "(audio-stream-available-fragments audio-stream)" (id audio-stream-available-fragments))) (p "Implements al_get_available_audio_stream_fragments.")) (def (sig (procedure "(audio-stream-speed audio-stream)" (id audio-stream-speed))) (p "Implements al_get_audio_stream_speed.")) (def (sig (procedure "(audio-stream-gain audio-stream)" (id audio-stream-gain))) (p "Implements al_get_audio_stream_gain.")) (def (sig (procedure "(audio-stream-channels audio-stream)" (id audio-stream-channels))) (p "Implements al_get_audio_stream_channels.")) (def (sig (procedure "(audio-stream-depth audio-stream)" (id audio-stream-depth))) (p "Implements al_get_audio_stream_depth.")) (def (sig (procedure "(audio-stream-playmode audio-stream)" (id audio-stream-playmode))) (p "Implements al_get_audio_stream_playmode.")) (def (sig (procedure "(audio-stream-playing? audio-stream)" (id audio-stream-playing?))) (p "Implements al_get_audio_stream_playing.")) (def (sig (procedure "(audio-stream-attached? audio-stream)" (id audio-stream-attached?))) (p "Implements al_get_audio_stream_attached.")) (def (sig (procedure "(audio-stream-fragment audio-stream)" (id audio-stream-fragment))) (p "Implements al_get_audio_stream_fragment.")) (def (sig (procedure "(audio-stream-speed-set! audio-stream float)" (id audio-stream-speed-set!))) (p "Implements al_set_audio_stream_speed.")) (def (sig (procedure "(audio-stream-gain-set! audio-stream float)" (id audio-stream-gain-set!))) (p "Implements al_set_audio_stream_gain.")) (def (sig (procedure "(audio-stream-pan-set! audio-stream float)" (id audio-stream-pan-set!))) (p "Implements al_set_audio_stream_pan.")) (def (sig (procedure "(audio-stream-playmode-set! audio-stream playmode)" (id audio-stream-playmode-set!))) (p "Implements al_set_audio_stream_playmode.")) (def (sig (procedure "(audio-stream-playing-set! audio-stream bool)" (id audio-stream-playing-set!))) (p "Implements al_set_audio_stream_playing.")) (def (sig (procedure "(audio-stream-detach! audio-stream)" (id audio-stream-detach!))) (p "Implements al_detach_audio_stream.")) (def (sig (procedure "(audio-stream-fragment-set! audio-stream c-pointer)" (id audio-stream-fragment-set!))) (p "Implements al_set_audio_stream_fragment.")) (def (sig (procedure "(audio-stream-rewind! audio-stream)" (id audio-stream-rewind!))) (p "Implements al_rewind_audio_stream.")) (def (sig (procedure "(audio-stream-seek-seconds! audio-stream double)" (id audio-stream-seek-seconds!))) (p "Implements al_seek_audio_stream_secs.")) (def (sig (procedure "(audio-stream-position-seconds audio-stream)" (id audio-stream-position-seconds))) (p "Impements al_get_audio_stream_position_secs.")) (def (sig (procedure "(audio-stream-length-seconds audio-stream)" (id audio-stream-length-seconds))) (p "Implements al_get_audio_length_secs.")) (def (sig (procedure "(audio-stream-loop-set! audio-stream (double start-seconds) (double end-seconds))" (id audio-stream-loop-set!))) (p "Implements al_set_audio_stream_loop_secs.")) (def (sig (procedure "(audio-stream-event-source audio-stream)" (id audio-stream-event-source))) (p "Implements al_get_audio_stream_event_source.")) (def (sig (procedure "(make-mixer* (unsigned-integer frequency) audio-depth channel-configuration)" (id make-mixer*))) (p "Implements al_create_mixer.")) (def (sig (procedure "(make-mixer (unsigned-integer frequency) audio-depth channel-configuration)" (id make-mixer))) (p "Implements al_create_mixer, with (free-mixer!) declared as a finalizer.")) (def (sig (procedure "(free-mixer! mixer)" (id free-mixer!))) (p "Implements al_destroy_mixer.")) (def (sig (procedure "(sample-instance-attach-to-mixer! sample-instance mixer)" (id sample-instance-attach-to-mixer!))) (p "Implements al_attach_sample_instance_to_mixer.")) (def (sig (procedure "(audio-stream-attach-to-mixer! audio-stream mixer)" (id audio-stream-attach-to-mixer!))) (p "Implements al_attach_audio_stram_to_mixer.")) (def (sig (procedure "(mixer-attach-to-mixer! mixer mixer)" (id mixer-attach-to-mixer!))) (p "Implements al_attach_mixer_to_mixer.")) (def (sig (procedure "(mixer-postprocess-callback-set! mixer (function void (c-pointer unsigned-integer32 c-pointer)) (c-pointer data))" (id mixer-postprocess-callback-set!))) (p "Implements al_set_mixer_postprocess_callback.")) (def (sig (procedure "(mixer-frequency mixer)" (id mixer-frequency))) (p "Implements al_get_mixer_frequency.")) (def (sig (procedure "(mixer-channels mixer)" (id mixer-channels))) (p "Implements al_get_mixer_channels.")) (def (sig (procedure "(mixer-depth mixer)" (id mixer-depth))) (p "Implements al_get_mixer_depth.")) (def (sig (procedure "(mixer-quality mixer)" (id mixer-quality))) (p "Implements al_get_mixer_quality.")) (def (sig (procedure "(mixer-playing? mixer)" (id mixer-playing?))) (p "Implements al_get_mixer_playing.")) (def (sig (procedure "(mixer-attached? mixer)" (id mixer-attached?))) (p "Implements al_get_mixer_attached.")) (def (sig (procedure "(mixer-frequency-set! mixer unsigned-integer)" (id mixer-frequency-set!))) (p "Implements al_set_mixer_frequency.")) (def (sig (procedure "(mixer-quality-set! mixer mixer-quality)" (id mixer-quality-set!))) (p "Implements al_set_mixer_quality.")) (def (sig (procedure "(mixer-playing-set! mixer bool)" (id mixer-playing-set!))) (p "Implements al_set_mixer_playing.")) (def (sig (procedure "(mixer-detach! mixer)" (id mixer-detach!))) (p "Implements al_detach_mixer.")) (def (sig (procedure "(make-voice* (unsigned-integer frequency) audio-depth channel-configuration)" (id make-voice*))) (p "Implements al_create_voice.")) (def (sig (procedure "(make-voice (unsigned-integer frequency) audio-depth channel-configuration)" (id make-voice))) (p "Implements al_create_voice, with (free-voice!) declared as a finalizer.")) (def (sig (procedure "(free-voice! voice)" (id free-voice!))) (p "Implements al_destroy_voice.")) (def (sig (procedure "(sample-instance-attach-to-voice! sample-instance voice)" (id sample-instance-attach-to-voice!))) (p "Implements al_attach_sample_instance_to_voice.")) (def (sig (procedure "(audio-stream-attach-to-voice! audio-stram voice)" (id audio-stream-attach-to-voice!))) (p "Implements al_attach_audio_stream_to_voice.")) (def (sig (procedure "(mixer-attach-to-voice! mixer voice)" (id mixer-attach-to-voice!))) (p "Implements al_attach_mixer_to_voice.")) (def (sig (procedure "(voice-detach! voice)" (id voice-detach!))) (p "Implements al_detach_voice.")) (def (sig (procedure "(voice-frequency voice)" (id voice-frequency))) (p "Implements al_get_voice_frequency.")) (def (sig (procedure "(voice-position voice)" (id voice-position))) (p "Implements al_get_voice_position voice)</procedure>")) (def (sig (procedure "(voice-channels voice)" (id voice-channels))) (p "Implements al_get_voice_channels.")) (def (sig (procedure "(voice-depth voice)" (id voice-depth))) (p "Implements al_get_voice_depth.")) (def (sig (procedure "(voice-playing? voice)" (id voice-playing?))) (p "Implements al_get_voice_playing.")) (def (sig (procedure "(voice-position-set! voice unsigned-integer)" (id voice-position-set!))) (p "Implements al_set_voice_position.")) (def (sig (procedure "(voice-playing-set! voice bool)" (id voice-playing-set!))) (p "Implements al_set_voice_playing.")) (def (sig (procedure "(audio-addon-install)" (id audio-addon-install))) (p "Implements al_install_audio.")) (def (sig (procedure "(audio-addon-uninstall)" (id audio-addon-uninstall))) (p "Implements al_uninstall_audio.")) (def (sig (procedure "(audio-addon-installed?)" (id audio-addon-installed?))) (p "Implements al_is_audio_installed.")) (def (sig (procedure "(audio-addon-version)" (id audio-addon-version))) (p "Implements al_get_allegro_audio_version.")) (def (sig (procedure "(channel-configuration-count channel-configuration)" (id channel-configuration-count))) (p "Implements al_get_channel_count.")) (def (sig (procedure "(audio-depth-size audio-depth)" (id audio-depth-size))) (p "Implements al_get_audio_depth_size.")) (def (sig (procedure "(default-mixer)" (id default-mixer))) (p "Implements al_get_default_mixer.")) (def (sig (procedure "(default-mixer-set! mixer)" (id default-mixer-set!))) (p "Implements al_set_default_mixer.")) (def (sig (procedure "(default-mixer-restore!)" (id default-mixer-restore!))) (p "Implements al_restore_default_mixer.")) (def (sig (procedure "(sample-play sample (float gain) (float pan) (float speed) playmode sample-id)" (id sample-play))) (p "Implements al_play_sample.") (p "The Sample ID is written to the provided sample-id struct.")) (def (sig (procedure "(sample-stop sample-id)" (id sample-stop))) (p "Implements al_stop_sample.")) (def (sig (procedure "(reserve-samples integer)" (id reserve-samples))) (p "Implements al_reserve_samples.")) (def (sig (procedure "(stop-all-samples)" (id stop-all-samples))) (p "Implements al_stop_samples.")) (def (sig (procedure "(register-sample-loader (string extension) (function sample ((const string))))" (id register-sample-loader))) (p "Implements al_register_sample_loader.")) (def (sig (procedure "(register-sample-saver (string extension) (function bool ((const c-string) sample)))" (id register-sample-saver))) (p "Implements al_register_sample_saver.")) (def (sig (procedure "(register-audio-stream-loader (string extension) (function audio-stream ((const string) size_t unsigned-integer32)))" (id register-audio-stream-loader))) (p "Implements al_register_audio_stream_loader.")) (def (sig (procedure "(register-sample-file-loader (string extension) (function sample (file)))" (id register-sample-file-loader))) (p "Implements al_register_sample_loader_f.")) (def (sig (procedure "(register-sample-file-saver (string extension) (function bool (file sample)))" (id register-sample-file-saver))) (p "Implements al_register_sample_saver_f.")) (def (sig (procedure "(register-audio-stream-file-loader (string extension) (function audio-stream (file size_t unsigned-integer)))" (id register-audio-stream-file-loader))) (p "Implements al_register_audio_stream_loader_f.")) (def (sig (procedure "(load-sample* string)" (id load-sample*))) (p "Implements al_load_sample.")) (def (sig (procedure "(load-sample string)" (id load-sample))) (p "Implements al_load_sample, with (free-sample!) declared as a finalizer.")) (def (sig (procedure "(load-audio-stream* string (integer buffer-count) (unsigned-integer samples))" (id load-audio-stream*))) (p "Implements al_load_audio_stream.")) (def (sig (procedure "(load-audio-stream string (integer buffer-count) (unsigned-integer samples))" (id load-audio-stream))) (p "Implements al_load_audio_stream, with (free-audio-stream!) declared as a finalizer.")) (def (sig (procedure "(load-audio-stream-from-file* file (string identity) (integer buffer-count) (unsigned-integer samples))" (id load-audio-stream-from-file*))) (p "Implements al_load_audio_straem_from_file.")) (def (sig (procedure "(load-audio-stream-from-file file (string identity) (integer buffer-count) (unsigned-integer samples))" (id load-audio-stream-from-file))) (p "Implements al_load_audio_straem_from_file, with (free-audio-stream!) declared as a finalizer.")) (def (sig (procedure "(load-sample-from-file* file (string identity))" (id load-sample-from-file*))) (p "Implements al_load_sample_f.")) (def (sig (procedure "(load-sample-from-file file (string identity))" (id load-sample-from-file))) (p "Implements al_load_sample_f, with (free-sample!) declared as a finalizer.")) (def (sig (procedure "(sample-save-to-file sample file (string identity))" (id sample-save-to-file))) (p "Implements al_save_sample_f.")) (def (sig (procedure "(sample-save sample (string filename))" (id sample-save))) (p "Implements al_save_sample."))) (section 3 "Audio Codec Addon" (def (sig (procedure "(acodec-addon-init)" (id acodec-addon-init))) (p "Implements al_init_acodec_addon.")) (def (sig (procedure "(acodec-addon-version)" (id acodec-addon-version))) (p "Implements al_get_allegro_acodec_version.")))))