国立防災科学技術セソター研究報告第1号

1968年3月

534

高速A−D，D−A変換器を持つデータ処理機
TOSBAC−3400のブログラミング例（1）菅原正巳・勝山ヨシ子・八十島久・尾崎容子

国立防災科学技術セソター第3研究部

Progmmming

Examp1esofaDataPmcesser（TOSBAC一拠00）with

High−Speed

A皿a1og−to−Digita1a皿dDigita1−to−Ana1og

Co1werters（ReportI）

By
M．Sugawam，Y．Katsuyama，H．Yasoshima肋〃o〃α1肋吻κ乃C2〃θけoグ〃∫α5aM

E．Ozaki〃〃舳〃〃o〃，To妙o

Abstract
1．Musicby

Computer．

Atableofsinefunction／1sinis（2π111V），

storedinto（1＝o，1，2，…

thecoreconstant（Putting1V＝210＝1，024）。
1…［肋］iscontinued

thenmadeandby2．Digitalusing

several

Recording

and

The

themagneticandstop．

So

tapetwoandbits）inpairs．

Afterobtained

samp1ing
In

this

the

amp1itude，1thedigita1−to−analog

time

by

cyc1eα／W〃aretab1esofsinefunction

ReproductionofSound．

address

re1ative

computer，wherewithconstant，and［

harmonydifferentisand

W：2〃theaddress

works

with

samp1ing

intervals

perword

toreadandareprepared

in

the

core

memory，andbu血erarepickedup

packing，they

inpickingandup

symbol，music

withandrhythm

additionof55μswrite

atitshighest

and40msperrecordthedata

speed，tostartobtainedby

ana1og−to−packed

in

one

and

areon

magnetic

tape．

Reproductioniseasier

highfidelity．

is18kc

in

way

voice

can

recorded

beby

Gauss

way

a1temative1y

is110μs，thatmusicmade］thethisareinterval

andBy

amplitudes．

converter

storedofgotten．

takes150μs

unit

the

re1ative

conversion

interva1of〃，whereαis

amp1itudeλandp1ayedbu丘ersdigita1con▽ersion

the

be

ana1og−to−digital

but

recording．

with

with

can1V−1）（危＝0，1，2，．、。）

onerhythmIf〃），bysinusoida1waves

harmonyis（mod。

one，memory，whereλiswrittenfrequency．
andreproducedwithword（24

Fina11ythethan

1．はしがき1．1

昭和41年10月，国立防災科学技術セソターのデータ処理機丁0SBAC−3400の被露式の際の公開実演で，A−D，D−A変換器を利用した音声のデイジタル録音，およびD−A変換器を利用した電子計算機による音楽を行なった．この実験は66年度の電子計算機ショーで，当37

国立防災科学技術セソター研究報告第1号

1968年3月

方作成のプログラムを用いて一般に公開されたから，ご存知の方が多いと思う．

1．2

この実験はA−D，D−A変換器を利用する実時問解析のためのソフトウェァ開発の演習のためと，A−D，D−A変換器の性能のデモソストレーショソとを兼ねて計画したものであった．われわれは音声についてはしろうとであったから，その意義をあまり考えなかったが，電子計算機による音楽が公開されたのは，昭和41年9月のアメリヵの音声学会が最初だそう
で，しかも，その音楽とわれわれの音楽の両方を聞いた人が，われわれの方が美しい音を出すと言ってくれた．また音声の数値録音については，音声の専門家が高性能のテープレコーダを持参して，われわれの計算機で録音，再生を試み，バイオリソ，フリュート，ピッコロ等，種々の楽器の音を入れ，また，種々の雑音を録音，再生して，その録音精度がよいことを認めてくれた．

以上のような次第であるから，電子計算機の音楽や，数値録音のあらましについて記録して置くことに一，いくらかの意義があると考えられる．

1．3

われわれの計算機に付置されたA−D変換器は30kc／s，マルチプレクサは100kc／s，D−A変換器は140kc／sであって，A−Dは8チャネル，D−Aは2チャネルである・ただし以上の性能は，それぞれの機器の性能であって，計算機と連動するときは，種々の制約によって性能が落ちる．たとえぼA−D変換器が最大の能力を発揮するのは，1チャネルで・

A−D変換した結果を逐次磁心記憶装置に格納する場合である・このときのA−Dは約18kc／sの能力を示す．D−Aについては，磁心記憶装置の中の数値を逐次D−Aするときが・最高の能力を示し，これが約50kc／sである．われわれの計算機の磁心記憶容量は16・o00語であるから・

上記の最高性能を出すとき，A−D変換は1秒足らずしか続かないし，D−A変換では0・3秒程度である．

外部記憶装置を使ったり，計算機で処理したりしながら，A−D，D−A変換をすれば・それぞれの機能により，種々の制約が生ずる．計算機の演算時間のほかにI／0機器の性能，I／0の動作開始，終了に要する時問や，優先度制御装置の応答の速さ等を考慮しなけれぼならない．

1．4

高速のA−D，D−A変換器が設置されて，それをどのように使いこなすかが大問題であった．高速であっても，周期的なものであれぼシソクロスコープで観察できる．その点から言えぱ，過渡的現象や破壊現象などをとらえることが望ましいが，実験設備が大変である．

A−D，D−Aの性能にほぼ見合って，しかも身近な有り合わせの機械で実験できるものということから，音声を扱うことにした・

2．電子計算機による昔楽

2．1

電子計算機で音を出すには，D−A変換で階段状に出した電圧で波形を作り，その電圧波形をスピーカで音に変えればよい．

1，oooc／s程度までの音を出すとし，1，000c／sの音の波形を10区問程度に分げて階段波形で出すとすれば，D−A変換は100μs程度の間隔ですればよいことになる・

一38一

高速A−D，D−A変換器を持つデータ処理機丁0SBAC−3400のプログラミソグ例（1）一菅原・勝山・八十島・尾崎TOSBAC−3400の演算時問は，固定乗除算が約50μs，そのほかに浮動小数点演算に時問がかかるが，それらを除けぼ1演算約5μsである．したがってD−A変換を100μsで行なうことを目指せば，乗除算なしにして，約20ステップの命令が使える・計算機で振幅α，周波数∫の正弦波を作るには，アナログ計算機におけるフィードバック方式にならい，次の式を用いればよい．
κ冊＝（2cosπo＝0，2不117）

κ柵．1一κπ．2，〃≡≧2，κ1＝αsin2πプ∠た

ただし〃はD−A変換の問隔である．
残念ながらこの方式は乗算を含むので利用できない．

もちろんこの方式で正弦波を作り，磁気テープに格納し，磁気テープから取り出しながらD−A変換して音を出すこともできるが，それでは面白くない．磁心記億装置の中だけのやりくりで，波形を作りながら音を出したい．

2．2

最初に試みたのは，磁心記憶装置の中に種々の音程の音の1波長分の波形を作って置く方法であった．われわれの計算機が設置されたのは昭和41年3月で，A−D，D−A変換器が動き出したのは4月であったが，5月には上記の方法で，計算機が歌をうたい出した．■

八十島ははじめ，波形に工夫を加えて，よい音を出そうとした．正弦波はやや単調な音を出すので，波形をかえて高調波を入れた方が低音都では感じのよい音が出るが，高音になる■といやな音になる．高音になるにしたがって正弦波に近づけなげればいげないらしい．音声が専門でないし，歌以外にも仕事が多いので，結局正弦波を用いることにした．

2．3波形を作って置く方法の欠点は，高音部になると音程が狂うことである．たとえぼ50μsごとにD−A変換をするとすれば，」磁心記憶装置内の1波長のくり返しを行なう以上，音波の周期は50μsの整数倍に限られる．したがって，高音になると，音程の狂いが目立つのは原理的にやむをえない．

これを救う一つの方法は；高音に対しては数波長分の波形を入れて置くことである一これによれぼ50μsの分数借で近似できるから，最良近似の分数を選ぶζとにより，音程ははるかに正確になるであろう．しかしともかく近似にすぎない．

音階が有理数比になっていれぼ，この方法で正確な音が出るはずである．そこでピタゴラス
音階を試みてみたが，平均律になれたわれわれには，何とも不思議な感じで，実用になりそうもない．ピタゴラス音階による新曲の作曲がまず必要であろう．

2．4

乗算なしで正確な音程を出す方法として，のこぎり波を出す方法を考えた．

αずつ加えていって，ある限界ん＝2叱をこせぱ，んを引く．これをくり返せぼ，周期ん／αの波が出る．んを引く所は，マスクを作って置いて論理積をとればよい．これで高い周波数まで，正確な音程で音が出る．

ここまで来て欲が出て，のこぎり波より三角波にしたくなった．その後，のこぎり波，三角一39一

第1号

国立防災科学技術セソター研究報告

1968年3月

波を実験してみたが，のこぎり波は高音、斤部で音質が悪いようである．三角波は正弦波と変わらない．

11

三角波の場合は，隈界に当たった所で，hならないかと工夫するうちに，任意の波
∠tl

1

■＝ll

ト

1

11l↓

1ll；

Vl〉とに気がついた．

2．5l1l形を，正確た音程で出すことができるこ

111l

折り返せばよい・ところが折り返すことにたると，少し命令が長くなる．何とか亭
1I

図一1

任意の波形の1波長分を，波長を〃等分した分点ごとの関数値で与えρる．これを磁心記億装置の内のα番地からα十〃一1番地にまでつめて置く．〃としてはたとえば，210＝1，024をとる．α番地から始めて，舳番目ごとの番地をとり，その内容を〃の間隔でD−A変換する．α十〃一1番地より外にとび出した・ら，法（mOd．）〃でもとに戻ってくりb返す．

つまり，のこぎり波のときにD−A

図一2変換すべき変数値に対して行なったと同．．。・．1．．

じ操作をアドレスに対して行ない，番地■（それが変数になる）に対する関数値を■

D−A変換するのである．

この方法により周期〃〃／刎の波を作。。。

。

。

。

。

。。。

。

。刈mHることができる．

■

以上では簡単のため舳を整数として説明したが，舳は任意の数でよろしい．

．

その場合は最後にアドレスを決定する所。
o．

■．．．．．・

で整数にすれぼよい・われわれは簡単の

図一3ため，小数部分を切り捨てた．〃＝1，024にとってあれば，切り捨ての誤差は1波長の1／1，024以下である．その誤差の影響が関数値に及ぶわけであるが，われわれのD−A変換器が符号を含み12ビットであり，正弦波の山と谷の近くでは変数値の誤差は関数値にきかないのだから，1／1，024＝210の誤差を気にする必要はない．

一40一

高速A−D，D−A変換器を持つデータ処理機TOSBAC−3400のプログラミソグ例（1）一菅原・勝山・八十島・尾崎

この方法で広い音域にわたって，正確な音程が出せることになった．

2．6

以上の方法でメロディーが出ることになったから・そこで欲が出て・リズムもハーモニーも出そうということにたった．あとは手間の間題である．

リズムの方は，振幅の異なる波形を用意して置いて，強弱に合わせて適当な波形を選べぱよい．前述したように乗算は使えないのである．振幅の異なる波形は多数あった方が，それだけ変化が多いわけであるが，10：7：4のもの3種類を用いることにした・このようなことは音楽を聞いてみて定めた．

2．7

ノ・一モニーについては2通りの方法が考えられる．われわれの計算機システムにはD−A変換器が2チャネルついている．そこでそれぞれのチャネルに高音用・低音用のスピーカをつなぎ，高音，低音を別々に出す方法である．他の一つの方法は，数値の所で加算を行ない合成波の電圧をD−A変換する方法である・どちらも可能であるが・電子計算機ショーで行なったのは，後者である．

ハ＿モニ＿をつけると，毎回の命令のステップ数が少し長くなって・D−A変換は約130μsごとに行なわれる．ただしハーモニーといっても・2音を出すもので・音の数を増せばそれだ

け命令が長くなってD−A変換の問隔が開く・そこで2音で我慢することにした・したがって2音だけですむように，適当に編曲をする必要があった・

2音だけでも，ハーモニーをつけた効果は絶大で，音を出す実験から音楽の域に変わった感がある．

2．8

さらに欲をいえぼ，音を順次強くしたり，弱くしたりできれぼよいのであるが，乗算が使えないので，うまくいかない．D−A変換器を出てからアナログ機構を工夫する方法もあるが，それを考えの外に置いた．あくまで計算機で作った波形がそのまま音楽になることをねらったのである．

3．数値録音の方法
3．1

数値録音とは，結局なるべく短い問隔でA−D変換を行ない・得られたデータを磁気テープにしまう方法である．

磁気テープが速げれば間題がないが，われわれの所にあるのは28・8kc／s（キロキャラクタ）であって，1語の読み書きに一150μsかかる．さらに磁気テープの始動，停止に合計40msかかるから，A−D変換器の最高性能55．6μs問隔で読み込んだデータをそのまま磁気テープにしまうことはできない．

たとえば，磁心記憶装置内に読み込んだデータを三つ目ごとに取って磁気テープにしまうことを考える．55．6×3＝166．8（μs）であるから1語しまうのについて16・8μsの時間のゆとりがつく．これでテープの始動，停止の40msを浮かせるには約2・400語分をまとめればよい・

しかし磁気テ＿プにしまう1語に対し，A−D変換は3語いるのだから2・400x3＝7・200語を＿41一国立防災科学技術セソター研究報告第1号

1968年3月

まとめなげれぼならない．A−D変換してコァにしまう部分と，コァにしまったものを三つ目ごとに磁気テープにしまう部分とバッファを2個用意しなけれぼならないとなると16，000語のわれわれの計算機の限界に近くなって，少々危険である．

3．2

以上のことは時問関係の説明のために述べたもので，われわれはまずデータ2個を1語にパッキソグすることを目指した．A−D変換器は符号を含め11ビット，われわれの計算機の1語は24ビットであるから，データ2個を1語につめるにはちょうどよい．
ただし，データ2個を1語にしてもA−D変換にかかる時問55．6×2＝111．2（μs）より磁気テープヘの書き込みの150μsの方が長い．そこで半分を捨てて，データを1個おきに，2個ずつ1語につめ込み，それを磁気テープにしまうことにした．

この場合4個のデータをA−D変換するのに対し，1語が磁気テープに書き込まれるから，A−D変換の55．6×4＝222．4（μs）に対し，書き込み150μsで，1語につき約70μsのゆとりができる．これで磁気テープの動作の40msをかせぐには語数で560語，A−D変換の個数で2，240個をまとめればよいことになる．バッファが二ついるが，16，000語の磁心記憶容量で十分である．実際にはもう少しゆとりがほしいから，A−D変換で5，000個ぼかりをまとめることにしている．

このほかに，計算機本体がA−D変換されて磁心記億装置内にあるデータを一つおきにうろぬいて，2個を1語につめこむ作業があるが，これに要する時間は短い．
3．3

動作はつぎのように行なわれる．

（1）A−D変換をしてその結果をα。（またはα。）番地から，（α。十〃一1）番地まで順次つめよという命令を出す．この命令はI／0チャネルで実行されるから，計算機の本体は直ちに次の段階に移る．

（2）前の段階でA−D変換され，α。（またはα。）番地から（α、十〃一1）番地につめられているデータを一つおきにとり，2個ずつ1語につめ込んで整理する．データを整理しながらつめていけばよいから，新たなバヅファは不要である．

（3）整理が完了したら，磁気テープに書き込む命令を出す．この命令はI／Oチャネルで実行される．I／Oチャネルは2チャネルあり，A−D変換器と磁気テープとは別のチャネルにつないであるから，併行して動作が行なわれる．

（4）本体は磁気テープに書き込みの命令を出すと，直ちに次のA−D変換の命令を出して置く・そうするとκ個をA−D変換せよという命令の実行の終了とともに，次のA−D変換の命令が実行に移されることになって，A−D変換が休みなく続けられる．

3・4

問題はA−D変換命令のつなぎの所である．5，000個ずつのデータをA−D変換する

場合，A−D変換のつなぎ目は約280msごとにくる．1秒に3〜4回のことであるから，数値録音のためにはさしつかえない．しかしA−D変換された結果をよく見ると，どこでA−D変換命令が出たか，そのつなぎ目がわかる．

＿42＿高速A−D，D−A変換器を持つデータ処理機丁0SBAC−3400のプログラミソグ例（1）一菅原・勝山・八十島・尾崎

それに関しては，命令の中の細部の時問関係を追跡する必要があったが，A−D変換する個数〃として〃…3（mod．4）の奇数を用いれば，A−D変換命令のつなぎの問隔が，A−D変換の問隔と全く同一になることがわかった．

〃が奇数であれぼ，A−D変換された0から（〃一1）番目の〃個のうち，0番目，2番目・・，（〃一1）番目が拾われ，奇数番が捨てられる．最初の0番目と，最後の（〃一1）番目が拾われることで，つなぎがうまくいく．

3．5

数値録音したデータを再生するのは簡単である．バッキソグをほどき，順次D−A変換して行けばよい．D−A変換は短い時問でできるので，適当な無効命令を入れて，時間問隔をA−D変換に合わせる手問だけである．

3．6

以上は，なるべく早くA−D変換を行なうことを目的とした．しかし正確な時問問隔でA−D，D−A変換を行なうには，水晶発振器からバルスを出し，それの割り込みで，A−D，D−A変換を行なう方がよい．その場合は，毎回A−D，D−A変換命令が出される．割り込みを用いると，優先度制御装置の動作時間を毎回見込む必要もあり，現在，われわれの所では200μsが最小の時問間隔である（水晶発振器の性能にもよる）．この場合は磁気テープの速さは問題にならない．

（1967年12月20日原稿受理）

一43一