صدا/ایف audio/aiff
خواندن و نوشتن پروندههای ایف و ایفسی.
واردسازی audio.aiff
ایف پسرخاله بزرگانتهای ویو است: همان اندیشه ظرف تکهتکه، نوشته از آن سو چون از سمت موتورولای جهان آمده. ایفسی برچسبی برای فشردهسازی میافزاید، و این بسته آنهایی را میخواند که مهمند: پیسیام ساده، گونه کوچکانتهای sowt که ابزارهای اپل مینویسند، اعشاری آیتریپلای، و ایلا و میولا.
تنها بخش بهراستی عجیب نرخ نمونه است، که ایف آن را به شکل اعشار گسترده هشتاد بیتی نگه میدارد. این بسته آن را میخواند و مینویسد، پس ۴۴۱۰۰ همان ۴۴۱۰۰ باز میگردد و نه ۴۴۰۹۹.
دانستنیها
- پیسیام هشت، شانزده و بیست و چهار بیتی رفت و برگشت از یک قطعه را دقیق پشت سر میگذارد. ناهمسان با ویو، ایف هشت بیتی علامتدار است.
خواندن همگانیتکههای COMM و SSND را در یک ساختار به شما میدهد، چون همیشه هر دو را میخواهید: یکی شکل را میگوید و دیگری جای صدا را.- پروندهای که شمار فریم COMM آن با بایتهای موجود نمیخواند، به کوتاهتر آن دو کدگشایی میشود، جای آنکه از انتها بیرون بخواند.
- نوشتن همیشه ایف بزرگانتهای ساده میسازد. گونههای ایفسی خوانده میشوند نه نوشته.
گونهها
مشترک Common
ساختار مشترک| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| کانال ها | channels | صحیح = 0 | چند کانال. |
| فریم ها | frames | صحیح = 0 | سرآیند چند فریم را ادعا میکند. |
| بیت ها | bits | صحیح = 0 | بیت برای هر نمونه. |
| نرخ | rate | صحیح = 0 | فریم در هر ثانیه، خوانده از اعشار هشتاد بیتی که ایف آن را در آن نگه میدارد. |
| روش فشرده | compression | صحیح = 0 | پرونده کدام شماره فشردهسازی را به کار میبرد. ایف ساده همیشه فشرده هیچ است. |
| جای داده | data_offset | صحیح = 0 | نمونهها از کجا آغاز میشوند، پس از سرآیند SSND و میدان جابجاییاش. |
| اندازه داده | data_size | صحیح = 0 | چند بایت نمونه هست. |
واردسازی صدا
واردسازی صدا.ایف
واردسازی فشرده سازی
واردسازی مسیر پرونده
واردسازی حافظه
واردسازی سیستم عامل
تابع ریشه:
ناپایا کلیپ := صدا.جدید(44100، 2، 64)
صدا.تنظیم نمونه(کلیپ، 7، 1، 0.5)
بافه := ایف.کدگذاری ایف با بیت(کلیپ، 24)
سرچاپ ایف.ایف است(بافه.data، بافه.len)، ایف.ایف است(بافه.data، 4)
سرچاپ صدا.نام قالب(صدا.شناسایی قالب(بافه.data، بافه.len))
ناپایا مش := ایف.مشترک {}
سرچاپ ایف.خواندن مشترک(بافه.data، بافه.len، مش)
سرچاپ مش.کانال ها، مش.فریم ها، مش.بیت ها، مش.نرخ
سرچاپ مش.روش فشرده برابر ایف.فشرده هیچ، مش.اندازه داده
ناپایا درستی := نادرست
آگاه := ایف.بررسی ایف(بافه.data، بافه.len، درستی)
سرچاپ درستی، آگاه.نرخ، آگاه.کانال ها، آگاه.بیت ها، آگاه.فریم ها، آگاه.بی اتلاف
ناپایا درستی۲ := نادرست
برگشته := ایف.کدگشایی ایف(بافه.data، بافه.len، درستی۲)
سرچاپ درستی۲، برگشته.فریم ها، برگشته.بیت ها، صدا.نمونه(برگشته، 7، 1)
هر نرخی در [8000، 22050، 44100، 96000]:
ناپایا یکی := صدا.جدید(نرخی، 1، 2)
بررسی۲ := ایف.کدگذاری ایف با بیت(یکی، 16)
ناپایا مش۲ := ایف.مشترک {}
ایف.خواندن مشترک(بررسی۲.data، بررسی۲.len، مش۲)
سرچاپ نرخی، مش۲.نرخ برابر نرخی
فشرده سازی.آزادسازی بافر(بررسی۲)
صدا.آزادسازی(یکی)
پایان
سرچاپ فشرده سازی.طول بافر(ایف.کدگذاری ایف با بیت(کلیپ، 12))، فشرده سازی.طول بافر(ایف.کدگذاری ایف(صدا.قطعه {}))
نشانی := مسیر پرونده.پیوند(سیستم عامل.پوشه موقت()، "salam_aiff_example.aiff")
دیرکن حافظه.آزادسازی(نشانی برگردان تهی*)
سرچاپ ایف.ذخیره ایف با بیت(کلیپ، نشانی، 16)
ناپایا درستی۳ := نادرست
دیسکی := ایف.بازکردن ایف(نشانی، درستی۳)
سرچاپ درستی۳، دیسکی.بیت ها، دیسکی.فریم ها
ناپایا رفته := نادرست
نبود := مسیر پرونده.پیوند(سیستم عامل.پوشه موقت()، "salam_aiff_none.aiff")
دیرکن حافظه.آزادسازی(نبود برگردان تهی*)
ایف.بازکردن ایف(نبود، رفته)
سرچاپ رفته
فشرده سازی.آزادسازی بافر(بافه)
صدا.آزادسازی(کلیپ)
صدا.آزادسازی(برگشته)
صدا.آزادسازی(دیسکی)
پایانپایاها و متغیرها
شمارههای فشردهسازی Comp…
| نام | انگلیسی | مقدار |
|---|---|---|
| فشرده هیچ | CompNone | 0 |
| فشرده کوچکانتها | CompSowt | 1 |
| فشرده اعشار۳۲ | CompFloat32 | 2 |
| فشرده اعشار۶۴ | CompFloat64 | 3 |
| فشرده ایلا | CompALaw | 4 |
| فشرده میولا | CompMuLaw | 5 |
نمونهی این مورد همراه با موارد بالاتر آمده است: aiff-Read.salam
تابعها
ایف است IsAIFF
تابع ایف است(p: تهی*، n: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: aiff-Read.salam
خواندن مشترک ReadCommon
تابع خواندن مشترک(p: تهی*، n: صحیح، out &: مشترک): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: aiff-Read.salam
بررسی ایف ProbeAIFF
تابع بررسی ایف(p: تهی*، n: صحیح، ok &: منطقی): audio.Infoنمونهی این مورد همراه با موارد بالاتر آمده است: aiff-Read.salam
کدگشایی ایف DecodeAIFF
تابع کدگشایی ایف(p: تهی*، n: صحیح، ok &: منطقی): audio.Clipنمونهی این مورد همراه با موارد بالاتر آمده است: aiff-Read.salam
کدگذاری ایف با بیت EncodeAIFFBits
تابع کدگذاری ایف با بیت(c: audio.Clip، bits: صحیح): compress.ByteBufنمونهی این مورد همراه با موارد بالاتر آمده است: aiff-Read.salam
کدگذاری ایف EncodeAIFF
تابع کدگذاری ایف(c: audio.Clip): compress.ByteBufنمونهی این مورد همراه با موارد بالاتر آمده است: aiff-Read.salam
بازکردن ایف OpenAIFF
تابع بازکردن ایف(path: رشته، ok &: منطقی): audio.Clipنمونهی این مورد همراه با موارد بالاتر آمده است: aiff-Read.salam
ذخیره ایف SaveAIFF
تابع ذخیره ایف(c: audio.Clip، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: aiff-Read.salam
ذخیره ایف با بیت SaveAIFFBits
تابع ذخیره ایف با بیت(c: audio.Clip، path: رشته، bits: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: aiff-Read.salam