2022年12月04日

吹奏楽曲新作「風景のスケッチ」DTM演奏

 吹奏楽曲の新作ができました! 「風景のスケッチ」(Landscape Sketches for Wind Orchestra) です。

 日本の多くの人が「心の原風景」として持っているであろう3つの情景をイメージして作りました。野原を吹く風、遠雷がかすかに聞こえる海、忙しく行き交う人々です。

 音楽制作は自分の「趣味」の一つだと思っているんですが、作曲を活発にやっていたのはずいぶん昔の話です。今でも新作を作ったりできるんだろうか、とふと疑問に思ったのですね。それで、今年 (2022年) に入ってから、ぼちぼちスケッチを始めました。

 実は最初の4小節だけは大昔に思いついたフレーズです。

20221204-1.png

 第1楽章は簡素なソナタ形式で作ると決めていました。主題の提示・確保に入るまではまあすんなり書けました。しかしそのあとがいけません。3小節目から変えようと思ったけどどうもうまくいかない。

20221204-2.jpg

 第1主題を4小節リピートしてから変えてみたけど、やっぱりなんかカッコ悪い。

20221204-3.jpg

 ばっさり金管に切り替えて曲想を変えてみました。これでなんとかクリアできました。

20221204-4.jpg

 このあともあちこちつまづきましたが、結局4ヶ月ぐらいで完成しました。「昔に思いついた楽想」を流用したのは最初の4小節だけで、あとは完全に新作です。上出来やん! といっても、なんか学生が作曲の練習をしているみたいで、人に聞かせるレベルじゃない気もするのですが、まあ趣味なんでお許しください。

 DTM演奏はぼちぼちです。改良できる点は多々あります。まあ、ここを頑張るよりは、次の曲に向かった方がいいですね。次は1年ぐらい先かな?

タグ:音楽 DTM
Posted at 2022年12月04日 22:04:06

2022年11月13日

Visual Studio Code で wxPython をデバッグする

 Python スクリプトをデバッグできる IDE を調べてみた。PyCharmVisual Studio Code (VSCode) がよく勧められている。この際 VSCode に慣れておくのもよさそうです。試してみました。

20221113-1.png

 公式ページ(上記)からダウンロードして、/Applications フォルダに移動する。

20221113-2.png

 立ち上げて、初期設定(画面表示など)をしたあと、Extensions で Python をインストールする。

20221113-3.png

 こういう画面が出てくる。"Select a Python Interpreter" でデフォルトの Python インタプリタを指定する。

20221113-4.png

 Python インタプリタがありそうなところを探してくれるみたいですね。いろんなバージョンが混在して、散らかり放題なのがバレバレです。

20221113-5.png

 左端のツールバーで "Explorer" (一番上)を選んで、Open Folder でフォルダを開く。wxPython のプログラムはたいてい複数ファイルにまたがっているので、1つのフォルダにまとめておくのがよい。

20221113-6.png

 メインプログラムのファイルを開きます。しかし、このままでは実行できません。import wx のところに波線がついていて、マウスポインタを当てると Import "wx" could not be resolved とエラーメッセージが表示されます。これは当然で、venv で作成した仮想環境を指定していないためです。

20221113-7.png

 このフォルダ内に .vscode/settings.json ファイルを作成して、以下の内容を書き込む。/PATH_TO_VENV_FOLDER のところは、venvwxPython フォルダを作成したパスを指定する。

{
    "python.venvPath": "/PATH_TO_VENV_FOLDER/wxPython",
    "python.defaultInterpreterPath": "/PATH_TO_VENV_FOLDER/wxPython" 
}

 一度 VSCode を終了して立ち上げ直し、もう一度同じフォルダを開くと、import wx のエラーが解消されています。

20221113-8.png

 実行してみます。main.py を選んで、右上の "Run/Debug" ボタンの横のメニューから "Debug Python File" を選びます。

20221113-9.png

 おー、いけてるやん。

20221113-10.png

 VSCode のウィンドウ中央上に出ているデバッグ用のツールバーで、"Pause" を押してみます。wxPython はイベント待ちの状態になっているのですぐには止まりませんが、マウスポインタを動かすなどで Python スクリプトに制御が渡ると、そこで停止します。左のツールバーで "Debug" を選び、CALL STACK でスタックフレームを選ぶと、その場所のソース行と、ローカル変数の値が表示されます(ちょっと待たされる)。なかなかいいじゃないですか。

20221113-11.png

 これで、wxPython プログラムをソースコードデバッグできる目処が立ちました。

Posted at 2022年11月13日 19:29:00

2022年11月07日

wxPython 再訪

 以前に手をつけた wxPython をもう一度引っ張り出してみた。しばらく wxWidgets + LuaJIT でアプリ作成に取り組んできたのだけど、何度も書いてきた通り、LuaJIT の将来性にはやはり不安が残るのです。使い捨てのアプリならいいけど、ある程度以上長く使おうと思うと、メンテナンスできなくなる可能性の高い開発環境はあまりよろしくない。

 そうなると、やっぱり Python に手をつけるしかないかな、と思うのです。昨今はデータサイエンスやら何やらで、どっちを向いても Python という空気を感じます。インデントで文法構造が決まるのはどうしても好きになれないんだけど、あんまりそういうことも言ってられないのかな、と腹をくくりました。

 今回は、Python 3.10 と wxPython 4.2 の組み合わせで行きます。Mac では Homebrew でインストールする。バージョン管理の方針がいまいちわかってなかったのだが、python@3.XX で 3.XX がインストールできる。このバージョンを動かすには python3.XX と指定すればよい。

$ brew install python@3.10

 venv で仮想環境を作成して、その中で wxPython をインストールする。

$ python3.10 -m venv wxPython  #  wxPython は仮想環境を保存するフォルダ名
$ source wxPython/bin/activate  #  仮想環境に移行
(wxPython) $ pip3.10 install -U wxPython
Collecting wxPython
...(中略)...
Successfully installed numpy-1.23.4 pillow-9.3.0 six-1.16.0 wxPython-4.2.0

 へぇ、numpy も一緒に入るんだ。numpy の存在を前提としてプログラムが書けるのは便利だな。

 動かしてみました。まあ、以前に書いていたプログラムの続きなので、ここまではリハビリみたいなもんです。

20221107-1.png

 開発環境の整備(デバッガはあるのか?)・クロスプラットフォームでの開発・単体で動くアプリへの変換など、いくつかやってみたいことがあります。ぼちぼち進めていきます。

Posted at 2022年11月07日 23:36:39
email.png