# How Do I Play a Long Sound File?

If you have a long AIFF sound file that does not fit in memory, you need to play it as it is read from disc. There are several ways to do this:

- You can use the old, but small, sound file player in the Music library. It plays a file straight through but does not provide seamless loops or branches. See the `CreateSoundFilePlayer()` function call for more information. See playsoundfile.c for an example program. See spoolsoundfile.c for an example of playing in a background thread.

- You can use the advanced sound player. It lets you play multiple sound files as well as samples in memory and branch between files and loop seamlessly without glitches. See the `spCreatePlayer()` function call and Advanced Sound Player, for more information. For examples, see tsp_*.c.

- If you need to read other information from disc along with the audio, you can use the DataStreamer. It allows you to intermix various types of data like audio, video, application data, and so on. The chunks are read from the disc and passed to subscribers that handle the chunk appropriately.

- If you need to build your own sound file player from scratch, you may want to use the low-level sound spooler in the Music library. You can get the audio data into memory any way you want, then pass it to the sound spooler to be queued and ultimately played using the DSP. See ta_spool.c for an example.

### For More Information

See Audio Folio Calls, in the 3DO Music and Audio Programmer's Reference for information on these calls.

See the DataStreamer Programmer's Guide and Data Stream Reference Guide for more information on the DataStreamer.