Hello all,
After trial-2 madness has passed, we have to make a serious audio decision: we really need a system-wide audio sample library. I suspect many activities that use sounds (including our own) will be blocked if a decision is not made. Here are some reasons: • Presently, activities wanting to share audio resources cannot do so through a shared directory. Containerizing activities may actually agravate that situation but I am presuming this can and will be fixed regardless. I will enter this on trac. An activity supplying a resource for its own private use when the resource is of general use leads to the wasteful duplication of data. • We need a sample bank to play Standad MIDI Files off the internet. I have a few misgivings about the quality of the music available for download in this format, but the SMF is a very compact and useful music storage technology. I am certain all will agree it should be supported on the machine. • Last and not least: this resource needs to live locally, not on a remote server. In the vast majority of cases, kids will use the resources that are immediately available and that do not require installation. There is no reason an appropriate system-wide resource cannot be put together for the XO. Here is a proposal: A default library: There are compelling reasons to make the XO audio sample bank conform to the General MIDI spec ( http://en.wikipedia.org/wiki/ General_Midi ). The specification contains 127 sounds plus a number of drum/percussion sounds for a total of roughly 180 individual sounds, many of them quite short. GM is biased towards western instruments but it provides everything to correctly play midifiles off the internet. A GM sample bank could be put together for the XO in a relatively modest space leaving room for a number of other sounds needed by individual activities such as TamTam, eToys or other Csound-based activities. Allocation on disk A figure of 25MB was discussed at OLPC headquarters last year as a disk allotment for sound file resources. I am assuming this is still the case. The standard GM1 set can take a lot, not so much or really little disk space depending on how it is planned. I propose that the set be given 10Mb of the availbale space. The rest can be made available to activities needing special sounds. TamTam, for instance, would use many sounds from the GM1 set and many custom sounds. Location and priviledges: The audio sample bank should be located in the system tree (/usr/ share/sounds ?) where it is readily readable by any activity. A policy is needed for write-access but activities would need the possibility of copying audio resources in this location at install time up to a limit of 25MB. To take the example of TamTam again, any special sounds needed by TamTam wouls be copied into the designated location at install time. The location would not be writable by individual users. If kids wish to use their own sounds, these would go into their home directory and activities would have to provide ways of integrating those sounds. Sampling rate and format: Sampling rate has a major impact on quantity of storage required and audio quality. There is also an impact on performance. A faster sampling rate has a huge impact on performance. Here is a comparison of sr vs length for 25MB storage of 16bit linear PCM monophonic audio files: sr duration 32kHz = 390 seconds 22.05kHz = 566 seconds 16kHz = 781 seconds Consider that the small speakers on the XO are not capable of rendering anything above a 22kHz sr. On the other hand, earpods may be available giving a vastly improved bandwidth. We shoudl also consider the possibility of connecting the audio output of the XO to external sound systems. Barry suggested that a 32kHz sr is desirable to cover higher audio quality applications and I would agree with that. Even at 32k, we have enough space for a good set of sounds in addition to the GM1 set. It is also easy to pull down from 32k to re- sample at 16k and 8k, so activities can compensate for performance loss at higher sr. The proposed format for individual sounds is: 16bit linear PCM single channel @ 32KHz. Keep in mind that this concerns audio samples only, not audio soundfiles in general. Playing mp3 and wave files is an entirely different problem which is not concerned with sampling rate issues. Sound names: The GM1 sample set proposes standard names for sounds along with their MIDI Program Change number from 0 to 127: http://www.midi.org/ about-midi/gm/gm1sound.shtml . I propose that the sounds simply be stored under these names in WAV or AIFF format with, possibly, a number at the end of the name. Any other slots above the GM set would start numbering from, say, 256 with the name of the sound file determined by the activity that puts it in the bank there. Availability and Licencing: A good sample set is not trivial to put together. The problem of licencing is also specially thorny in our case. Some of the public domain sounds used in TamTam may have slight restrictions and we will need to adress this before FRS. Whatever the situation and if resources are not readily available to develop a sampel set of our own, I strongly suggest that OLPC start looking at companies that would be wiling to licence one of their existing sample sets. Rick Boulanger did say last month that negociations were taking place with M-Audio to adapt one of their sample libraries. Are there developments in that direction? I would hazard that OLPC will not have the choice but negociate a deal with an existing sample company or, alternatively, record its own bank. GPL sounds do exist out there but the quality is spotty and not all categories of sounds are readily available. Comments sought and welcome! Jean Piché TamTam _______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel