0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

平均律を使って「なんちゃってダイヤルトーン」を作ってみた

0
Posted at

概要

DTMFで発信される和音をスマホで鳴らせる仕組みを作ろう。(用途は特に考えない)

動機

なんとなくダイヤルトーンが聞きたくなった。

開発環境

「ショートカット」App(iPhone、iPad標準)

仕様

DTMF(「ダイヤルトーン」を扱う)は、高低2つの正弦波から構成される和音を発生させて〔0~9〕の数字を表現している
あらかじめそれぞれに対応する音源を用意し、入力に応じてそれらを再生する

実装

音源の合成

数字の送信に使用する音源のパターンは、3×3+110通りとなる
正弦波は3+(3+1)=7種類必要であり、そのいずれか2音を合成することで音源が10個できる
音源はプログラム内に収めたいのでBase64形式でエンコード、随時デコードして再生すればいいだろう

音程について

ただ周波数を合わせた音が再生されるのでは面白くない(?)ので、少しではあるがアレンジしてみる
平均律(ドレミに対応する音程)をもとに周波数を近似し、音源を作成した
※DTMFで使用する周波数は1.5%以内の誤差が許容されるが、この変更によりその規格外となる音が一音存在している

要するに実用性は期待できない

soundInfo.png
使用した音の音程

音の再生時間はばらつかせた方が感じが出るかなと思い、 ①0.1 ②0.15 ③0.2 秒のものを各音につきそろえた
再生時、3パターンの中からランダムに選択されるようになっている

dataDictionary.png
配列を構造化してデータを管理する

使い方

起動後、番号を入力するとダイヤルトーン風の音が再生される

ダウンロード

以下のリンクからダウンロードできます。実行には、「ショートカット」アプリが必要です。

「疑似DTMFトーン」
1.0.0

「NumPad」
(画面上での番号入力をしやすくする補助的な機能です ダウンロードした状態だと本体起動時の入力が少し楽になります 使用したい場合は本体と一緒にダウンロードしてください)

テキスト形式の入力を受け取るように指定する場合、用意されているアクションのみではテンキーのような簡易的な入力ができず、別途専用のインターフェースを開発することにしました。
他のショートカットでもこれを呼び出すだけで数字入力を取得できるようになります。


①リンクを開いて、「ショートカットを追加」を押す

(・・・)を押してアップデートログを確認可能です

downlaod.png

参考サイト

DTMF - Wikipedia ―周波数や細かい仕様の参考
音階周波数

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?