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

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

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

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

解決済

Go言語でコードを実行して直接音を鳴らす方法

aaaa____
aaaa____

総合スコア17

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

1回答

0リアクション

0クリップ

611閲覧

投稿2022/08/24 11:59

現状

題名通りになります.まずGo言語で音を鳴らすにはどうすれば良いのかを知るために,いくつかサイトを検索してみたのですが,
https://techblog.istyle.co.jp/archives/2102

このサイトでは,キーボードを鍵盤に見立てていて望む形とは違う.

https://news.mynavi.jp/techplus/article/gogogo-18/

このサイトでは,.wavファイルのsin波を生成していて望んだ形に近いのですが,.wavファイルの再生自体は別のプレイヤーか何かで行っていて,違う,のようになりました.

LiveCoding用の言語として活用することを考えているため,実行ごとに.wavファイルを作成されるのはあまりよろしくないのですが,とりあえず音を鳴らしてみることが先決と考え,では,二つ目のリンクで再生した.wavファイルを再生できるコードの書き方はどこかに書いていないかを調べたのですが,次のリンクのようなものを見つけました.

https://qiita.com/usk81/items/8590172a23bb71e21329

ここではmp3でやっていますが,

https://github.com/faiface/beep

を見てみると,wavというのもあるので,少し弄ればwavもできるのではないかと思いこれに触れています.とりあえずmp3で動くことを確かめるために次のサイトの一番上の音源を取り,"sea.mp3"として再生してみようとしています.

https://vsq.co.jp/plus/sound/category_sub/sea/

質問内容

go

package main import ( "log" "os" "time" "github.com/faiface/beep" "github.com/faiface/beep/mp3" "github.com/faiface/beep/speaker" ) func main() { f, err := os.Open("sea.mp3") if err != nil { log.Fatal(err) } st, format, err := mp3.Decode(f) if err != nil { log.Fatal(err) } defer st.Close() speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/10)) done := make(chan bool) speaker.Play(beep.Seq(st, beep.Callback(func() { done <- true }))) <-done }

コードを上のようにし,go run main.goで実行してみたところ,次のような結果が返ってきました.これは一体どのように対処すれば良いのでしょうか.

% go run main.go # github.com/hajimehoshi/oto In file included from driver_macos.m:17: In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h:10: In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:12: /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSBundle.h:91:143: error: function does not return NSString /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:103:48: note: expanded from macro 'NS_FORMAT_ARGUMENT'

やってみたこと

errorとなっている文を検索して上3つに表示される
https://github.com/icerockdev/moko-resources/issues/247
のようなサイトを見たのですが対処法が掴めず,他に見ようとしてもswiftのような別の言語についてであるようなサイトが見つかりました.

% go get github.com/faiface/beep/speaker % go get github.com/faiface/beep/mp3 % go get github.com/faiface/beep

は実行してあります.

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。