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

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

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

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

Q&A

解決済

1回答

2235閲覧

Haskell: Tidalcyclesを導入できない

退会済みユーザー

退会済みユーザー

総合スコア0

Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

0グッド

0クリップ

投稿2020/02/06 19:38

編集2020/02/16 18:37

追記(最新2/17)と進捗

Windows上の導入は諦め、仮想環境OSを立ててそこにインストールを試みることにしました。
VirtualBoxにLinux Mint Mateを立て、同様に
①haskell(stackを用いる)の導入
②haskellにtidalcyclesを導入
③supercolliderにsuperdirtを導入、起動
④エディタ(Atom or VScode)にtidalcyclesパッケージを導入、起動
の手順を実行しました。
以前と同じように、①②④は上手くいくのですが
エディタ上でいざ実行しようとするとエラーが出ます。
ただエラー文の文字化けは無くなったのでそこだけ進捗です。

以下Atomで.tidalファイルを実行しようとしたときのエラー文です。

Custom ghci path configured: stack exec --package tidal -- ghci Ghci command: stack exec --package tidal -- ghci Ghc-pkg command: stack exec --package tidal -- ghc-pkg Load BootTidal.hs from /home/username/.atom/packages/tidalcycles/lib/BootTidal.hs /bin/sh: 1: stack exec --package tidal -- ghci: not found

パス名をstack exec ghciなどに変えてもほぼ同じでした。

コマンドが見つからないと怒られているわけですが、
端末上でstack exec --package tidal -- ghci等は普通に実行できます。
ここでよくわからなくなりました。

上のエラー文で/bin/shとあるのに対して端末のシェルがbashなのが関係ある?とかを疑いましたが(echo $SHELLで調べた)
適切ないじり方がわからず断念しました。

VScode上で実行しても、文字化けが消えるだけ⁺ちょっとの変化でした。

GHCi, version 8.6.5: http://www.haskell.org/ghc/ :? for help Loaded GHCi configuration from /tmp/haskell-stack-ghci/2a3bbd58/ghci-script Prelude> Prelude> Warning: GHCi | Warning: GHCi | <no location info>: error: Warning: GHCi | Could not find module ‘Sound.Tidal.Context’ Warning: GHCi | It is not a module in the current program, or in any known package.   (中略) tidal> Warning: GHCi | Warning: GHCi | <interactive>:64:1: error: Variable not in scope: d1 :: t0 -> t Warning: GHCi | Warning: GHCi | <interactive>:64:6: error: Warning: GHCi | • Variable not in scope: sound :: [Char] -> t0 Warning: GHCi | • Perhaps you meant ‘round’ (imported from Prelude) tidal>

(追記ここまで)

前提・実現したいこと

Haskellのtidalcyclesを導入しようとしています。
OSはwindows10です。

発生している問題・エラーメッセージ

tidalcyclesの導入を、

①haskell(stackを用いる)の導入
②haskellにtidalcyclesを導入
③supercolliderにsuperdirtを導入、起動
④エディタ(Atom or VScode)にtidalcyclesパッケージを導入、起動

で行おうとしているのですが
いざ.tidalファイル上で実行しようとするとエラーを吐いて音が鳴りません。
例えばAtomの場合、

d1 $ sound "bd sn" ```を実行しようとすると下のように表示されます。 ```Tidalcycles Custom ghci path configured: stack exec --package tidal -- ghci Ghci command: stack exec --package tidal -- ghci Ghc-pkg command: stack exec --package tidal -- ghc-pkg Load BootTidal.hs from C:\Users\username.atom\packages\tidalcycles\lib\BootTidal.hs '"stack exec --package tidal -- ghci"' �́A�����R�}���h�܂��͊O���R�}���h�A ����”\�ȃv���O�����܂��̓o�b�` �t�@�C���Ƃ��ĔF������Ă��܂���B

またエディタ上のエラーメッセージとして、

Uncaught Error: write EPIPE events.js:167 Hide Stack Trace Error: write EPIPE at afterWriteDispatched (internal/stream_base_commons.js:78:25) at writeGeneric (internal/stream_base_commons.js:73:3) at Socket._writeGeneric (net.js:713:5) at Socket._write (net.js:725:8) at doWrite (_stream_writable.js:410:12) at writeOrBuffer (_stream_writable.js:394:5) at Socket.Writable.write (_stream_writable.js:294:11) at Ghci.writeLine (file:///C:/Users/username/.atom/packages/tidalcycles/lib/ghci.js:20:24) at REPL.tidalSendLine (file:///C:/Users/username/.atom/packages/tidalcycles/lib/repl.js:127:17) at REPL.initTidal (file:///C:/Users/username/.atom/packages/tidalcycles/lib/repl.js:114:12) at REPL.start (file:///C:/Users/username/.atom/packages/tidalcycles/lib/repl.js:56:12) at REPL._eval (file:///C:/Users/username/.atom/packages/tidalcycles/lib/repl.js:137:30) at HTMLElement.tidalcyclesEvalMultiLine (file:///C:/Users/username/.atom/packages/tidalcycles/lib/repl.js:37:55) at CommandRegistry.handleCommandEvent (C:\Users\username\AppData\Local\atom\app-1.43.0\resources\app\static\<embedded>:11:349290) at KeymapManager.dispatchCommandEvent (C:\Users\username\AppData\Local\atom\app-1.43.0\resources\app\static\<embedded>:11:1253549) at KeymapManager.handleKeyboardEvent (C:\Users\username\AppData\Local\atom\app-1.43.0\resources\app\static\<embedded>:11:1249683) at WindowEventHandler.handleDocumentKeyEvent (C:\Users\username\AppData\Local\atom\app-1.43.0\resources\app\static\<embedded>:11:284496)

と表示されます。

試したこと

②supercolliderと、そこでのsuperdirtの導入に問題はないと思います。
(tidalcyclesのpythonバージョンみたいなものであるFoxDotを起動できて音を鳴らせていることと、supercolliderに

SuperDirt: listening to Tidal on port 57120

と表示させることができたことからそう判断してます)

①haskellの導入については、
一度いろいろよくわかんないことになったで
一端stack自体を全部消して再インストールを行いました。
(ここを見ながらやりました→ https://sites.google.com/site/toriaezuzakki/haskell/environment)
ここについても多分大丈夫だと思います。

なにやら怪しい雰囲気があるのが
②haskellにtidalcyclesを導入
の部分で、

インストール時にコマンドライン上で

>chcp 65001 #これをしないと途中で止まる >stack install tidal

としたところ、いろいろ表示された最後に

tidal > [19 of 19] Compiling Sound.Tidal.Context tidal > copy/register tidal > Installing library in C:\sr\snapshots\45e253ae\lib\x86_64-windows-ghc-8.6.5\tidal-1.4.8-C73GrwJ4T6M1yznor10hu tidal > Registering library for tidal-1.4.8.. Completed 24 action(s).

と表示されてインストール完了した感じが出ているのですが、
Troubleshooting a Tidal install(https://tidalcycles.org/index.php/Troubleshooting_a_Tidal_install)のページにある説明の通りに、GHCi上で

Prelude> import Sound.Tidal.Context

とすると

Prelude> import Sound.Tidal.Context <no location info>: error: Could not find module ‘Sound.Tidal.Context’ It is not a module in the current program, or in any known package.

と表示されます。
つまりtidalが入ってへんぞと怒られてしまいます。
ここで自分は???となってしまいました。
もう一度stack install tidalとしても特に何の反応もありません。

④のエディタ上の設定については、
AtomエディタにTidalcyclesパッケージを入れて、GHCi Pathの設定をstack exec --package tidal -- ghciに変更をしてからbootしています。実行結果は最初に書いたとおりです。GHCi Pathをstack exec tidalにするのも試しましたが似たような状況になりました。
VScode上でもUse stackにチェックを入れて試しましたが上手くいきませんでした。

以上です。どなたか詳しい方がおられましたらよろしくお願いします。

参考にしたページ
TidalCyclesをstackで確実にインストールする
https://haskell.jp/blog/posts/2019/tidalcycles-stack.html

とりあえず雑記帳
https://sites.google.com/site/toriaezuzakki/haskell/environment

Troubleshooting a Tidal install
https://tidalcycles.org/index.php/Troubleshooting_a_Tidal_install

TidalCyclesの環境設定をしたいです
https://teratail.com/questions/190623

追記

igrepさん

(1)

stack ghciで実行していました。
stack exec --package tidal -- ghciで実行したところ

C:\Users\username>stack exec --package tidal -- ghci GHCi, version 8.6.5: http://www.haskell.org/ghc/ :? for help Prelude> import Sound.Tidal.Context Prelude Sound.Tidal.Context>

となり上手くいきました。

(2)
VScode上での実行結果は以下のようになりました。
設定のUse stack ghciにチェックを入れた状態です。
GHCi Pathにstack exec --package tidal -- ghciを指定するのと何も指定しないのの二つを試しましたが同じ結果でした。

Warning: GHCi | 'stty' �́A�����R�}���h�܂��͊O���R�}���h�A Warning: GHCi | ����”\�ȃv���O�����܂��̓o�b�` �t�@�C���Ƃ��ĔF������Ă��܂���B GHCi, version 8.6.5: http://www.haskell.org/ghc/ :? for help Loaded GHCi configuration from C:\Users\username\AppData\Local\Temp\haskell-stack-ghci\2a3bbd58\ghci-script Prelude> Prelude> Warning: GHCi | Warning: GHCi | <no location info>: error: Warning: GHCi | Could not find module �eSound.Tidal.Context�f Warning: GHCi | It is not a module in the current program, or in any known package. Warning: GHCi | Warning: GHCi | <interactive>:6:39: error: Not in scope: �eoLatency�f Warning: GHCi | Warning: GHCi | <interactive>:6:55: error: Not in scope: �eoAddress�f Warning: GHCi | Warning: GHCi | <interactive>:6:79: error: Not in scope: �eoPort�f Warning: GHCi | Warning: GHCi | <interactive>:6:111: error: Not in scope: �ecFrameTimespan�f Warning: GHCi | Warning: GHCi | <interactive>:21:38: error: Warning: GHCi | Not in scope: �eSound.Tidal.Transition.xfadeIn�f Warning: GHCi | No module named �eSound.Tidal.Transition�f is imported. Warning: GHCi | Warning: GHCi | <interactive>:22:42: error: Warning: GHCi | Not in scope: �eSound.Tidal.Transition.xfadeIn�f Warning: GHCi | No module named �eSound.Tidal.Transition�f is imported. Warning: GHCi | (本文の字数制限により中略) t1 -> t Warning: GHCi | Warning: GHCi | <interactive>:59:23: error: Variable not in scope: tidal Warning: GHCi | Warning: GHCi | <interactive>:60:12: error: Warning: GHCi | Variable not in scope: streamSetB :: t0 -> t Warning: GHCi | tidal> Warning: GHCi | <interactive>:60:23: error: Variable not in scope: tidal Warning: GHCi | Warning: GHCi | <interactive>:64:1: error: Variable not in scope: d1 :: t0 -> t Warning: GHCi | Warning: GHCi | <interactive>:64:6: error: Warning: GHCi | ? Variable not in scope: sound :: [Char] -> t0 Warning: GHCi | ? Perhaps you meant �eround�f (imported from Prelude) tidal>

(3)
AtomでGHCi Pathにchcp 65001 & stack exec --package tidal -- ghciを指定して実行したところ以下のようになりました。
少し変化がありましたが文字化けしたままなのは変わりありませんでした。

Custom ghci path configured: chcp 65001 & stack exec --package tidal -- ghci Ghci command: chcp 65001 & stack exec --package tidal -- \ghci Ghc-pkg command: chcp 65001 & stack exec --package tidal -- \ghc-pkg Load BootTidal.hs from C:\Users\username.atom\packages\tidalcycles\lib\BootTidal.hs �w�肳�ꂽ�p�X�����‚���܂���B

またエディタ上のエラーメッセージは同じでした。

さらに追記

igrepさん

(4)
C:\sr\global-projectにstack.yamlがありました。

# This is the implicit global project's config file, which is only used when # 'stack' is run outside of a real project. Settings here do _not_ act as # defaults for all projects. To change stack's default settings, edit # 'C:\sr\config.yaml' instead. # # For more information about stack's configuration, see # http://docs.haskellstack.org/en/stable/yaml_configuration/ # packages: [] resolver: lts-14.23

初期状態からノータッチです。(よくわかってないので)

(5)
usernameは半角小文字アルファベットだけ使っています。

もう少し自分でも情報を調べてみます。
回答ありがとうございました。

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

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

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

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

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

igrep

2020/02/06 23:55

二つ気になります。 (1) > Troubleshooting a Tidal install(https://tidalcycles.org/index.php/Troubleshooting_a_Tidal_install)のページにある説明の通りに、GHCi上で この部分で実行したのは「ghci」ですかそれとも「stack exec --package tidal -- ghci」ですか? (2) > VScode上でもUse stackにチェックを入れて試しましたが上手くいきませんでした。 このときのエラーもAtomで発生したエラーと同じものでしょうか? ちなみに、今確実に言えることは「Could not find module ‘Sound.Tidal.Context’」と冒頭の「Uncaught Error: write EPIPE」は全く関係のないエラーです。
igrep

2020/02/07 00:04

すみません、もう一つ。 (3) GHCi Pathの設定を「chcp 65001 & stack exec --package tidal -- ghci」に指摘どうしたらどうなりますか? (恐らく)こうすることで、文字化けしている「�́A�����R�}���h�܂��͊O���R�}���h�A ����”\�ȃv���O�����܂��̓o�b�` �t�@�C���Ƃ��ĔF������Ă��܂���B」の箇所が文字化けしなくなり、詳細なエラーがわかるようになるはずです。
igrep

2020/02/07 10:36 編集

うーん、申し訳なくもちょっとお手上げですね。 あとは (4) Visual Studio Codeを起動したディレクトリーや、その親ディレクトリーにstack.yamlが存在していないか調べて、あればその中身を張って欲しい、 (5) Windowsのユーザー名に日本語が含まれているために、「C:\Users\username」の「username」の箇所に日本語が含まれてませんか? ぐらいでしょうか。。。
guest

回答1

0

ベストアンサー

私も同じエラーでうまく行きませんでした。
あれこれ試して、最終的には公式で紹介されてるchocolateyを使った方法でうまく行きました。https://tidalcycles.org/index.php/Windows_choco_install

但し幾つか注意点があります。

まずここまでに色々試しているのであれば、Windowsの設定->アプリからAtomとSuperColliderを削除しておきます。
C:\ProgramData\chocolatey も存在しているならディレクトリごと削除します。
C:\Users(ユーザー名)\AppData\Local\SuperCollider\Extensions に手動でsc3pluginsを入れてる場合はそれも削除します。
厳密には削除じゃなくてうまくやる方法があるのかもしれませんが、私は削除することでうまくインストールが進められるようになりました。

公式に書かれた手順3の

mkdir \temp cd \temp curl -o TidalCycles.1.4.3.nupkg https://chocolatey.org/api/v2/package/TidalCycles/1.4.3 choco install tidal.nupkg --force

の最後の部分は、ファイル名が異なるためうまくいきません。
多分

choco install TidalCycles.1.4.3.nupkg --force

になるはずです。

あとは

choco install TidalCycles.1.4.3.nupkg --force

を実行するたびにgitがないとかatomがないとかで失敗するので、その度に

choco install git

とかでインストールしてやり直すのを繰り返します。
私の場合はこれで音が鳴るところまで行けました。

投稿2020/02/28 17:28

hacha

総合スコア19

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

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

退会済みユーザー

退会済みユーザー

2020/02/29 10:30

情報ありがとうございます。 教えていただいた手順で無事音を鳴らすところまで行けました! どうにも上手くいってなかったのでとても助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問