見出し画像

音を出すと MATLAB が落ちる!? ~ 解決に2週間近く掛かった話


まえがき


先月、5年振りに Windows PC を買い替えました。

ThinkPad P14s Gen 5 AMD(8840HS 32GB/512GB)、私史上初の AMD です。


昔は結構オーディオのデバイスドライバ周りとかで「相性問題」も聞いており、一応ずっと Intel CPU 版を買うようにしていたのですが、さすがに「もう大丈夫だろ!」と。

やはり AMD の方がかなりお安く買えますからね~。


事件は起こった


一通り開発ツールのインストール&セットアップも終わり、さすが 5年振り、かなり快適に使えていました。Photoshop もサクサクで嬉しい!


ところがある日の MATLAB シミュレーション、シミュレーション終わりの合図にいつも曲を鳴らしているのですが、いつまで経っても鳴らない。


確認すると、いや、MATLAB が落ちてる!?

MATLAB を再起動してみると、シミュレーションは正常終了しているよう。


曲を鳴らしてた sound 関数を実行してみると、それだけで落ちる!!


う~ん、困ったけど、sound 関数ってそんなに使わないし、次使うときは deviceWriter 使って書き直せばいいか・・、と放置。


ところがその「次使うとき」、deviceWriter も落ちる!
info = audiodevinfo でも落ちる!

Simulink で、オーディオ関連のモデルを開くと落ちる! 

ベーシックプレイヤーテンプレートも開くと落ちる!


空のモデルに、Audio Device Writer、From Multimedia File、MIDI Controls とかも、ドロップしただけで落ちる!


MATLAB Online では、sound で音が鳴る。

Online 版は、元々オーディオデバイス I/O は非対応です。


これは、間違いなくオーディオデバイスドライバー周り


やっちまったのか? 高くても Intel 買うべきだったのか?

この PC は CEO に譲って、Intel PC 買い直しか?


色々と頭をよぎりました。😂


クラッシュログ


通常 MATLAB は、異常終了時にクラッシュログが出ます。

しかし今回は何も出ませんでした


MATLAB がクラッシュしたとき​のエラーログファイル​はどこにありますか

tempdir にも userpath にも何も残っていません。

extractCrashLogs (File Exchange) を DL して実行してみても

>> extractCrashLogs
Collecting information...
No crash logs found since 05-Oct-2024

詰んだ・・。


ログ・・


Web も色々探してみたのですが、クラッシュログも出ずに音の再生で落ちるという話は見当たりませんでした。

オーディオデバイスドライバー周りに関係ありそうな、foobar、Virtual Cable、Hi-Fi Cable をアンインストールしてみましたが変化なし。


ログ、ログが欲しい・・!


ゲット!


半ば諦めた頃、「そういえば前もログ出ないで落ちたとき、いくつか古いバージョンでやったら出たことが・・」と思い出しました!


そう、PC を新しくしたので最新バージョンしか入れていなかったのですが、私は常に少なくとも最新バージョン、一つ前、ちょい古め(、プリリリースがあればそれも)といくつかを入れており、何かあったときは旧バージョンで確認していました。


R2024a 変化なし。

R2023b 変化なし。

一気に R2019b で。

~~~

Stack Trace (from fault):
[  0] 0x000000000e8e29f7 C:\Program Files\Common Files\MAGIX Services\System\mgxasio4_x64.dll+00010743
[  1] 0x000000000001912c                                   <unknown-module>+00000000
[  2] 0x00000000002f0003                                   <unknown-module>+00000000
[  3] 0x000000000e8f69c0 C:\Program Files\Common Files\MAGIX Services\System\mgxasio4_x64.dll+00092608 DllUnregisterServer+00044804
[  4] 0x0000000000000018                                   <unknown-module>+00000000

出た!


MAGIX ・・、そうか、Music Maker(DAW)を忘れてた・・。

検索してみると、少なくとも数年前から "Magix Low Latency 2016" が色々と問題を起こしているよう・・。

regedit で HKEY_LOCAL_MACHINE > SOFTWARE > ASIO > Magix Low Latency 2016 を削除すると、PC再起動もせずに MATLABで音が出るようになりました!!

Music Maker の動作も特に問題はないよう。(¬_¬) 


URL 変更


余談になりますが、最近、MATLAB 関連で検索してもリンクが開けないことが増えてませんか?

どうやら、www.mathworks.co\ にあった日本語ドキュメント が、jp.mathworks.com/ に移動してしまったよう?

面倒なので変換スクリプトを書いてみました。

prompt = {'Enter the original URL:'};
dlgtitle = 'URL Input';
dims = [1 60];
definput = {'_ja_JP.html'};
answer = inputdlg(prompt, dlgtitle, dims, definput);

if ~isempty(answer)
    originalUrl = answer{1};
    newUrl = regexprep(originalUrl, 'www\.mathworks\.com', 'jp.mathworks.com');
    newUrl = regexprep(newUrl, '_ja_JP', '');
    
    web(newUrl, '-browser');
else
    disp('URLが入力されませんでした。');
end

実行して URL を貼り付けると、変換された URL で Web を開きます。

元のも残しておいてくださいよ、Mathworks さん! (゚~゚)


あとがき


まあ結局、AMD は関係ないのかな?

ただ、前の PC と同じアプリしか入れてないので・・。


MAGIX にはメールを入れておかないと。


いつも通りすぐ返答がありました。

If you really just removed the Magix Low Latency 2016 driver, it shouldn't be a problem. It's just one generic ASIO driver. While you should definitely be using Music Maker with ASIO as driver architecture, since it's optimised for this and many use cases call for ASIO driver (e.g. recording/monitoring), you could also opt for the other/new generic driver "Music Maker Asio" or (ideally) for the native ASIO driver of your sound hardware (if existent).

"Magix Low Latency 2016 driver" とは別に "Music Maker Asio" があり、通常こちらが使われています。

なんか古いヤツとのコンパチビリティーのために入ってるんですかね。



MATLAB も、クラッシュログ出ないで落ちるというのはね~。🤔

古いバージョンでは出ますからね。


とにかく、MATLAB は複数バージョン入れておきましょう!、というお話でした!?


タイトル画像モデル:綾夏

いいなと思ったら応援しよう!