کتابخانه‌ی استاندارد · کدگذاری و داده

صدا audio

صدا به شکل قطعه‌ای از نمونه‌ها: بریدن، آمیختن، سنجیدن و برگرداندن آن.

واردسازی audio

این بسته میانه هر کاری است که در سلام با صدا سر و کار دارد. یک قطعه خود صدا را نگه می‌دارد: نمونه‌های ساده اعشار سی و دو بیتی میان منهای یک و یک، فریم پس از فریم و کانال‌ها در کنار هم. خواندن و نوشتن پرونده کار بسته‌های قالب است، امروز صدا.ویو، و صدا.کدک هر یک از آنها را بی آنکه بگویید کدام باز می‌کند. صافی‌ها، تبدیل فوریه و بازنمونه‌گیری دقیق در صدا.پردازش سیگنال هستند.

آنچه اینجاست قطعه است و هر چیزی که نیازی به دانستن قالب پرونده ندارد: بریدن، پیوستن، آمیختن، محو کردن، سنجیدن بلندی صدا، رفتن میان تک‌کاناله و دوکاناله و میان نرخ‌های نمونه، و خواننده بیتی که از پرارزش‌ترین بیت می‌خواند و هر کدک صدا بر رویش نوشته می‌شود.

دانستنی‌ها

  • نمونه‌ها اعشار سی و دو بیتی‌اند. هر قطعه مالک آن حافظه است؛ با آزادسازی رهایش کنید.
  • چون یک اعشار بیست و چهار بیت مانتیس دارد، صدای هشت، شانزده و بیست و چهار بیتی رفت و برگشت از یک قطعه را دقیق پشت سر می‌گذارد. تنها منبع صحیح سی و دو بیتی هشت بیت کم‌ارزش خود را از دست می‌دهد.
  • یک ترانه دوکاناله سه دقیقه‌ای با نرخ ۴۴۱۰۰ نزدیک ۶۳ مگابایت قطعه می‌شود، پس پرونده بلند را تکه تکه کدگشایی کنید نه یکجا.
  • بیت ها عمقی را که قطعه با آن خوانده شد به یاد می‌آورد، پس نوشتن دوباره همان عمق را نگه می‌دارد. قطعه‌ای که با جدید ساخته شده عمقی ندارد و کدگذاری آنگاه شانزده بیت را برمی‌گزیند.
  • هر چیزی که ناکام بماند جای ایستادن برنامه یک قطعه خالی برمی‌گرداند، پس با خالی است بسنجید.
  • خواننده بیت از پرارزش‌ترین بیت می‌خواند. خواننده بیت در فشرده سازی از آن سو می‌خواند، برای دیفلیت، و جای این یکی را نمی‌گیرد.

یک قطعه صدا

قطعه یک نرخ است و یک شمار کانال و یک شمار فریم و نمونه‌ها. جدید سکوتی به شما می‌دهد تا پرش کنید؛ تنظیم نمونه و نمونه هر بار به یک نمونه با فریم و کانال می‌رسند. هر فریم یک نمونه برای هر کانال است، پس قطعه‌ای دوکاناله با صد فریم دویست نمونه دارد.

هر قطعه حافظه خودش را دارد، پس هر یک را با آزادسازی رها کنید. خواندن یا نوشتن بیرون از قطعه خطا نیست: نمونه صفر می‌دهد و تنظیم نمونه کاری نمی‌کند، که حلقه‌ها را در لبه‌ها ساده نگه می‌دارد.

چه اندازه بلند است

اوج دورترین جایی است که یک نمونه از صفر می‌رسد و جذر میانگین مربع بلندی را چنان پی می‌گیرد که گوش می‌شنود. هر دو شکل دسیبلی دارند، که در آن صفر دسیبل بلندترین چیزی است که یک نمونه می‌تواند باشد و هر چه آرام‌تر منفی است. بهره به دسیبل و دسیبل به بهره میان ضریب ساده و دسیبل می‌روند.

سکوت دسیبل ندارد، پس بهره به دسیبل(0.0) جای رفتن به منهای بی‌نهایت کف سکوت را برمی‌گرداند. نخستین صدا و آخرین صدا پیدا می‌کنند که صدا به راستی کجا آغاز و کجا تمام می‌شود، و برش سکوت بر همان ساخته شده است.

بریدن و پیوستن

برش و برش زمانی تکه‌ای را بیرون می‌کشند، با فریم یا با زمان؛ پیوند یک قطعه را پس از دیگری می‌گذارد و آمیختن آنها را روی هم می‌خواباند. هنجارسازی قطعه را چنان مقیاس می‌کند که اوجش درست همان جا بنشیند که می‌خواهید، و دو محو دو سر را شکل می‌دهند تا برش تقه نزند.

پیوستن و آمیختن از هر دو قطعه می‌خواهند که بر نرخ نمونه و شمار کانال همداستان باشند، و وقتی نیستند قطعه‌ای خالی برمی‌گردانند. نخست به نرخ و به کانال‌ها را به کار ببرید تا هم‌تراز شوند.

نرخ‌ها، کانال‌ها و عمق‌ها

به یک‌کاناله کانال‌ها را میانگین می‌گیرد و به دوکاناله یک کانال را روی دو پهن می‌کند. به نرخ نرخ نمونه را با درون‌یابی میان نمونه‌ها عوض می‌کند، که تند است و برای گفتار بس؛ برای موسیقی بازنمونه سینک از صدا.پردازش سیگنال را به کار ببرید. به بیت پرونده نمی‌نویسد، نمونه‌ها را به پله‌های یک عمق گرد می‌کند تا بشنوید آن عمق چه هزینه‌ای دارد.

جداسازی کانال‌ها برای هر کانال یک قطعه پس می‌دهد که باید هر یک را آزاد کنید، و درهم‌بافی کانال‌ها آنها را باز به هم می‌بافد.

این کدام قالب است

شناسایی قالب به چند بایت آغازین نگاه می‌کند و قالب از پسوند به نام پرونده. هر دو با شماره‌ای از قالب پاسخ می‌دهند، که نام قالب آن را به نامی کوتاه برمی‌گرداند. دانستن قالب یعنی این ساخت می‌تواند کدگشایی‌اش کند نیست: برای آن از کدگشایی شدنی در صدا.کدک بپرسید.

آگاهی آن است که پرونده از خودش می‌گوید، و بسته‌های قالب آن را با خواندن سرآیند پر می‌کنند نه همه پرونده. این راه کم‌هزینه نشان دادن یک مدت یا یک نرخ بیت در فهرست است.

خواندن یک جریان بیت

صدای فشرده در بایت چیده نشده، در بیت چیده شده، و هر قالبی از ام‌پی‌تری تا فلاک آن بیت‌ها را از سوی پرارزش می‌شمارد. خواننده بیت همین کار را می‌کند، با خواندن بیت‌ها علامتدار برای میدان‌های مکمل دو و خواندن یکانی برای آن رشته صفر که کدهای رایس و گلومب بر آن ساخته شده‌اند. نویسنده بیت همان است از سوی دیگر.

خواندن از انتها برنامه را نمی‌ایستاند: صفر پس می‌دهد و خراب را درست می‌کند که درست می‌ماند، پس یک سنجش پس از گروهی خواندن بس است. باز یادآور می‌شویم که فشرده سازی خواننده بیت خودش را دارد که از آن سو می‌رود، برای دیفلیت؛ آن را برای صدا به کار نبرید.

کاربا چه
ساختن و آزاد کردن قطعهجدید، سکوت جدید، کپی، آزادسازی
رسیدن به نمونه‌هانمونه، تنظیم نمونه، افزودن نمونه، داده
بریدن و پیوستنبرش، برش زمانی، پیوند، آمیختن، شکافتن، تکرار صدا
شکل دادن صدابهره، هنجارسازی، محو ورودی، محو خروجی، محدود کردن
سنجیدن آناوج، جذر میانگین مربع، اوج دسیبل، انحراف جریان مستقیم، ساکت است
عوض کردن شکلشبه یک‌کاناله، به دوکاناله، به نرخ، به بیت
یافتن قالبشناسایی قالب، قالب از پسوند، نام قالب
نوشتن یک کدکخواننده بیت، نویسنده بیت

گونه‌ها

قطعه Clip

ساختار قطعه
یک تکه صدا: نمونه‌های درهم‌بافته اعشار۳۲ با نرخ نمونه، شمار کانال و شمار فریم.
نامانگلیسیگونهتوضیح
نرخrateصحیح = 0فریم در هر ثانیه، مثلا ۴۴۱۰۰.
کانال هاchannelsصحیح = 0هر فریم چند کانال دارد؛ یک برای تک‌کاناله و دو برای دوکاناله.
فریم هاframesصحیح = 0قطعه چند فریم دارد. هر فریم یک نمونه برای هر کانال است.
بیت هاbitsصحیح = 0عمق بیتی که نمونه‌ها از آن آمده‌اند، یا صفر وقتی در حافظه ساخته شده‌اند. کدگذاری که عمق خودش را ندارد شانزده بیت می‌نویسد.
نمونه هاsamplesتهی*خود نمونه‌ها، اعشار سی و دو بیتی، فریم پس از فریم و کانال‌ها در کنار هم.
audio-Clip.salam
واردسازی صدا

تابع ریشه:
    ناپایا ق := صدا.جدید(8000، 2، 400)
    سرچاپ ق.نرخ، ق.کانال ها، ق.فریم ها، ق.بیت ها
    سرچاپ صدا.شمار نمونه(ق)، صدا.مدت(ق)، صدا.خالی است(ق)
    صدا.تنظیم نمونه(ق، 0، 0، 0.5)
    صدا.تنظیم نمونه(ق، 0، 1، -0.25)
    صدا.افزودن نمونه(ق، 0، 0، 0.25)
    سرچاپ صدا.نمونه(ق، 0، 0)، صدا.نمونه(ق، 0، 1)، صدا.نمونه(ق، 399، 0)
    سرچاپ صدا.نمونه(ق، 4000، 0)، صدا.در محدوده(ق، 399، 1)، صدا.در محدوده(ق، 400، 0)
    سرچاپ صدا.فریم در زمان(ق، 0.025)، صدا.ثانیه در فریم(ق، 200)، صدا.فریم در زمان(ق، 99.0)
    ناپایا ک := صدا.کپی(ق)
    سرچاپ صدا.نمونه(ک، 0، 0)، صدا.اوج(ک)
    صدا.ساکت کردن(ک)
    سرچاپ صدا.اوج(ک)
    ناپایا س := صدا.سکوت جدید(8000، 1، 0.25)
    سرچاپ س.فریم ها، صدا.بیشینه نمونه
    صدا.آزادسازی(ق)
    سرچاپ صدا.خالی است(ق)، ق.فریم ها
    صدا.آزادسازی(ک)
    صدا.آزادسازی(س)
پایان
خروجی8000 2 400 0 800 0.05 false 0.75 -0.25 0 0 true false 200 0.025 400 0.75 0.75 0 2000 536870912 true 0

خواننده بیت MsbReader

ساختار خواننده بیت
هر بار یک بیت می‌خواند، از پرارزش‌ترین بیت، همان ترتیبی که هر کدک صدا به کار می‌برد.
نامانگلیسیگونهتوضیح
دادهdataتهی*بایت‌هایی که خوانده می‌شوند.
طولlenصحیح = 0چند بایت هست.
جاposصحیح = 0کدام بایت بعدی است.
انبارهaccصحیح۶۴ = 0بیت‌هایی که از بایت‌ها بیرون کشیده شده‌اند ولی هنوز پس داده نشده‌اند.
شمار بیتnbitsصحیح = 0چند بیت در انباره منتظر است.
خرابbadمنطقی = نادرستدرست می‌شود وقتی خواندن از انتها گذشت و درست می‌ماند.
audio-Msb.salam
واردسازی صدا
واردسازی فشرده سازی

تابع ریشه:
    ناپایا ن := صدا.نویسنده بیت جدید()
    صدا.نوشتن بیت‌ها(ن، 10، 4)
    صدا.نوشتن بیت‌ها(ن، 5، 4)
    سرچاپ صدا.طول نویسنده(ن)
    صدا.نوشتن بیت‌ها(ن، 60، 8)
    بایتها := صدا.پایان نویسنده(ن)
    سرچاپ فشرده سازی.طول بافر(بایتها)، فشرده سازی.دریافت بایت(بایتها، 0)، فشرده سازی.دریافت بایت(بایتها، 1)
    ناپایا خ := صدا.خواننده بیت از بافر(بایتها)
    سرچاپ صدا.خواندن بیت‌ها(خ، 4)، صدا.خواندن بیت‌ها(خ، 4)، صدا.خواندن بیت‌ها(خ، 8)، صدا.خواننده خراب(خ)
    ناپایا ع := صدا.خواننده بیت از بافر(بایتها)
    سرچاپ صدا.خواندن بیت‌ها علامتدار(ع، 4)، صدا.خواندن بیت(ع)، صدا.جای خواننده(ع)
    ناپایا ت := صدا.خواننده بیت از بافر(بایتها)
    سرچاپ صدا.خواندن بیت‌ها بزرگ(ت، 16)
    ناپایا ی := صدا.نویسنده بیت جدید()
    صدا.نوشتن یکانی(ی، 0)
    صدا.نوشتن یکانی(ی، 3)
    صدا.نوشتن یکانی(ی، 7)
    رشته := صدا.پایان نویسنده(ی)
    ناپایا خی := صدا.خواننده بیت از بافر(رشته)
    سرچاپ صدا.خواندن یکانی(خی)، صدا.خواندن یکانی(خی)، صدا.خواندن یکانی(خی)
    ناپایا ج := صدا.خواننده بیت از بافر(بایتها)
    صدا.پرش بیت(ج، 8)
    سرچاپ صدا.خواندن بیت‌ها(ج، 8)
    صدا.جابجایی خواننده(ج، 4)
    سرچاپ صدا.خواندن بیت‌ها(ج، 4)، صدا.جای خواننده(ج)، صدا.باقیمانده خواننده(ج)
    ناپایا ک := صدا.خواننده بیت از بافر(بایتها)
    صدا.خواندن بیت‌ها(ک، 3)
    صدا.همتراز کردن خواننده(ک)
    سرچاپ صدا.خواندن بیت‌ها(ک، 8)
    ناپایا پ := صدا.نویسنده بیت جدید()
    صدا.نوشتن بیت(پ، 1)
    صدا.همتراز کردن نویسنده(پ)
    پرشده := صدا.پایان نویسنده(پ)
    سرچاپ فشرده سازی.طول بافر(پرشده)، فشرده سازی.دریافت بایت(پرشده، 0)
    ناپایا زیاد := صدا.خواننده بیت جدید(بایتها.data، 1)
    صدا.خواندن بیت‌ها(زیاد، 16)
    سرچاپ صدا.خواننده خراب(زیاد)
    صدا.آزادسازی نویسنده(ن)
    صدا.آزادسازی نویسنده(ی)
    صدا.آزادسازی نویسنده(پ)
پایان
خروجی1 2 165 60 10 5 60 false -6 0 5 42300 0 3 7 60 5 8 8 60 1 128 true

نویسنده بیت MsbWriter

ساختار نویسنده بیت
هر بار یک بیت می‌نویسد، از پرارزش‌ترین بیت.
نامانگلیسیگونهتوضیح
بافرbufcompress.ByteBufبایت‌هایی که تا اینجا نوشته شده‌اند.
انبارهaccصحیح۶۴ = 0بیت‌هایی که هنوز برای ساختن یک بایت کامل نیستند.
شمار بیتnbitsصحیح = 0چند بیت در انباره منتظر است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

آگاهی Info

ساختار آگاهی
آنچه یک پرونده از خودش می‌گوید، خوانده شده بدون کدگشایی صدا.
نامانگلیسیگونهتوضیح
قالبformatصحیح = 0کدام قالب است، یکی از شماره‌های قالب.
نرخrateصحیح = 0فریم در هر ثانیه.
کانال هاchannelsصحیح = 0چند کانال.
فریم هاframesصحیح = 0چند فریم، پس چه اندازه بلند.
بیت هاbitsصحیح = 0بیت برای هر نمونه.
نرخ بیتbitrateصحیح = 0بیت در هر ثانیه صدا.
نرخ متغیرvbrمنطقی = نادرستدرست وقتی نرخ بیت در طول پرونده عوض می‌شود.
مدتdurationاعشار۶۴ = 0چند ثانیه بلند است.
بی اتلافlosslessمنطقی = نادرستدرست وقتی کدگشایی همان را برمی‌گرداند که کدگذاری شده بود.
audio-Formats.salam
واردسازی صدا
واردسازی صدا.ویو
واردسازی فشرده سازی

تابع ریشه:
    ناپایا ق := صدا.جدید(44100، 2، 44100)
    بافر := ویو.کدگذاری ویو(ق)
    سرچاپ صدا.نام قالب(صدا.شناسایی قالب(بافر.data، بافر.len))
    سرچاپ صدا.شناسایی قالب(بافر.data، 4) برابر صدا.قالب نامشخص
    سرچاپ صدا.نام قالب(صدا.قالب از پسوند("song.flac"))، صدا.نام قالب(صدا.قالب از پسوند("SONG.WAV"))
    سرچاپ صدا.نام قالب(صدا.قالب از پسوند("a.mp3"))، صدا.نام قالب(صدا.قالب از پسوند("a.ogg"))، صدا.نام قالب(صدا.قالب از پسوند("a.mid"))
    سرچاپ صدا.نام قالب(صدا.قالب از پسوند("notes.txt"))، صدا.نام قالب(999)
    سرچاپ صدا.قالب بی‌اتلاف است(صدا.قالب ویو)، صدا.قالب بی‌اتلاف است(صدا.قالب فلاک)، صدا.قالب بی‌اتلاف است(صدا.قالب ام‌پی‌تری)
    ناپایا درستی := نادرست
    آگاه := ویو.بررسی ویو(بافر.data، بافر.len، درستی)
    سرچاپ درستی، صدا.نام قالب(آگاه.قالب)
    سرچاپ آگاه.نرخ، آگاه.کانال ها، آگاه.بیت ها، آگاه.فریم ها
    سرچاپ آگاه.مدت، آگاه.نرخ بیت، آگاه.بی اتلاف، آگاه.نرخ متغیر
    فشرده سازی.آزادسازی بافر(بافر)
    صدا.آزادسازی(ق)
پایان
خروجیwav true flac wav mp3 ogg midi unknown unknown true true false true wav 44100 2 16 44100 1 1411200 true false

پایاها و متغیرها

بیشینه نمونه MaxSamples

پایا بیشینه نمونه: صحیح۳۲ = 536870912
بیشترین شمار نمونه‌ای که یک قطعه می‌تواند داشته باشد، تا سرآیند خراب نتواند همه حافظه را بخواهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

کف سکوت SilenceFloorDb

پایا کف سکوت: اعشار۶۴ = -200
مقدار دسیبلی که برای سکوت به کار می‌رود، چون سکوت واقعی دسیبل ندارد.
audio-Measure.salam
واردسازی صدا

تابع ریشه:
    ناپایا ق := صدا.جدید(8000، 1، 4)
    صدا.تنظیم نمونه(ق، 0، 0، 1.0)
    صدا.تنظیم نمونه(ق، 1، 0، -0.5)
    صدا.تنظیم نمونه(ق، 2، 0، 0.0)
    صدا.تنظیم نمونه(ق، 3، 0، 0.25)
    سرچاپ صدا.اوج(ق)، صدا.اوج کانال(ق، 0)، صدا.انحراف جریان مستقیم(ق)
    سرچاپ صدا.بریده است(ق)، صدا.شمار بریده(ق)
    سرچاپ صدا.بهره به دسیبل(1.0)، صدا.دسیبل به بهره(0.0)
    سرچاپ صدا.دسیبل به بهره(صدا.بهره به دسیبل(0.25))
    سرچاپ صدا.بهره به دسیبل(0.0)، صدا.کف سکوت، صدا.دسیبل به بهره(صدا.کف سکوت)
    سرچاپ صدا.ساکت است(ق، -60.0)، صدا.نخستین صدا(ق، -60.0)، صدا.آخرین صدا(ق، -60.0)
    ناپایا شکاف := صدا.جدید(8000، 1، 8)
    صدا.تنظیم نمونه(شکاف، 3، 0، 0.5)
    صدا.تنظیم نمونه(شکاف، 4، 0، 0.5)
    سرچاپ صدا.نخستین صدا(شکاف، -60.0)، صدا.آخرین صدا(شکاف، -60.0)
    ناپایا آرام := صدا.جدید(8000، 1، 8)
    سرچاپ صدا.ساکت است(آرام، -60.0)، صدا.نخستین صدا(آرام، -60.0)
    سرچاپ صدا.جذر میانگین مربع(شکاف)، صدا.جذر میانگین مربع بازه(شکاف، 3، 2)
    صدا.آزادسازی(ق)
    صدا.آزادسازی(شکاف)
    صدا.آزادسازی(آرام)
پایان
خروجی1 1 0.1875 true 1 0 1 0.25 -200 -200 0 false 0 3 3 4 true -1 0.25 0.5

شماره‌های قالب Format…

قالب‌هایی که این خانواده به نام می‌شناسد. شناسایی قالب و قالب از پسوند با یکی از اینها پاسخ می‌دهند؛ اینکه این ساخت به راستی می‌تواند یکی را بخواند پرسش جداگانه‌ای برای کدگشایی شدنی در صدا.کدک است.
نامانگلیسیمقدار
قالب نامشخصFormatUnknown0
قالب ویوFormatWAV1
قالب ام‌پی‌تریFormatMP32
قالب فلاکFormatFLAC3
قالب اوگFormatOGG4
قالب ایفFormatAIFF5
قالب اواسنیدیFormatAU6
قالب اوپوسFormatOpus7
قالب ای‌ای‌سیFormatAAC8
قالب میدیFormatMIDI9

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Formats.salam

تابع‌ها

برش Slice

تابع برش(c: قطعه، from_frame: صحیح، count: صحیح): قطعه
قطعه‌ای تازه با همین فریم‌ها.
audio-Edit.salam
واردسازی صدا

تابع شیب(شمار: صحیح): صدا.قطعه:
    ناپایا ق := صدا.جدید(8000، 1، شمار)
    ناپایا ش := 0
    تا ش کوچکتر شمار:
        صدا.تنظیم نمونه(ق، ش، 0، (ش برگردان اعشار۶۴) / 32.0)
        ش += 1
    پایان
    برگشت ق
پایان

تابع ریشه:
    الف := شیب(8)
    تکه := صدا.برش(الف، 2، 3)
    سرچاپ تکه.فریم ها، صدا.نمونه(تکه، 0، 0)، صدا.نمونه(تکه، 2، 0)
    سرچاپ صدا.برش زمانی(الف، 0.0، 0.0005).فریم ها، صدا.برش(الف، 6، 10).فریم ها
    پیو := صدا.پیوند(تکه، تکه)
    سرچاپ پیو.فریم ها، صدا.نمونه(پیو، 3، 0)
    سرچاپ صدا.تکرار صدا(تکه، 4).فریم ها
    آم := صدا.آمیختن(الف، الف، 1.0، 0.5)
    سرچاپ صدا.نمونه(آم، 4، 0)
    ناپایا گ := صدا.کپی(الف)
    صدا.مقیاس(گ، 2.0)
    سرچاپ صدا.نمونه(گ، 1، 0)
    صدا.بهره(گ، 0.0)
    سرچاپ صدا.نمونه(گ، 1، 0)
    صدا.مقیاس(گ، 100.0)
    صدا.محدود کردن(گ)
    سرچاپ صدا.اوج(گ)
    ناپایا ن := صدا.کپی(الف)
    صدا.هنجارسازی(ن، 0.0)
    سرچاپ صدا.اوج(ن)
    ناپایا واگرد := صدا.کپی(الف)
    صدا.وارونه کردن(واگرد)
    سرچاپ صدا.نمونه(واگرد، 0، 0)، صدا.نمونه(واگرد، 7، 0)
    ناپایا م := صدا.کپی(الف)
    صدا.محو ورودی(م، صدا.مدت(م))
    سرچاپ صدا.نمونه(م، 0، 0)، صدا.نمونه(م، 4، 0)
    ناپایا خ := صدا.کپی(الف)
    صدا.محو خروجی(خ، صدا.مدت(خ))
    سرچاپ صدا.نمونه(خ، 0، 0)
    سرچاپ صدا.لایی گذاری(الف، 0.001، 0.001).فریم ها
    ناپایا سر := صدا.قطعه {}
    ناپایا دنباله := صدا.قطعه {}
    صدا.شکافتن(الف، 0.0005، سر، دنباله)
    سرچاپ سر.فریم ها، دنباله.فریم ها، صدا.نمونه(دنباله، 0، 0)
    ناپایا شکاف := صدا.جدید(8000، 1، 8)
    صدا.تنظیم نمونه(شکاف، 3، 0، 0.5)
    صدا.تنظیم نمونه(شکاف، 4، 0، 0.5)
    سرچاپ صدا.برش سکوت(شکاف، -60.0).فریم ها
    ناپایا هدف := صدا.جدید(8000، 1، 8)
    صدا.آمیختن در(هدف، تکه، 2، 1.0)
    سرچاپ صدا.نمونه(هدف، 2، 0)، صدا.نمونه(هدف، 0، 0)
    صدا.آزادسازی(الف)
پایان
خروجی3 0.0625 0.125 4 2 6 0.0625 12 0.1875 0.0625 0.0625 1 1 0.21875 0 0 0.0625 0 24 4 4 0.125 2 0.0625 0

برش زمانی Trim

تابع برش زمانی(c: قطعه، from_s: اعشار۶۴، to_s: اعشار۶۴): قطعه
قطعه‌ای تازه با صدای میان این دو زمان.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

پیوند Concat

تابع پیوند(a: قطعه، b: قطعه): قطعه
یک قطعه پس از دیگری. باید نرخ و شمار کانال یکسان داشته باشند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

آمیختن در MixAt

تابع آمیختن در(dst &: قطعه، src: قطعه، at_frame: صحیح، gain: اعشار۶۴)
یک قطعه را در فریمی از قطعه دیگر و با بهره‌ای در جا می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

آمیختن Mix

تابع آمیختن(a: قطعه، b: قطعه، gain_a: اعشار۶۴، gain_b: اعشار۶۴): قطعه
دو قطعه با هم جمع شده، هر یک با بهره خودش، به بلندی بلندترین.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

شکافتن Split

تابع شکافتن(c: قطعه، at_s: اعشار۶۴، head &: قطعه، tail &: قطعه)
قطعه را در زمانی به دو تکه سر و دنباله می‌برد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

بهره Gain

تابع بهره(c &: قطعه، db: اعشار۶۴)
قطعه را این اندازه دسیبل بلندتر یا آرام‌تر می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

مقیاس Scale

تابع مقیاس(c &: قطعه، factor: اعشار۶۴)
هر نمونه را در این عدد ضرب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

محدود کردن Clamp

تابع محدود کردن(c &: قطعه)
هر نمونه را میان منهای یک و یک نگه می‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

هنجارسازی Normalize

تابع هنجارسازی(c &: قطعه، target_db: اعشار۶۴)
قطعه را چنان مقیاس می‌کند که اوجش روی این اندازه دسیبل بنشیند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

وارونه کردن Reverse

تابع وارونه کردن(c &: قطعه)
قطعه را از آخر به اول می‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

محو ورودی FadeIn

تابع محو ورودی(c &: قطعه، seconds: اعشار۶۴)
در این اندازه ثانیه از سکوت بالا می‌آید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

محو خروجی FadeOut

تابع محو خروجی(c &: قطعه، seconds: اعشار۶۴)
در ثانیه‌های پایانی به سکوت پایین می‌رود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

لایی گذاری Pad

تابع لایی گذاری(c: قطعه، before_s: اعشار۶۴، after_s: اعشار۶۴): قطعه
قطعه‌ای تازه با سکوت افزوده در آغاز و پایان.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

تکرار صدا Repeat

تابع تکرار صدا(c: قطعه، times: صحیح): قطعه
قطعه این اندازه بار پشت سر هم.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

برش سکوت TrimSilence

تابع برش سکوت(c: قطعه، threshold_db: اعشار۶۴): قطعه
قطعه‌ای تازه با سکوت دو سرش برداشته.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam

جدید New

تابع جدید(rate: صحیح، channels: صحیح، frames: صحیح): قطعه
قطعه‌ای تازه از سکوت با این نرخ، شمار کانال و شمار فریم. نمونه‌ها از آن قطعه‌اند؛ با آزادسازی رهایشان کنید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

سکوت جدید NewSilence

تابع سکوت جدید(rate: صحیح، channels: صحیح، seconds: اعشار۶۴): قطعه
قطعه‌ای تازه از سکوت به این اندازه ثانیه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

آزادسازی Free

تابع آزادسازی(c &: قطعه)
نمونه‌ها را رها می‌کند و قطعه را خالی می‌گذارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

خالی است IsEmpty

تابع خالی است(c: قطعه): منطقی
درست وقتی قطعه صدایی ندارد، که همان چیزی است که فراخوان ناکام برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

کپی Clone

تابع کپی(c: قطعه): قطعه
یک کپی جدا با نمونه‌های خودش.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

شمار نمونه SampleCount

تابع شمار نمونه(c: قطعه): صحیح
فریم ضرب در کانال، شمار همه نمونه‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

در محدوده InBounds

تابع در محدوده(c: قطعه، frame: صحیح، ch: صحیح): منطقی
درست وقتی این فریم و کانال درون قطعه‌اند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

نمونه Sample

تابع نمونه(c: قطعه، frame: صحیح، ch: صحیح): اعشار۶۴
یک نمونه، میان منهای یک و یک. بیرون از قطعه صفر است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

تنظیم نمونه SetSample

تابع تنظیم نمونه(c &: قطعه، frame: صحیح، ch: صحیح، v: اعشار۶۴)
یک نمونه را می‌نویسد. بیرون از قطعه کاری نمی‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

افزودن نمونه AddSample

تابع افزودن نمونه(c &: قطعه، frame: صحیح، ch: صحیح، v: اعشار۶۴)
به یک نمونه می‌افزاید جای آنکه جایش را بگیرد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

داده Data

تابع داده(c: قطعه): اعشار۳۲*
نمونه‌ها به شکل اشاره‌گر، برای کدی که خودش روی آنها راه می‌رود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

مدت Duration

تابع مدت(c: قطعه): اعشار۶۴
قطعه چند ثانیه بلند است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

فریم در زمان FrameAt

تابع فریم در زمان(c: قطعه، seconds: اعشار۶۴): صحیح
فریمی که در این ثانیه است، نگه داشته درون قطعه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

ثانیه در فریم SecondsAt

تابع ثانیه در فریم(c: قطعه، frame: صحیح): اعشار۶۴
این فریم در چند ثانیه است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

ساکت کردن Silence

تابع ساکت کردن(c &: قطعه)
هر نمونه را صفر می‌کند بدون آنکه شکل قطعه عوض شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam

کانال Channel

تابع کانال(c: قطعه، ch: صحیح): قطعه
یک کانال قطعه به تنهایی، به شکل قطعه‌ای یک‌کاناله.
audio-Convert.salam
واردسازی صدا

تابع ریشه:
    ناپایا دو := صدا.جدید(8000، 2، 4)
    ناپایا ش := 0
    تا ش کوچکتر 4:
        صدا.تنظیم نمونه(دو، ش، 0، (ش برگردان اعشار۶۴) / 8.0)
        صدا.تنظیم نمونه(دو، ش، 1، 0.0 - (ش برگردان اعشار۶۴) / 16.0)
        ش += 1
    پایان
    دو.بیت ها = 16
    تک := صدا.به یک‌کاناله(دو)
    سرچاپ تک.کانال ها، صدا.نمونه(تک، 2، 0)، تک.بیت ها
    پهن := صدا.به دوکاناله(تک)
    سرچاپ پهن.کانال ها، صدا.نمونه(پهن، 2، 0) برابر صدا.نمونه(پهن، 2، 1)
    چهار := صدا.به کانال‌ها(تک، 4)
    سرچاپ چهار.کانال ها، صدا.نمونه(چهار، 1، 3)
    چپ := صدا.کانال(دو، 0)
    راست := صدا.کانال(دو، 1)
    سرچاپ چپ.کانال ها، صدا.نمونه(چپ، 3، 0)، صدا.نمونه(راست، 3، 0)
    تکه := صدا.جداسازی کانال‌ها(دو)
    سرچاپ تکه.طول()
    بافته := صدا.درهم‌بافی کانال‌ها(تکه)
    سرچاپ بافته.کانال ها، صدا.نمونه(بافته، 3، 1) برابر صدا.نمونه(دو، 3، 1)
    پایین := صدا.به نرخ(دو، 4000)
    سرچاپ پایین.نرخ، پایین.فریم ها، پایین.بیت ها
    بالا := صدا.به نرخ(تک، 16000)
    سرچاپ بالا.نرخ، بالا.فریم ها، صدا.نمونه(بالا، 2، 0)
    زبر := صدا.به بیت(تک، 4)
    سرچاپ زبر.بیت ها، صدا.نمونه(زبر، 1، 0)، صدا.نمونه(زبر، 3، 0)
    صدا.آزادسازی(دو)
    صدا.آزادسازی(تک)
پایان
خروجی1 0.0625 16 2 true 4 0.03125 1 0.375 -0.1875 2 2 true 4000 2 16 16000 8 0.03125 4 0 0.125

جداسازی کانال‌ها Deinterleave

تابع جداسازی کانال‌ها(c: قطعه): وکتور<قطعه>
هر کانال به شکل قطعه خودش. هر یک را آزاد کنید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam

درهم‌بافی کانال‌ها Interleave

تابع درهم‌بافی کانال‌ها(parts: وکتور<قطعه>): قطعه
چند قطعه یک‌کاناله بافته در یک قطعه با همان شمار کانال.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam

به یک‌کاناله ToMono

تابع به یک‌کاناله(c: قطعه): قطعه
همه کانال‌ها میانگین گرفته و به یکی رسیده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam

به دوکاناله ToStereo

تابع به دوکاناله(c: قطعه): قطعه
قطعه به شکل دو کانال.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam

به کانال‌ها ToChannels

تابع به کانال‌ها(c: قطعه، channels: صحیح): قطعه
قطعه با این شمار کانال، با کپی یا میانگین هر جا لازم بود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam

به نرخ ToRate

تابع به نرخ(c: قطعه، rate: صحیح): قطعه
قطعه با نرخ نمونه تازه، با درون‌یابی میان نمونه‌ها. برای نتیجه پاکیزه‌تر بازنمونه سینک در صدا.پردازش سیگنال را به کار ببرید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam

به بیت ToBits

تابع به بیت(c: قطعه، bits: صحیح): قطعه
قطعه گرد شده به پله‌های این عمق بیت، همان گونه که پس از نوشتن در آن عمق شنیده می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam

خواننده بیت جدید NewMsbReader

تابع خواننده بیت جدید(p: تهی*، n: صحیح): خواننده بیت
خواننده‌ای روی این بایت‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

خواننده بیت از بافر MsbReaderFromBuf

تابع خواننده بیت از بافر(b: compress.ByteBuf): خواننده بیت
خواننده‌ای روی یک بافر بایت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

خواندن بیت‌ها بزرگ MsbReadI64

تابع خواندن بیت‌ها بزرگ(r &: خواننده بیت، count: صحیح): صحیح۶۴
بیت‌های بعدی به شکل عدد بزرگ، تا پنجاه و شش تا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

خواندن بیت‌ها MsbRead

تابع خواندن بیت‌ها(r &: خواننده بیت، count: صحیح): صحیح
بیت‌های بعدی به شکل عدد، تا سی و دو تا، از پرارزش‌ترین.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

خواندن بیت MsbReadBit

تابع خواندن بیت(r &: خواننده بیت): صحیح
تک بیت بعدی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

خواندن بیت‌ها علامتدار MsbReadSigned

تابع خواندن بیت‌ها علامتدار(r &: خواننده بیت، count: صحیح): صحیح
بیت‌های بعدی خوانده شده به شکل عدد علامتدار در مکمل دو.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

خواندن یکانی MsbUnary

تابع خواندن یکانی(r &: خواننده بیت): صحیح
صفرهای پیش از یک بعدی را می‌شمارد، همان شکلی که کدهای رایس و گلومب به کار می‌برند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

پرش بیت MsbSkip

تابع پرش بیت(r &: خواننده بیت، count: صحیح)
از این اندازه بیت می‌گذرد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

همتراز کردن خواننده MsbAlign

تابع همتراز کردن خواننده(r &: خواننده بیت)
به بایت کامل بعدی می‌رود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

جای خواننده MsbTell

تابع جای خواننده(r: خواننده بیت): صحیح
خواننده روی کدام بیت است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

جابجایی خواننده MsbSeek

تابع جابجایی خواننده(r &: خواننده بیت، bitpos: صحیح)
خواننده را به این بیت می‌برد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

باقیمانده خواننده MsbLeft

تابع باقیمانده خواننده(r: خواننده بیت): صحیح
چند بیت هنوز خوانده نشده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

خواننده خراب MsbBad

تابع خواننده خراب(r: خواننده بیت): منطقی
درست می‌شود وقتی خواندن از انتها گذشت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

نویسنده بیت جدید NewMsbWriter

تابع نویسنده بیت جدید(): نویسنده بیت
نویسنده‌ای تازه با بافری خالی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

نوشتن بیت‌ها MsbWrite

تابع نوشتن بیت‌ها(w &: نویسنده بیت، value: صحیح۶۴، count: صحیح)
بیت‌های کم‌ارزش یک عدد را می‌نویسد، از پرارزش‌ترین.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

نوشتن بیت MsbWriteBit

تابع نوشتن بیت(w &: نویسنده بیت، bit: صحیح)
یک بیت می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

نوشتن یکانی MsbWriteUnary

تابع نوشتن یکانی(w &: نویسنده بیت، n: صحیح)
این اندازه صفر و سپس یک می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

همتراز کردن نویسنده MsbPad

تابع همتراز کردن نویسنده(w &: نویسنده بیت)
بایت پایانی را با صفر پر می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

طول نویسنده MsbLen

تابع طول نویسنده(w &: نویسنده بیت): صحیح
نویسنده چند بایت کامل تمام کرده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

پایان نویسنده MsbFinish

تابع پایان نویسنده(w &: نویسنده بیت): compress.ByteBuf
بایت پایانی را پر می‌کند و بایت‌ها را پس می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

آزادسازی نویسنده MsbFree

تابع آزادسازی نویسنده(w &: نویسنده بیت)
بافر نویسنده را رها می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam

بهره به دسیبل GainToDb

تابع بهره به دسیبل(gain: اعشار۶۴): اعشار۶۴
یک ضریب را به دسیبل برمی‌گرداند. صفر کف سکوت را می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

دسیبل به بهره DbToGain

تابع دسیبل به بهره(db: اعشار۶۴): اعشار۶۴
دسیبل را به ضریب برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

اوج Peak

تابع اوج(c: قطعه): اعشار۶۴
بیشترین فاصله‌ای که هر نمونه از صفر می‌گیرد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

اوج دسیبل PeakDb

تابع اوج دسیبل(c: قطعه): اعشار۶۴
اوج به دسیبل، که صفر آن بلندترین چیزی است که یک نمونه می‌تواند باشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

اوج کانال PeakChannel

تابع اوج کانال(c: قطعه، ch: صحیح): اعشار۶۴
اوج یک کانال به تنهایی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

جذر میانگین مربع RMS

تابع جذر میانگین مربع(c: قطعه): اعشار۶۴
جذر میانگین مربع همه نمونه‌ها، که بلندی را بهتر از اوج پی می‌گیرد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

جذر میانگین مربع دسیبل RMSDb

تابع جذر میانگین مربع دسیبل(c: قطعه): اعشار۶۴
جذر میانگین مربع به دسیبل.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

جذر میانگین مربع بازه RMSRange

تابع جذر میانگین مربع بازه(c: قطعه، from_frame: صحیح، count: صحیح): اعشار۶۴
جذر میانگین مربع یک کشیدگی از فریم‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

انحراف جریان مستقیم DcOffset

تابع انحراف جریان مستقیم(c: قطعه): اعشار۶۴
میانگین همه نمونه‌ها. هر چیزی دور از صفر یعنی موج در میانه ننشسته است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

بریده است IsClipped

تابع بریده است(c: قطعه): منطقی
درست وقتی نمونه‌ای به مرز می‌رسد، جایی که بریده می‌شد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

شمار بریده CountClipped

تابع شمار بریده(c: قطعه): صحیح
چند نمونه به مرز می‌رسند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

ساکت است IsSilent

تابع ساکت است(c: قطعه، threshold_db: اعشار۶۴): منطقی
درست وقتی هیچ چیز در قطعه از این اندازه دسیبل بالاتر نمی‌رود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

نخستین صدا FirstSound

تابع نخستین صدا(c: قطعه، threshold_db: اعشار۶۴): صحیح
نخستین فریم بالاتر از این اندازه دسیبل، یا منهای یک وقتی نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

آخرین صدا LastSound

تابع آخرین صدا(c: قطعه، threshold_db: اعشار۶۴): صحیح
آخرین فریم بالاتر از این اندازه دسیبل، یا منهای یک وقتی نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam

شناسایی قالب DetectFormat

تابع شناسایی قالب(p: تهی*، n: صحیح): صحیح
این بایت‌ها کدام قالبند، خوانده از چند بایت آغازین.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Formats.salam

قالب از پسوند FormatFromExt

تابع قالب از پسوند(path: رشته): صحیح
این نام پرونده کدام قالب را می‌گوید، از پسوندش.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Formats.salam

نام قالب FormatName

تابع نام قالب(format: صحیح): رشته
نام کوتاه یک قالب، مثل ویو.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Formats.salam

قالب بی‌اتلاف است FormatIsLossless

تابع قالب بی‌اتلاف است(format: صحیح): منطقی
درست وقتی قالب همان را برمی‌گرداند که کدگذاری شده بود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Formats.salam

میولا به پی‌سی‌ام MuLawToPcm

تابع میولا به پی‌سی‌ام(b: صحیح): صحیح
یک بایت میولا باز به نمونه شانزده بیتی، بر پایه جی۷۱۱.
audio-Pcm.salam
واردسازی صدا
واردسازی فشرده سازی
واردسازی ریاضی

تابع ریشه:
    سرچاپ صدا.عمق پی‌سی‌ام معتبر(16)، صدا.عمق پی‌سی‌ام معتبر(12)، صدا.عمق پی‌سی‌ام معتبر(32)

    ناپایا کلیپ := صدا.جدید(8000، 1، 4)
    صدا.تنظیم نمونه(کلیپ، 0، 0، 0.5)
    صدا.تنظیم نمونه(کلیپ، 1، 0، -0.5)
    صدا.تنظیم نمونه(کلیپ، 2، 0، 0.25)

    ناپایا کوچک := فشرده سازی.بافر بایت جدید()
    صدا.کدگذاری پی‌سی‌ام(کوچک، کلیپ، 16، نادرست، نادرست)
    سرچاپ فشرده سازی.طول بافر(کوچک)، فشرده سازی.دریافت بایت(کوچک، 0)، فشرده سازی.دریافت بایت(کوچک، 1)
    ناپایا بزرگ := فشرده سازی.بافر بایت جدید()
    صدا.کدگذاری پی‌سی‌ام(بزرگ، کلیپ، 16، درست، نادرست)
    سرچاپ فشرده سازی.دریافت بایت(بزرگ، 0)، فشرده سازی.دریافت بایت(بزرگ، 1)

    ناپایا برگشته := صدا.جدید(8000، 1، 4)
    سرچاپ صدا.کدگشایی پی‌سی‌ام(کوچک.data، 0، برگشته، 16، نادرست، نادرست)
    سرچاپ صدا.نمونه(برگشته، 0، 0)، صدا.نمونه(برگشته، 1، 0)، صدا.نمونه(برگشته، 2، 0)
    ناپایا برگشته۲ := صدا.جدید(8000، 1، 4)
    صدا.کدگشایی پی‌سی‌ام(بزرگ.data، 0، برگشته۲، 16، درست، نادرست)
    سرچاپ صدا.نمونه(برگشته۲، 0، 0) برابر صدا.نمونه(برگشته، 0، 0)

    ناپایا شناور := فشرده سازی.بافر بایت جدید()
    صدا.کدگذاری اعشاری(شناور، کلیپ، 32، نادرست)
    ناپایا برگشته۳ := صدا.جدید(8000، 1، 4)
    سرچاپ صدا.کدگشایی اعشاری(شناور.data، شناور.len، 0، برگشته۳، 32، نادرست)
    سرچاپ صدا.نمونه(برگشته۳، 0، 0) برابر صدا.نمونه(کلیپ، 0، 0)

    سرچاپ صدا.پی‌سی‌ام به میولا(0)، صدا.میولا به پی‌سی‌ام(صدا.پی‌سی‌ام به میولا(0))
    سرچاپ صدا.پی‌سی‌ام به میولا(16000)، صدا.میولا به پی‌سی‌ام(144)
    سرچاپ صدا.پی‌سی‌ام به ای‌لا(16000)، صدا.ای‌لا به پی‌سی‌ام(186)
    ناپایا بیشینه := 0
    ناپایا مقدار := -32768
    تا مقدار کوچکتر 32768:
        فرق := ریاضی.قدرمطلق صحیح(صدا.میولا به پی‌سی‌ام(صدا.پی‌سی‌ام به میولا(مقدار)) - مقدار)
        اگر فرق بزرگتر بیشینه:
            بیشینه = فرق
        پایان
        مقدار += 7
    پایان
    سرچاپ بیشینه کوچکتر 820

    ناپایا فشرده := فشرده سازی.بافر بایت جدید()
    صدا.کدگذاری فشرده(فشرده، کلیپ، نادرست)
    سرچاپ فشرده سازی.طول بافر(فشرده)
    ناپایا برگشته۴ := صدا.جدید(8000، 1، 4)
    سرچاپ صدا.کدگشایی فشرده(فشرده.data، 0، برگشته۴، نادرست)
    سرچاپ ریاضی.قدرمطلق(صدا.نمونه(برگشته۴، 0، 0) - 0.5) کوچکتر 0.02

    فشرده سازی.آزادسازی بافر(کوچک)
    فشرده سازی.آزادسازی بافر(بزرگ)
    فشرده سازی.آزادسازی بافر(شناور)
    فشرده سازی.آزادسازی بافر(فشرده)
    صدا.آزادسازی(کلیپ)
    صدا.آزادسازی(برگشته)
    صدا.آزادسازی(برگشته۲)
    صدا.آزادسازی(برگشته۳)
    صدا.آزادسازی(برگشته۴)
پایان
خروجیtrue false true 8 0 64 64 0 true 0.5 -0.5 0.25 true true true 255 0 144 15996 186 16128 true 4 true true

پی‌سی‌ام به میولا PcmToMuLaw

تابع پی‌سی‌ام به میولا(sample: صحیح): صحیح
یک نمونه شانزده بیتی به شکل یک بایت میولا. تلفن در آمریکای شمالی و ژاپن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam

ای‌لا به پی‌سی‌ام ALawToPcm

تابع ای‌لا به پی‌سی‌ام(b: صحیح): صحیح
یک بایت ای‌لا باز به نمونه شانزده بیتی، بر پایه جی۷۱۱.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam

پی‌سی‌ام به ای‌لا PcmToALaw

تابع پی‌سی‌ام به ای‌لا(sample: صحیح): صحیح
یک نمونه شانزده بیتی به شکل یک بایت ای‌لا. تلفن در اروپا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam

عمق پی‌سی‌ام معتبر PcmDepthValid

تابع عمق پی‌سی‌ام معتبر(bits: صحیح): منطقی
درست برای چهار عمق صحیحی که یاران پی‌سی‌ام می‌پذیرند: هشت، شانزده، بیست و چهار و سی و دو.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam

کدگشایی پی‌سی‌ام DecodePcm

تابع کدگشایی پی‌سی‌ام(p: تهی*، off: صحیح، c &: قطعه، bits: صحیح، big: منطقی، unsigned8: منطقی): منطقی
قطعه را از پی‌سی‌ام صحیح خام در یک جابجایی پر می‌کند، در هر یک از چهار عمق و هر دو ترتیب بایت. هشت بیت در ویو بی‌علامت و در ایف و ای‌یو علامتدار است، که آخرین آرگومان همان را برمی‌گزیند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam

کدگشایی اعشاری DecodeFloatPcm

تابع کدگشایی اعشاری(p: تهی*، total: صحیح، off: صحیح، c &: قطعه، bits: صحیح، big: منطقی): منطقی
قطعه را از نمونه‌های اعشاری خام آی‌تریپل‌ای پر می‌کند، سی و دو یا شصت و چهار بیتی، هر دو ترتیب بایت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam

کدگشایی فشرده DecodeLawPcm

تابع کدگشایی فشرده(p: تهی*، off: صحیح، c &: قطعه، alaw: منطقی): منطقی
قطعه را از بایت‌های ای‌لا یا میولا پر می‌کند، یک بایت برای هر نمونه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam

کدگذاری پی‌سی‌ام EncodePcm

تابع کدگذاری پی‌سی‌ام(b &: compress.ByteBuf، c: قطعه، bits: صحیح، big: منطقی، unsigned8: منطقی)
قطعه را به شکل پی‌سی‌ام صحیح خام در یک عمق و ترتیب بایت می‌نویسد و در راه گرد و محدود می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam

کدگذاری اعشاری EncodeFloatPcm

تابع کدگذاری اعشاری(b &: compress.ByteBuf، c: قطعه، bits: صحیح، big: منطقی)
قطعه را به شکل نمونه‌های اعشاری خام آی‌تریپل‌ای می‌نویسد، که آنها را دقیق نگه می‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam

کدگذاری فشرده EncodeLawPcm

تابع کدگذاری فشرده(b &: compress.ByteBuf، c: قطعه، alaw: منطقی)
قطعه را به شکل بایت‌های ای‌لا یا میولا می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam