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

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.