وسیله صوتی همچون یک stream خروجی است، هر چه که به آن بفرستید، شنیده خواهد شد. نیازی نیست که از دستور داخلی (یا خارجی) پوستههای خط فرمان استفاده کنید، میتوانید خود شما این کار را انجام دهید، کافی است که دادهها را بصورت یک stream به وسیله صوتی (audio device) بفرستید. اما برای اینکار شما باید با فرمت آن آشنا باشید.نمی دونم، شاید هم این از اطلاعات ناقص بنده باشه. اما هدف بنده در حداقل مورد اون پخش صدا هست و اون هم با یه برنامه نه با دستورات داخلی سیستم عاملها!!
فایل wav برای ذخیرهسازی یک stream صوتی بکار میرود و معمولاً آنرا بصورت غیر فشرده در خود ذخیره میکند. هر چند که بعضی از فایلهای wav آن را فشرده میکنند ولی شما قبل از استفاده از آنها باید آنرا غیر فشرده کنید. فایل wav ای که بصورت غیر فشرده stream صوتی را درون خود قرار داده، همان «دادههای خام صوتی» را در خود ذخیره میکند بعلاوه یکسری اطلاعات درباره sample rate و تعداد کانالها و ... که لازم هستند. در نهایت شما برای اینکارهایی که گفتید، باید آشنایی کافی با فرمت خام دادههای صوتی (raw audio format) داشته باشید.اما اصل سوال بنده بر روی پردازش صدا و تغییرات بر روی یک فایل صوتی با یه فرمت معمول (بدون هیچ الگوریتم به کار رفته برای اون فایل) مثل wave و یا هر فایل دیگه ای از این قبیل هست.
در ادامه خواندن این صفحات خالی از لطف نیست ;)
http://en.wikipedia.org/wiki/Audio_file_format
http://en.wikipedia.org/wiki/WAV
http://en.wikipedia.org/wiki/Raw_audio_format
http://en.wikipedia.org/wiki/PCM
سی++ و سی هر امکانی را به شما میدهد ولی اگر منظور شما کتابخانه آن است، کتابخانه استاندارد سی++ و سی به سیستمعامل وابسته است (پس در واقع شما نباید از کتابخانه استاندارد این زبانها استفاده کنید!).و اینکه این C/C++ این امکان رو به من می ده؟
بهرحال اینکه نخواهید از هیچ کتابخانهای و API و چیزی استفاده کنید، همه را باید خود شما پیادهسازی کنید و این به نظر من راه کاملاً اشتباهی است. جواب این سوال در نهایت، به سیستمعامل مورد استفاده مربوط میشود زیرا ممکن است سیستمعامل به شما اجازه ندهد که در پروسهای خارج از پروسههای تعریف شده به سختافزار دسترسی داشته باشید (که معمولاً اینطور است).