質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

2069閲覧

Javaで.midファイルを.wavファイルに変換する方法を探しています。

YuzuTea

総合スコア24

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

2クリップ

投稿2016/10/26 06:48

現在.midのファイルを.wavにJavaを使用し変換しないといけないという難題に取り組んでいます。
正直な話全くわからず、ほぼ詰んでいる状態です。

何からはじめて良いのかも解らずググりまくりましたが、全然参考になりそうなページが出てきません。
※英語は読めません(それくらい頑張って読めって感じですよねすみません)

もう何から何までわかりません。
もう上司に怒られるのが怖いです。

そんな上司は
シンセサイザの出力を横取りすれば、最初からwavを吐き出せるとかどうとか言っていました。。。
これに関しても調べましたが訳がわかりません。

どうか、だれか助けてください。。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

JREに備わっているソフトウェアシンセサイザーで一応お望みのことは可能だと思います。パッケージでいうとjavax.sound.midijavax.sound.sampledが関連します。過去にやったことがあるのでいくつかコメントします。

  1. 概要

JREにはソフトウェアシーケンサー、ソフトウェアシンセサイザーおよび波形データを出力したり入力したりするインターフェースが用意されています。普通のやりかたで再生すると音声データがシステムのサウンド出力デバイスへ送信されますが、出力先は切り替えることができ、自前で受信した波形データをwavファイルへ出力する出力インターフェースを実装すれば実現できるはずです。

  1. 音質

標準で用意されている音色データはそれなりの品質とはいえ素人の耳にとっても若干物足りません。自分はもっとよい音質にしようとしてjavaのシーケンサーから別のVSTiソフトシンセへ繋ぎwav出力するのを試みたことがありますが、互換性等々の問題にはばまれ断念しました。もし多少なりともよい音質にするならVSTi用の音色ファイルのある種のもの(SF2という拡張子だったと思います)がJRE付属ソフトシンセでも読み込めますのでそちらのほうが簡単だと思います。音色ファイルによってはJREのものに比べかなりの差が感じられました。
3. 再生するMIDIファイル
蛇足とは思いますが・・・パーカッションはもともとシンセサイザーによってばらばらな仕様になっていたりするので期待通りの再生ができないことが多いように思えます。またJREのシーケンサーはSTANDARD MIDI FORMAT1にしか対応してないので16チャンネルまでの演奏しかできません(同時発音数はそこそこあります)。今時の市販ソフトは16チャンネルの制約はなく複数のソフトシンセインスタンスで多チャンネルの演奏ができますが、それにくらべるとjavaだけでできるのは非常に素朴な楽曲に限定されます。
4. その他
sonor_3rdさんが挙げておられるもののほかに以下もキーワード候補にするとよいかもしれません。かなり古い情報のものが多いと思いますがjavaのAPI自体に違いはないはずです。

  • java シーケンサー
  • java シンセサイザー
  • VSTi (波形データ出力の参考になるものがあるかも)

投稿2016/10/26 20:08

編集2016/10/26 20:23
KSwordOfHaste

総合スコア18392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

KSwordOfHasteさんの回答で十分すぎる解決の糸口かと思いましたが、もしかして進捗がはかばかしくないのでしょうか。

詰み具合がよくわからないのですが、もしかすると質問歴からしてJava自体の開発経験があまりおありではないということでしょうか(だとすると、パッケージ名だけ伝えられてもどうしようもないかも)。
もしくは、.mid を .wav に変換するのに「シンセサイザ」などの道具立てが必要である理由についてあまりよくわからないとか。

また、ご質問の大元の「.midを.wavに変換する」件ですが、「そういう機能をJavaプログラムに組み込む」のが課題ということでいいのですよね。実は、.wavに変換したい.midファイルがあり、変換ツールがなくてできないんだけどJava使えば作れるんじゃないかと言われた、という話ではありませんよね。

投稿2016/11/04 15:31

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KSwordOfHaste

2016/11/04 16:31

yubaさんは一般のソフトを使っていいならMIDIファイルをwavに変換できてしまうということをおっしゃろうとしてるのですよね?確かにそれが一番簡単だと思います。Javaの課題としては少々マニアックな内容に思えますが...質問者さんのご健闘を祈りたいです。
yuba

2016/11/04 16:32

ええ、今ならiTunesが誰でも持ってて高音質で簡単ですから。
YuzuTea

2016/11/09 11:01

すみません。 色々ご丁寧にありがとうございました。 初心者なのですが、ちょっと訳が解らなすぎるので、今回は諦めたいと思います...
guest

0

私自身は詳しくないのですが・・・
以下の2つで調べたら手がかりになりませんか?

  • Javaで録音
  • JavaでMIDI再生

投稿2016/10/26 08:17

sonor_3rd

総合スコア114

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問