যতদূর আমি জানি, ম্যাথামেটিকা লিনাক্সে সত্যই কখনও সাউন্ড সমর্থন করে নি।
কমান্ডটি Play
সংস্করণ 3 সংস্করণে প্রবর্তিত হয়েছিল এবং 6 নম্বর সংস্করণে পুরো সাউন্ড সিস্টেমটি ওভারহুল করা হয়েছে, আপনি যদি comp.soft-sys.math.mathemata অনুসন্ধান করেন, আপনি সংস্করণ 3-এ ফিরে সমস্ত প্রশ্ন ফিরে পাবেন version সংস্করণে, কমান্ড EmitSound
চালু করা হয়েছিল। এটি এখন বেশিরভাগ গাণিতিক শব্দ উত্পন্ন করে, তবে লিনাক্সের জন্য এটি ঠিক করার / হ্যাক করার কোনও দ্রুত উপায় আমি খুঁজে পাইনি, যেহেতু EmitSound
কিছুটা প্রিপ্রোসেসিং (কোন ধরণের অবজেক্টগুলি দেওয়া হয়েছিল তা নির্ধারণ করে) শব্দটি সীমান্তে যাওয়ার আগে? নির্ণয় করা।
বেশিরভাগ লিনাক্স ইনস্টলে ব্যবহৃত ডিফল্ট সাউন্ড ড্রাইভার / এপিআই হ'ল ALSA ( উইকি )। এটি ২০০২ সালে লিনাক্স কার্নেল ২.6 এ ডিফল্ট হয়ে যায় এবং ওএসএসকে "অবমূল্যায়ন" হিসাবে চিহ্নিত করা হয়েছিল (যদিও ওএসএস এখনও সক্রিয় বিকাশের অধীনে রয়েছে)। একাধিক Linux ডিস্ট্রিবিউশন এখন ব্যবহার PulseAudio
যা অন্তর্নিহিত উদ্দেশ্যে ALSA শব্দের উপরে অস্ত যায়। (লিনাক্স সাউন্ডের আরও ভাল বোঝার সাথে যে কেউ এটি সম্পাদনা করতে দ্বিধা বোধ করা উচিত!)
ম্যাথমেটিকা 3 (1996) সংস্করণে শব্দ প্রবর্তন করেছিল এবং এভাবে তার * নিক্স রূপগুলির জন্য ওএসএস ব্যবহার করে। ওএসএস সত্ত্বেও প্রায় কোনও লিনাক্স ভেরিয়েন্টে এটি ডিফল্ট না হওয়ার পরেও এটি এখনও বিদ্যমান। এটি জানার ফলে আমাদের একটি সম্ভাব্য সমাধান পাওয়া যায়: একটি ওএসএস অনুকরণ স্তর ব্যবহার করুন (যেমন, উদাহরণস্বরূপ, http://wiki.debian.org/SoundFAQ )।
সবচেয়ে সহজ হ'ল একটি ইউজারস্পেস মোড এমুলেশন ব্যবহার করা এবং ম্যাথমেটিকাকে চালানো aoss
aoss mathematica
বা পালস অডিও সমতুল্য
padsp mathematica
এই উভয়ের ক্ষেত্রেই সমস্যাটি হ'ল এটি কেবল এমআইডিআই সাউন্ডের সাথে কাজ করে, নমুনাযুক্ত শব্দগুলির সাথে নয়। কমপক্ষে এটি আমার উবুন্টু ১০.১০ সিস্টেম এবং স্কট ক্রুজারের লিনাক্স সিস্টেমে ( ডাব্লুআরআই টেকনিক্যাল সাপোর্ট টিমের) ক্ষেত্রে সত্য। এই বিষয়ে একটি বাগ রিপোর্ট দায়ের করা হয়েছে।
বিকল্পভাবে, আপনি আপনার কর্নেলের মধ্যে ওএসএস সামঞ্জস্যতা লোড করতে পারেন
apt-get install alsa-oss
modprobe snd_pcm_oss
modprobe snd_mixer_oss
এবং আপনি যোগ করতে পারেন snd_pcm_oss
এবং snd_mixer_oss
করতে /etc/modules
তাদের boottime এ লোড করা হয়নি। এই মডিউলগুলি উবুন্টু ১০.১০ তে সহজেই উপলভ্য নয়
যেহেতু তারা পিছনের সামঞ্জস্যটি সরিয়ে নেওয়ার সিদ্ধান্ত নিয়েছে। আমি আমার কার্নেলটি সংশোধন না করে উপরেরটি পরীক্ষা করতে পারি না ...
যেহেতু উপরের ওএসএস অনুকরণটি এখন নিখুঁতভাবে কাজ করছে না, তাই আমি দেখেছি এমন কয়েকটি আলোচনার (যেমন, একটি খ সি ) উপর ভিত্তি করে দ্রুত কাজ করার কয়েকটি জায়গা রয়েছে এবং ডিফল্ট ALSA কমান্ডগুলি ব্যবহার করতে পুনরায় লিখেছিলেন।
নমুনাযুক্ত সাউন্ডের জন্য, ব্যবহার করুন aplay
:
ALSASound[snd_, "WAV"] := Module[{playCmd = "aplay", soundFileName},
soundFileName = "/dev/shm/" <> ToString[Unique["MmaSound"]] <> ".wav";
playCmd = playCmd <> " " <> soundFileName;
Export[soundFileName, snd, "WAV"];
Run["(" <> playCmd <> ";" <> "/bin/rm -f " <> soundFileName <> ")&"];]
যেমন ALSASound[Play[Sin[1000 t^2], {t, 0, 1}], "WAV"]
,।
আপনার Export
সরাসরি /dev/snd/
ডিভাইসটিতে সরাসরি সক্ষম হওয়া উচিত ... তবে আমি এটি কাজ করতে পারিনি get
জন্য midi
ব্যবহার aplaymidi
। এটি কাজ করার জন্য আপনার কোনও ধরণের সফ্টওয়্যার / হার্ডওয়্যার মিডি সিন্থ ইনস্টল করা দরকার। আমি timidity
128 বন্দরে চলছে। ( সাহায্যের জন্য এখানে দেখুন )
ALSASound[snd_, "MIDI"] :=
Module[{playCmd = "aplaymidi", port = "128:0", soundFileName},
soundFileName = "/dev/shm/" <> ToString[Unique["MmaSound"]] <> ".mid";
playCmd = playCmd <> " -p " <> port <> " " <> soundFileName;
Export[soundFileName, snd, "MIDI"];
Run["(" <> playCmd <> ";" <> "/bin/rm -f " <> soundFileName <> ")&"];]
যেমন, ALSASound[Sound[SoundNote /@ CharacterRange["A", "G"]], "MIDI"]
আপনি এখন ALSASound
যেকোন সাউন্ড অবজেক্টের চারপাশে উপযুক্ত কমান্ডটি মোড়ানো করতে পারেন । আপনি Play
ব্যবহারের জন্য নতুন সংজ্ঞা দিতে পারেন ALSASound
:
SetOptions[Play, DisplayFunction -> ((ALSASound[#, "WAV"]; #) &)];
এটি মূলত around সাউন্ডডিসপ্লে ফাংশনটি সেট করার সমতুল্য , যেমন ইন্টারনেটের চারদিকে আলোচনার অনেকগুলি সুপারিশ করে। এই বিকল্প সেটিংটি শব্দটি বাজায়, তারপরে স্বাভাবিক গ্রাফিকগুলিকে আউটপুট দেয়।
Play[Sin[1000 t^2], {t, 0, 1}]
তবে স্টার্ট / স্টপ বোতামগুলি কার্যকর হবে না, যেহেতু সেগুলি ভিত্তিক EmitSound
।
একটি সাধারণ Beep[]
সমতুল্য করতে, চেষ্টা করুন
ALSABeep[] := Play[Sin[5000 t], {t, 0, .1},
DisplayFunction -> (ALSASound[#, "WAV"]&)]
অবশেষে, আপনি যদি উত্সব পাঠ্য থেকে স্পিচ (বা অন্য কোনও পাঠ্য-থেকে-স্পিচ প্রোগ্রাম) ইনস্টল করেন তবে আপনি ম্যাথমেটিকা Speak
কার্যকারিতা প্রতিস্থাপন করতে পারেন , যেমন,
FestivalSpeak[str_String] := (Run["(echo \"" <> str <> "\" | esddsp festival --tts)&"];)
FestivalSpeak[expr_] := FestivalSpeak[SpokenString[expr]]