いらないモノ、ひつようなモノ

書籍、音楽、そして若干のテクノロジー

色々な本をまた読み漁ったけど

ジェフリー・フォードを2冊.白い果実のような捩れドライブ感は薄いかも。 記憶の書 瞬間。そして記憶。この二つは本書の主要テーマであると思う。 誰もが思うことかもしれないが、思いのままに瞬間と記憶を操れたらと思う。その二つの正体がいつの日かこっ…

キャシー・アッカー

最近、本のリストを更新している。完読より未完読が多く自分が何を読むべきかを整理している。何気なくキャシーアッカーは最近何を書いているのか調べたら、1997年に既に亡くなっていた。特に好きな作家という訳ではない。でも頭の中は混乱した。胸のあ…

JRubyからjava/SWIG経由でcsoundをリアルタイムで用いる

csound側のコードに多少手を入れてrubyからcsoundの機能を利用できるようにしたい。さらに進めるにはc/c++に手を入れるのか、もしくは(プロトタイピングを考えるのなら)JRubyを用いて、jruby->java->swig(java)->csoundという方法も考えられる。結構早いら…

今後

以上で思ったより労少なくrubyからcsoundを呼ぶことがまずはできました。今後スコアを直接加えて行くなど色々行っていく積もり。そもそもAPIがどんなものかこれから勉強しなきゃ。。今後が大変だったりして。

wrapperコードをコンパイル

swigの生成してくれたruby_interface_wrap.cc, ruby_interface_wrap.hをコンパイルしてオブジェクトを作成する。これもsconsして出てきたコンパイルオプションで実施。これも山ほどwarningが出る。 g++ -o interfaces/ruby_interface_wrap.os -c -fexception…

rubyからcsoundを使う

csoundはAPIを具備している。APIをSWIG経由で利用することより多様な言語からcsoundを呼び出すことが可能だ。配布されているソースコードにもpython, java, luaから用いるswigのインタフェース定義と各言語のテストコードが含まれている。これらのサンプルを…

addScoreLineについて

pythonでは拡張C++APIと呼ばれるCppCsound.h(CsoundFile.hppから継承)で定義されているaddScoreLineでスコアを一行入れることができる。それはcsnd.CppCsoundのインスタンスを作成するからだ。多重継承をサポートしてないrubyではこの部分がうまく動かない。…

csoundAPIの階層(想像図)

下記の図のようになっているような気がする。Tcl,lispのAPIはどこにあるのだろうか?よく分からない。またSWIG経由のjava, luaのインタフェースはlayer2でちゃんととれているような気がする(使ったことがないから分からないが) layer 4 csound VST Python …

csoundAPI

まずはマニュアルから整理 API file basic Csound C API H/csound.h libcsound.aとリンク basic Csound C++ API H/csound.hpp libcsound.aとリンク extened Csound C++ API interraces/CppSound.hpp, interfaces/CsoundFile.hpp 利用時は2つのライブラリと…

csoundを使った作曲でひと段落 - 曲

パーカッションを含めcsoundで音源、スコア記述をおこなって曲を完成させた。スコアの記述にはrubyを用いて意図した曲構成通りのスコアを生成させた。各トラック/楽器のボリュームの調整にはaudacityでmixerの代わりとた。 ミックスダウン 当初はzakを用いて…

csoundで曲を作るプロセスとrubyによるスコア生成に関するメモ

色々素敵なcsoundのフロントエンドがあるけれど、どうもそれには馴染めないところがあるので手作業が続く中、仕方なくプログラムを作って作業をすることになりました。また、楽器や他の部分についてルールを自分なりに作っておけば後から再利用可能な楽器に…

TIPS

instr 0のなぞ グローバル変数はinstr 0で定義されなくてはいけない。sr,kr,ksmps,nchnlsの後にあって、最初の楽器の間にある見えないinstr。プログラマの感覚ではinstrの間においてもよさそうだけど駄目です。インプリメンテーションの説明にも「This is th…

形にしてみた

音に関する部分はcsoundのみで曲「らしい」形にしてみた。外部のエフェクタや音源を使わないで形にするのはやはり大変。いろいろ記録しておく。 2007年10月に曲を修正 プロセス いろんな楽器を鳴らしてみて雰囲気をつかむ。旋律部分はリアル楽器で。 作って…

INSTR ライブラリ

こちらも少しづつせいり 平凡な音 ←csoundメモ 目次に戻る サイン波+ローパスでまずはシンプルなやつから <CsoundSynthesizer> ;2007/9/9 - by a9a9qq@gmail.com ; <CsOptions> -d -W -o vidro.wav </CsOptions> <CsInstruments> sr = 44100 kr = 44100 ksmps = 1 nchnls = 2 #define IFN_1 #1# gitab ftgen $IFN_1, 0</csinstruments></csoundsynthesizer>…

UDOライブラリ

少しづつできてきたものをば。 multiTapOnBeat マルチタップする。エコーとか。ディレイとか、マルチタップとか、大好き。BPMを引数にとって、8ビート間隔で減衰率を指定しながら。 ;; multiTapOnBeat ;; 2007/09/09 - a9a9qq@gmail.com ;; ;; [Syntax] ;; ;…

音程

←csoundメモ 目次に戻る csoundで扱う単位を整理。 pch pchはX.YYの形で表すピッチクラスと呼ばれる。ド=C4=8.00で、半音増えるごとに1増えてゆく1オクターブで12の半音があるので8.11でシ=B4=8.11。高いドは9.00。ひとつ疑問がわいてくるのは、8.12が9.0…

midi用ツール

mid2sco 自分で作ろうかと途中までJavaで書き始めたが、あることに気が付いていなかった。あらら。./install.shしたらコンパイル&インストールしてくれた。MIDIのnote, ampを0-127のMIDIの世界のスケールで書くのでMIDIノートから変換が必要になる。このバー…

Tips

←csoundメモ 目次に戻る MIDIノートからHzへの変換 マニュアルのnotenumのところに例があります。mid2scoを使った後の処理に困って. iHz = (440.0*exp(log(2.0)*((iNum)-69.0)/12.0)) (1)そうか、1オクターブ上は周波数が倍で、1オクターブ上まで12個の半…

いろいろなサイト

csound 有名どころはいろいろあるので、 + csound for Newbiesなんかいい感じですね。 + Oeyvind Brandtsegg Music and Software, Custom solutionsここにはpartikkelFLTK, partikkelExploreというpartikkelを使うときに便利なGUIつきコードがあります。part…

note/pch/cps/oct table*1

←csoundメモ 目次に戻る ドレミ MIDI note pch*1 cps1*2 cps2*3 cps3*4 oct*5 C 03.008.1768.1768.1763.000 C# 13.018.6618.6628.6613.083 D 23.029.1789.1779.1773.167 D# 33.039.7239.7239.7223.250 E 43.0410.30010.30110.3003.333 F 53.0510.91410.91310…

日本語フォルマント周波数

確かなんかの論文かなんかからとってきました 表 1:日本語の 5母音のホルマント周波数( Hz) F1 F2 F3 F4 F5 /a/ 800 1300 2500 3500 4500 /i/ 250 2100 3100 3500 4500 /u/ 250 1400 2200 3500 4500 /e/ 450 1900 2400 3500 4500 /o/ 450 900 2600 3500 45…

csoundでのMIDIの実験

きっとmidiremot等MIDIイベントをネットワーク越しに渡すとか、いろいろやりだすときりがないかもしれないのでちまちまといきます。 test1: MIDI楽器用opcdeをscoreから利用すると、、 MIDI駆動される楽器とScore駆動される楽器で使えるopcodesが違いという…

csoundの利用方法*2

←csoundメモ 目次に戻る csoundはaudio/midiのリアルタイムモード等が加わってどのような使い方ができるか? 非ライブ利用の場合 csoundのみを使って1曲をレンダリングする方法。オーケストラとスコアファイルを書いてcsoundで結果をオーディオファイルを落…

リアルタイム用のMIDI

スコア リアルタイムでMIDIの入力をcsoundが受け付けるように場合にはスコアの書き方でポイントがある。 要はcsoundが持ち切りになって終わらせないことがポイント。 例1: f0 9999 スコアステイトメントfのp1は、正であればテーブルの生成、負であればテーブ…

MIDI用の楽器とスコア用の楽器

←csoundメモ 目次に戻るmidi関連のopcodeが追加されたときに、MIDI入力値の取得に関してMIDI起動される楽器からしか使えないopcodeと、スコアから呼び出されてもよいopcodeの別ができた(のかもしれない)。さらに、MIDI/Score Interoperability opcodesとい…

bashのalias/function

←csoundメモ 目次に戻る作業を始めるといろいろ気になる. orcファイルとscoファイルがバラになっているサンプルをまとめてコンパイル function csd(){ csound -d $1.orc $1.sco -W -o $1.wav } emacsのシェルでコンパイルすると制御コード(^[m)が五月蝿いの…

UDO(User Defined Opcode)

使い方:マクロやユーティリティー関数のように決まりきった部分を切り出して再利用が基本的な考え方 書き方:定義時に1文字で表した型を連結し並びを表現。xin, xoutを使って変数と紐付け opcode OPCODENAME, INPUT_TYPE, OUTPUT_TYPE inarg1[, inarg2, ..…

csoundの型と変数とその動作について

←csoundメモ 目次に戻るcsoundのマニュアルにはa-rate,i-rate,k-rateという言葉が頻出する。csoundのオーケストラセクションを書き下すためにはその「rate」を含む型の概念があり、型と変数が一体となった言語体系であることを理解する必要がある。またマニ…

i-time,k-timeについての実験

←csoundメモ 目次に戻る音の出ない、テキスト出力だけのcsoundコードでさらにi-time, k-timeを見てゆく。いくつかのオプコードはi,kのタイミングをかなり意識したつくりになっている。print文にも種類が分かれている!これは正直かなり、嫌な感じであるが、…

マニュアルエントリーの書かれ方

k-rateやらa-rateやらをマニュアル表記の面から見る。i: ただの値を意味する1.0, 1024, -1など。マニュアルではifn(i FunctionNumber)とか、iphs(i PHaSe)とかk: 数字、もしくはコントロールレート(k-rate)の値を意味する。1.0の値でもよいが、制御信号列を…