[STM32F7で作る自作MIDI音源] 目次

はじめに

趣味の耳コピや作曲に使えるMIDI音源(シンセサイザー)の自作を目標にしています。今回は、STM32F7(ARM Cortex-M7コア)を使い、ハードウェアMIDI音源「CureSynth」を製作しました。

「作って終わり」では勿体ないので、開発ノートやハードウェア・ソフトウェアの設計データを公開します。
公開の目的は、設計思想の共有だけでなく、自分の頭の中を整理するためです。発展途上のため、分かりづらい部分についてはご了承をお願いします。また記事の構成や表現を、予告せずに変更する場合もあります。

対象読者は「STMicro社製のNucleoボードを用い、STM32CubeMXやHALライブラリを使用してLチカできる人」あたりを考えています。

開発ノート一覧

以下、鋭意執筆中です。

回路図、ソースコード

GitHubのリポジトリを参照して下さい。

デモ

下の動画を参照して下さい。

Youtube

ニコニコ動画

コメント

  1. p.igmon より:

    遅まきながら、当サイト拝見いたしております。
    同じARM系のCPUをお使いとのこと。
    なにか技術的な交流等ありましたら今後ともよろしくお願いいたします。
    ご発展楽しみにしております。

  2. そういち より:

    MIDI音源つづき読みてえ

  3. Mike より:

    Hi, your CureSynth, please help. Tim7 interrupts about every 30 micro-seconds, but the generator routine “cureSynthGetOutput” takes about 134 micro-seconds. Also I cannot find where the final output is sent to the PCM5102A DAC. Thanks in advance, Mike

    • けしかん より:

      Hi,

      >takes about 134 micro-seconds
      -> Please use optimization flags “-o3”.

      >where the final output
      -> I use DMA sending for i2s. In TIM7, I store audio data to outbuf.buffer[idx].
      And sending i2s code is “HAL_I2S_Transmit_DMA(&hi2s2, outbuf.buffer, OUTPUT_BUFFERSIZE * 2);”

タイトルとURLをコピーしました