問題タブ [sound-synthesis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android 音声合成
AudioTrack クラスを使用して、合成音 (基本的には 2 つの正弦波とノイズ) を再生しようとしています。javax.sound.sampled の SourceDataLine と何の違いもないように見えますが、合成は本当に遅いです。ARM 標準の場合でも、Nexus 4 で 32768 サンプル (16 ビット、ステレオ、合計 65536) のレンダリングに 1 秒以上かかると考えるのは非現実的です (System.nanotime() で測定、AudioTrack への書き込みは除外)。合成部分はこのhttp://audioprograming.wordpress.com/2012/10/18/a-simple-synth-in-android-step-by-step-guide-using-the-Java-sdk/とほぼ同じです、唯一の違いは、ステレオ サウンドを再生することです (バイノーラル トーンなので、モノラルに減らすことはできません)。
何か案は?私に何ができる?
前もって感謝します
processing - OSC 経由で Processing から ChucK/Pure Data にオーディオを送信するにはどうすればよいですか?
私は、最終的に音に変換される情報の文字列を導出する処理プログラムを持っています。これは、ピクセルが音に変換されるフォトサウンダーの仕組み、またはメタシンセに似ています。この情報の一部を ChucK または Pure Data にストリーミングできることを期待しています。
今のところ、Processing 内でオーディオを実際に処理する必要はありません。このプログラムは、タッチ インターフェイスと一連の画像から情報を生成するためだけに使用されています。
OSCを使用してProcessingからデータ型b(blob用)を送信できることを知っています(例は見つからないと思います)。
ChucK または Pure Data でそのような情報を受け取り、それを使用してサウンドを生成する方法の例を見つけることができません。
これらのプロセスのいくつかで正しい用語を検索していない可能性があることを認めますので、助けていただければ幸いです.
android - このphパラメータは何ですか?
Androidの小さなオーディオアプリ用に見つけたこのコードをテストしていましたが、何かに引っかかっています。
このループがサウンドを合成するために機能することは知っていますが、「ph」パラメーターが何であるか、および正弦波を生成するための数学にどのように適合するかはわかりません。誰かがそれが何であるかを知っているなら、私に説明してもらえますか?
javascript - 線形ランプがゲイン ノードで線形に動作しない
編集:修正が見つかりました。g.gain.setValueAtTime(0,now);
アタックランプを下に設定するラインの前に、私は行方不明でした。それg.gain.value = 0;
を追加した後も冗長でした。
だから私は奇妙な問題を抱えています。背景を説明しましょう。ノートが作成され、使い捨ての方法で再生されるポリフォニック シンセサイザーを実装しています。キーがトリガーされるたびに、新しいオシレーターが作成されます。
最初にボリューム エンベロープをグローバルに実装しましたが、これにより、新しいノートがトリガーされたときに過去のノートのディケイ/リリースが台無しになることが判明しましたが、モノフォニックでは、アタック、ディケイ、およびリリース エンベロープはすべて期待どおりに機能しました。
そこで私の修正は、キーがトリガーされたときにオシレーターとエンベロープの両方をその場で作成することでした。ディケイとリリースの両方が以前と同じように機能し、ノート ボリュームが一意にエンベロープされるという利点がありますが、アタック エンベロープは直線的に上昇しません。代わりに、指定されたアタック時間だけ遅延し、一斉に発射します。
ゲインを直線的に変更するのではなく、アタックエンベロープが遅延して即座に作用する理由を誰かが理解できますか?
関連する関数は次のとおりです。
clojure - clojure、リテラル ベクトルが関数の結果と異なる
Clojureの倍音ライブラリで音楽を作ろうとしています。興味深いサウンドを生成するには、加算合成が役立ちます。つまり、いくつかの周波数の正弦波オシレーターを使用して、それらを単純に加算します。倍音で、それを実現するシンセサイザーを作成するには、次のように記述できます。
もう少し再利用可能にするために、頻度を受け取り、これらすべての頻度のリストを返す関数を作成します。コード スニペットで確認できます。
を実行する(split-freq 100)
と、REPL は次のように表示します。
これは入力とまったく同じですが、上記の map 関数を提供しました。実際、結果をコピーしました。今、私はこれを試します:
残念ながら、REPL は私が間違っていることを教えてくれます:
しかし、このコードは正常に動作します:
ただし、関数定義を入れただけです。
根本的な理解不足だと思います。これらのバージョンのいずれかが機能する場合、他のバージョンも機能するはずだと考えました。
私の質問は次のとおりです。「改善された」バージョンが機能しないのはなぜですか? 最初のスニペットが機能するのはなぜですか? この動作を回避するにはどうすればよいですか?
audio - 超音波タイム トレースを .wav に変換
超音波時間トレース (超音波トランスデューサ VS 時間の圧電素子によって生成される電圧) を .wav ファイルに変換することに興味があります。
私の目標は、多数の .wav/.mp3 JavaScript ライブラリを利用して、より多くの洞察を得ることです。
(1) タイム トレースを .wav に変換する方法、(2) .wav をタイム トレースに変換する方法、(3) 偏りのない洞察があれば教えてください。オファー。