Composeの標準言語OMLからPythonの関数を利用するには

Kosuke_IKEDA
Kosuke_IKEDA
Altair Employee
edited May 2023 in 質問と回答 (Q&A)

Pythonの関数を簡単に呼び出せるスクリプト'python_call.oml'を作成しました。

一行でPythonの関数'py_wav_read.py'が呼び出せます。

[fs,wavdata]=python_call('py_wav_read',filename);

 

サンプルは'stc_wav_read.oml'というスクリプトで、音声ファイルを読み込み、FFTで周波数分析を行った後、1/3オクターブバンド処理を行っています。

現状Composeの標準言語のomlには音声ファイルを読み込む機能が無いので、代わりにPythonの関数を利用しました。

test01.wav.png

サンプルスクリプトのダウンロードはこちら

使用製品:Altair Compose

よくあるエンジニアからの質問はこちら

Tagged:

Answers

  • Kosuke_IKEDA
    Kosuke_IKEDA
    Altair Employee
    edited May 2023

    一部不具合がありましたので、修正した'python_call.oml'を添付します。

    また、新しいサンプル'stc_xlsheet.oml'を添付します。

    Python関数'py_get_xlsheetname.py'を使って、エクセルのシート名を取得するサンプルです。

    omlにもエクセルを読み込む関数は標準で幾つかあるのですが、機能が十分でなく、現在エクセルシート名が取得できません。その代替手法となります。

    'stc_xlsheet.oml'には、'python_call.oml'を利用した場合と、利用せずに直接コマンドを記述した2パターンを記載しています。

    利用しないと

    exporttopython

    evalpythonfile

    evalpythonscript

    getpythonvar

    の4つのコマンドを実行する必要がありますが、python_callを用いれば一行でPython関数を実行できます。

    サンプルスクリプトのダウンロードはこちら

     

  • Kosuke_IKEDA
    Kosuke_IKEDA
    Altair Employee
    edited December 2018

    先に紹介したエクセルシート名を取得するサンプルですが、Pythonのライブラリであるopenpyxlのインストールが必要です。

    コマンドプロンプとで下記コマンドを実行して、ライブラリを追加してください。

    'C:\Program Files\Altair\2019\Compose2019\common\python\python3.4\win64\python.exe' -m pip install --upgrade pip

    'C:\Program Files\Altair\2019\Compose2019\common\python\python3.4\win64\python.exe' -m pip install openpyxl