⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 GNU ccAudio2 is a stand-alone portable C++ class framework for manipulating audio data. It has exist
💻
字号:
Copyright (c) 1999-2001 by Open Source Telecom Corporation.Verbatim copying and distribution of this entire article is permittedin any medium, provided this notice is preserved.Starting with 0.5.1, GNU ccAudio now depends on GNU Common C++ for common configuration.  This allows us to use GNU Common C++ macros for exportingwin32 dll headers, and enables the use of GNU Common C++ services such asDSO loading and threads in GNU ccAudio.The GNU ccAudio library is a portable C++ class framework that I believeto be useful for developing applications that must process audio.  Thislibrary provides a class framework for accessing audio segments fromvarious audio file formats (.au, .wav, etc) and for creation of audioframe buffers that are then passed to audio devices and/or DSP processingsystems such as telephony cards.This library was started out because I could not find any suitablefree C++ based "sound file access" library.  There are several very good Cbased GPL sound file access libraries, and in particular libsndfile andaudiofile come to mind.  There are also several good free C++ "audioframeworks", but all were concerned with driving a soundcard device orspecific set of devices rather than offering usable stand-alone generalpurpose audio manipulation services.  Rather than having the overheadof a "C++ wrapper" around an existing C based library, I choose to createa new one from scratch.This framework initially will provide a portable means to access soundfiles stored in various formats, and may well extend to supportingplayback and recording through default audio devices such as "OSS" soundcard drivers and win32 sound api's in the future.  While I amalso the maintainer for GNU Common C++, ccaudio does not depend in any manner on GNU Common C++ and can be used fully stand-alone as well as with other class frameworks, including GNU Common C++.  However, ccaudio does follow certain GNU Common C++ naming conventions, including the use of -lccaudio for the library name and the placement of a header file in "include/cc++".One important consideration to keep in mind when using this library isthat most operations are performed on objects that are considered an arrayof "samples" that may be aligned in descreat groupings depending onthe codec involved.  Most ccaudio operations treat audio as essentiallyan array of "sample" sized objects rather than providing byte aligned operations.  This sometimes leads to confusion in other byte orientedoperation libraries, such as when manipulating things that are chunked inpeculiar size arrangements.  For example, ccaudio conceptually treats GSMencoded audio as 33 byte long collections of "160" samples.  This hasimportant implications and alignment of audio file positioning functionssuch as setPosition and getPosition, as well as what it means to "read" or"write" x samples through the getSamples and putSamples member functionsof AudioFile.Another unique aspect of this library is that it deals with and supportsframe aligned operations.  This is based on the assumption that most"low level" sound resources and audio manipulations also will performoperations on discreat and aligned frames rather than samples ofarbitrary size.  A good example of this kind of audio processing is foundin Linux "/dev/phone" based devices such as the Quicknet card which alignsall physical I/O operations into samples that represent 30ms frames.  Thismeans that ccaudio supports concepts for "joining" or concatinatingmultiple audio file sources when building a frame and the end of file hasbeen reached early, and for automatically filling incomplete frames with"silent" data as needed to pad for something that is to be submitted to aframe oriented audio device or DSP processor.The GNU ccAudio library is designed to compile either on win32 (using either mingw32 or Visual C++) or most "Posix" systems including the GNU operating system itself, GNU/Linux systems, FreeBSD, etc, and it does so in  a fairly simple manner.  This framework is free software and is subject to the terms of the GNU Public License with explicit exceptions as noted in the source similar to the exclusions offered by Guile.  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -