How to install for M1 Mac

I wrote an article about how to install Tidal Cycles on M1-Mac.
but this original article is japanese only. I use the google Translation.

If you have a problem of install, please read it.

Thank you.

barbe_gnerative_diary/Tidal Cycles How to install for M1 Mac

5 Likes

Looking around at Haskell issues on the M1, I also came across this:
GHC leaks LLVM's llc processes on a package with large number of modules on macOS (#20305) · Issues · Glasgow Haskell Compiler / GHC · GitLab
which might be making things more complicated. It looks like this has been fixed in GHC 9 but may still exist in GHC 8

1 Like

Hi bgold

That advice was so helpful- thank you!
I will try to use GHC9.

GHC 9.2.2 (latest) worked. And it don't need llvm.
I rewrote my article! Thank you.

1 Like

Hello,
I'm having a hard time with a new install on an M1 MBP with Monterey. I believe that I've installed all of the components by frankensteinging instructions from a few different threads and the ones linked above.

I'm getting the following errors from VSCODE:

Summary
GHCi, version 9.2.2: https://www.haskell.org/ghc/  :? for help
ghci> ghci> Warning: GHCi | 
Warning: GHCi | <no location info>: error:
Warning: GHCi |     Could not load module ‘Sound.OSC.FD’
Warning: GHCi |     It is a member of the hidden package ‘hosc-0.19.1’.
Warning: GHCi |     You can run ‘:set -package hosc’ to expose it.
Warning: GHCi |     (Note: this unloads all the modules in the current scope.)
[TidalCycles version 1.8.0]
Installed in /Users/lightning/.cabal/store/ghc-9.2.2/tdl-1.8.0-cadf1346/share
Listening for external controls on 127.0.0.1:6010
Connected to SuperWarning: GHCi | 
Dirt.
Warning: GHCi | <interactive>:37:17: error:
Warning: GHCi |     Not in scope: ‘O.time’
Warning: GHCi |     No module named ‘O’ is imported.
Warning: GHCi | 
Warning: GHCi | <interactive>:230:13: error:
Warning: GHCi |     • Variable not in scope: setcps :: t -> t1
Warning: GHCi |     • Perhaps you meant one of these:
Warning: GHCi |         ‘Tempo.setCps’ (imported from Sound.Tidal.Tempo),
Warning: GHCi |         ‘steps’ (imported from Sound.Tidal.Context)
Warning: GHCi | 
Warning: GHCi | <interactive>:231:13: error:
Warning: GHCi |     • Variable not in scope: setcps :: t -> t1
Warning: GHCi |     • Perhaps you meant one of these:
Warning: GHCi |         ‘Tempo.setCps’ (imported from Sound.Tidal.Tempo),
Warning: GHCi |         ‘steps’ (imported from Sound.Tidal.Context)
tidal> Warning: GHCi | 
Warning: GHCi | <interactive>:250:1: error:
Warning: GHCi |     • Variable not in scope: d1 :: ControlPattern -> b
Warning: GHCi |     • Perhaps you meant ‘dt’ (imported from Sound.Tidal.Context)
tidal> ```

It seems like I haven't been able to properly give GHC a path but my attempts to do that haven't worked.
Thanks for any suggestions!

EDIT: Any ideas @yaxu

It does seem the Tidal library is itself installed correctly (it's finding the modules), but it looks like your startup file is trying to load something from the "hosc" package, which has been installed as "hidden" (which is the default).

That's not normally part of the startup, so I don't know why it's doing that. So you could either figure out where something is trying to import Sound.OSC.FD and get rid of it, or you tell the system to "unhide" the hosc library by doing cabal install --lib hosc

1 Like

This worked. Thanks so much!!!
B

1 Like

Thanks for writing this article! Couldn't get tidalcycles to work on my M1 until I followed your steps.

1 Like

Thank you for sharing this, was lucky to find it soon enough :slight_smile:

1 Like

Hi barbe & all. longtime tidal user but setting it up fresh on a new M1 Mac and running into problems. Thanks barbe for the helpful guide. I've followed it carefully and it has got me the closest of any info I've found, but unfortunately still running into problems.

When I install tidal, I get the below log. If anyone could advise about what to try next, I'd be grateful. Thanks

Tom

Last login: Tue Sep 27 21:35:25 on ttys001
tom@Toms-MBP ~ % cabal update                                                                                               
Downloading the latest package list from hackage.haskell.org
Package list of hackage.haskell.org is up to date at index-state 2022-09-27T20:19:21Z
tom@Toms-MBP ~ % cabal install tidal --lib                                                                                  
Resolving dependencies...
Build profile: -w ghc-9.2.2 -O1
In order, the following will be built (use -v for more details):
 - clock-0.8.3 (lib) (requires build)
 - hsc2hs-0.68.8 (exe:hsc2hs) (requires build)
 - primitive-0.7.4.0 (lib) (requires build)
 - splitmix-0.1.0.4 (lib) (requires build)
 - tidal-link-1.0.1 (lib) (requires build)
 - network-3.1.2.7 (lib:network) (requires build)
 - random-1.2.1.1 (lib) (requires build)
 - hosc-0.19.1 (lib) (requires build)
 - tidal-1.9.2 (lib) (requires build)
Starting     clock-0.8.3 (lib)
Starting     primitive-0.7.4.0 (lib)
Starting     hsc2hs-0.68.8 (exe:hsc2hs)
Starting     splitmix-0.1.0.4 (lib)
Starting     tidal-link-1.0.1 (lib)
Building     clock-0.8.3 (lib)
Building     splitmix-0.1.0.4 (lib)
Building     hsc2hs-0.68.8 (exe:hsc2hs)
Building     primitive-0.7.4.0 (lib)

Failed to build clock-0.8.3.
Build log ( /Users/tom/.cabal/logs/ghc-9.2.2/clck-0.8.3-54c8492a.log ):
Configuring library for clock-0.8.3..
Preprocessing library for clock-0.8.3..
linking dist/build/System/Clock_hsc_make.o failed (exit code 1)
rsp file was: "dist/build/System/hsc2hscall4153-2.rsp"
command was: /usr/bin/gcc dist/build/System/Clock_hsc_make.o dist/build/System/Clock_hsc_utils.o -o dist/build/System/Clock_hsc_make --target=arm64-apple-darwin --target=arm64-apple-darwin -fuse-ld=lld -L/Users/tom/.ghcup/ghc/9.2.2/lib/ghc-9.2.2/lib/../lib/aarch64-osx-ghc-9.2.2/base-4.16.1.0 -liconv -L/Users/tom/.ghcup/ghc/9.2.2/lib/ghc-9.2.2/lib/../lib/aarch64-osx-ghc-9.2.2/ghc-bignum-1.2 -L/Users/tom/.ghcup/ghc/9.2.2/lib/ghc-9.2.2/lib/../lib/aarch64-osx-ghc-9.2.2/ghc-prim-0.8.0 -L/Users/tom/.ghcup/ghc/9.2.2/lib/ghc-9.2.2/lib/../lib/aarch64-osx-ghc-9.2.2/rts-1.0.2 -lm -ldl -lffi
error: clang: error: invalid linker name in argument '-fuse-ld=lld'


Failed to build exe:hsc2hs from hsc2hs-0.68.8.
Build log ( /Users/tom/.cabal/logs/ghc-9.2.2/hsc2hs-0.68.8-39697ba7.log ):
Configuring executable 'hsc2hs' for hsc2hs-0.68.8..
Preprocessing executable 'hsc2hs' for hsc2hs-0.68.8..
Building executable 'hsc2hs' for hsc2hs-0.68.8..
[ 1 of 12] Compiling ATTParser        ( src/ATTParser.hs, dist/build/hsc2hs/hsc2hs-tmp/ATTParser.o )
[ 2 of 12] Compiling Compat.ResponseFile ( src/Compat/ResponseFile.hs, dist/build/hsc2hs/hsc2hs-tmp/Compat/ResponseFile.o )
[ 3 of 12] Compiling Compat.TempFile  ( src/Compat/TempFile.hs, dist/build/hsc2hs/hsc2hs-tmp/Compat/TempFile.o )
[ 4 of 12] Compiling Common           ( src/Common.hs, dist/build/hsc2hs/hsc2hs-tmp/Common.o )
[ 5 of 12] Compiling Flags            ( src/Flags.hs, dist/build/hsc2hs/hsc2hs-tmp/Flags.o )
[ 6 of 12] Compiling HSCParser        ( src/HSCParser.hs, dist/build/hsc2hs/hsc2hs-tmp/HSCParser.o )
[ 7 of 12] Compiling C                ( src/C.hs, dist/build/hsc2hs/hsc2hs-tmp/C.o )
[ 8 of 12] Compiling CrossCodegen     ( src/CrossCodegen.hs, dist/build/hsc2hs/hsc2hs-tmp/CrossCodegen.o )
[ 9 of 12] Compiling Paths_hsc2hs     ( dist/build/hsc2hs/autogen/Paths_hsc2hs.hs, dist/build/hsc2hs/hsc2hs-tmp/Paths_hsc2hs.o )
[10 of 12] Compiling UtilsCodegen     ( src/UtilsCodegen.hs, dist/build/hsc2hs/hsc2hs-tmp/UtilsCodegen.o )
[11 of 12] Compiling DirectCodegen    ( src/DirectCodegen.hs, dist/build/hsc2hs/hsc2hs-tmp/DirectCodegen.o )
[12 of 12] Compiling Main             ( src/Main.hs, dist/build/hsc2hs/hsc2hs-tmp/Main.o )
Linking dist/build/hsc2hs/hsc2hs ...
clang: error: invalid linker name in argument '-fuse-ld=lld'
`gcc' failed in phase `Linker'. (Exit code: 1)

Failed to build primitive-0.7.4.0.
Build log ( /Users/tom/.cabal/logs/ghc-9.2.2/prmtv-0.7.4.0-4f8a5dbe.log ):
Configuring library for primitive-0.7.4.0..
Preprocessing library for primitive-0.7.4.0..
Building library for primitive-0.7.4.0..
[ 1 of 12] Compiling Control.Monad.Primitive ( Control/Monad/Primitive.hs, dist/build/Control/Monad/Primitive.o, dist/build/Control/Monad/Primitive.dyn_o )
[ 2 of 12] Compiling Data.Primitive.Array ( Data/Primitive/Array.hs, dist/build/Data/Primitive/Array.o, dist/build/Data/Primitive/Array.dyn_o )
[ 3 of 12] Compiling Data.Primitive.MVar ( Data/Primitive/MVar.hs, dist/build/Data/Primitive/MVar.o, dist/build/Data/Primitive/MVar.dyn_o )
[ 4 of 12] Compiling Data.Primitive.MachDeps ( Data/Primitive/MachDeps.hs, dist/build/Data/Primitive/MachDeps.o, dist/build/Data/Primitive/MachDeps.dyn_o )
[ 5 of 12] Compiling Data.Primitive.Internal.Operations ( Data/Primitive/Internal/Operations.hs, dist/build/Data/Primitive/Internal/Operations.o, dist/build/Data/Primitive/Internal/Operations.dyn_o )
ld.lld: builderMainLoop: posix_spawnp: illegal operation (Inappropriate ioctl for device)

Failed to build splitmix-0.1.0.4.
Build log ( /Users/tom/.cabal/logs/ghc-9.2.2/spltmx-0.1.0.4-9ce2336d.log ):
Configuring library for splitmix-0.1.0.4..
Preprocessing library for splitmix-0.1.0.4..
Building library for splitmix-0.1.0.4..
[1 of 4] Compiling Data.Bits.Compat ( src-compat/Data/Bits/Compat.hs, dist/build/Data/Bits/Compat.o, dist/build/Data/Bits/Compat.dyn_o )
[2 of 4] Compiling System.Random.SplitMix.Init ( src/System/Random/SplitMix/Init.hs, dist/build/System/Random/SplitMix/Init.o, dist/build/System/Random/SplitMix/Init.dyn_o )
ld.lld: builderMainLoop: posix_spawnp: illegal operation (Inappropriate ioctl for device)

Failed to build tidal-link-1.0.1. The failure occurred during the configure
step.
Build log ( /Users/tom/.cabal/logs/ghc-9.2.2/tdl-lnk-1.0.1-e1d0b6c4.log ):
Configuring library for tidal-link-1.0.1..
cabal-3.6.2.0: Missing dependency on a foreign library:
* Missing (or bad) C library: c++
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.If the
library file does exist, it may contain errors that are caught by the C
compiler at the preprocessing stage. In this case you can re-run configure
with the verbosity flag -v3 to see the error messages.

cabal: Failed to build clock-0.8.3 (which is required by tidal-1.9.2). See the
build log above for details.
Failed to build exe:hsc2hs from hsc2hs-0.68.8 (which is required by
tidal-1.9.2). See the build log above for details.
Failed to build primitive-0.7.4.0 (which is required by tidal-1.9.2). See the
build log above for details.
Failed to build splitmix-0.1.0.4 (which is required by tidal-1.9.2). See the
build log above for details.
Failed to build tidal-link-1.0.1 (which is required by tidal-1.9.2). See the
build log above for details.

tom@Toms-MBP ~ % cabal update             
Downloading the latest package list from hackage.haskell.org
Package list of hackage.haskell.org is up to date at index-state 2022-09-27T20:19:21Z
tom@Toms-MBP ~ % cabal install tidal --lib
Resolving dependencies...
Build profile: -w ghc-9.2.2 -O1
In order, the following will be built (use -v for more details):
 - clock-0.8.3 (lib) (requires build)
 - hsc2hs-0.68.8 (exe:hsc2hs) (requires build)
 - primitive-0.7.4.0 (lib) (requires build)
 - splitmix-0.1.0.4 (lib) (requires build)
 - tidal-link-1.0.1 (lib) (requires build)
 - network-3.1.2.7 (lib:network) (requires build)
 - random-1.2.1.1 (lib) (requires build)
 - hosc-0.19.1 (lib) (requires build)
 - tidal-1.9.2 (lib) (requires build)
Starting     clock-0.8.3 (lib)
Starting     primitive-0.7.4.0 (lib)
Starting     hsc2hs-0.68.8 (exe:hsc2hs)
Starting     splitmix-0.1.0.4 (lib)
Starting     tidal-link-1.0.1 (lib)
Building     clock-0.8.3 (lib)
Building     hsc2hs-0.68.8 (exe:hsc2hs)
Building     splitmix-0.1.0.4 (lib)
Building     primitive-0.7.4.0 (lib)

Failed to build clock-0.8.3.
Build log ( /Users/tom/.cabal/logs/ghc-9.2.2/clck-0.8.3-54c8492a.log ):
Configuring library for clock-0.8.3..
Preprocessing library for clock-0.8.3..
linking dist/build/System/Clock_hsc_make.o failed (exit code 1)
rsp file was: "dist/build/System/hsc2hscall4848-2.rsp"
command was: /usr/bin/gcc dist/build/System/Clock_hsc_make.o dist/build/System/Clock_hsc_utils.o -o dist/build/System/Clock_hsc_make --target=arm64-apple-darwin --target=arm64-apple-darwin -fuse-ld=lld -L/Users/tom/.ghcup/ghc/9.2.2/lib/ghc-9.2.2/lib/../lib/aarch64-osx-ghc-9.2.2/base-4.16.1.0 -liconv -L/Users/tom/.ghcup/ghc/9.2.2/lib/ghc-9.2.2/lib/../lib/aarch64-osx-ghc-9.2.2/ghc-bignum-1.2 -L/Users/tom/.ghcup/ghc/9.2.2/lib/ghc-9.2.2/lib/../lib/aarch64-osx-ghc-9.2.2/ghc-prim-0.8.0 -L/Users/tom/.ghcup/ghc/9.2.2/lib/ghc-9.2.2/lib/../lib/aarch64-osx-ghc-9.2.2/rts-1.0.2 -lm -ldl -lffi
error: clang: error: invalid linker name in argument '-fuse-ld=lld'


Failed to build exe:hsc2hs from hsc2hs-0.68.8.
Build log ( /Users/tom/.cabal/logs/ghc-9.2.2/hsc2hs-0.68.8-39697ba7.log ):
Configuring executable 'hsc2hs' for hsc2hs-0.68.8..
Preprocessing executable 'hsc2hs' for hsc2hs-0.68.8..
Building executable 'hsc2hs' for hsc2hs-0.68.8..
[ 1 of 12] Compiling ATTParser        ( src/ATTParser.hs, dist/build/hsc2hs/hsc2hs-tmp/ATTParser.o )
[ 2 of 12] Compiling Compat.ResponseFile ( src/Compat/ResponseFile.hs, dist/build/hsc2hs/hsc2hs-tmp/Compat/ResponseFile.o )
[ 3 of 12] Compiling Compat.TempFile  ( src/Compat/TempFile.hs, dist/build/hsc2hs/hsc2hs-tmp/Compat/TempFile.o )
[ 4 of 12] Compiling Common           ( src/Common.hs, dist/build/hsc2hs/hsc2hs-tmp/Common.o )
[ 5 of 12] Compiling Flags            ( src/Flags.hs, dist/build/hsc2hs/hsc2hs-tmp/Flags.o )
[ 6 of 12] Compiling HSCParser        ( src/HSCParser.hs, dist/build/hsc2hs/hsc2hs-tmp/HSCParser.o )
[ 7 of 12] Compiling C                ( src/C.hs, dist/build/hsc2hs/hsc2hs-tmp/C.o )
[ 8 of 12] Compiling CrossCodegen     ( src/CrossCodegen.hs, dist/build/hsc2hs/hsc2hs-tmp/CrossCodegen.o )
[ 9 of 12] Compiling Paths_hsc2hs     ( dist/build/hsc2hs/autogen/Paths_hsc2hs.hs, dist/build/hsc2hs/hsc2hs-tmp/Paths_hsc2hs.o )
[10 of 12] Compiling UtilsCodegen     ( src/UtilsCodegen.hs, dist/build/hsc2hs/hsc2hs-tmp/UtilsCodegen.o )
[11 of 12] Compiling DirectCodegen    ( src/DirectCodegen.hs, dist/build/hsc2hs/hsc2hs-tmp/DirectCodegen.o )
[12 of 12] Compiling Main             ( src/Main.hs, dist/build/hsc2hs/hsc2hs-tmp/Main.o )
Linking dist/build/hsc2hs/hsc2hs ...
clang: error: invalid linker name in argument '-fuse-ld=lld'
`gcc' failed in phase `Linker'. (Exit code: 1)

Failed to build primitive-0.7.4.0.
Build log ( /Users/tom/.cabal/logs/ghc-9.2.2/prmtv-0.7.4.0-4f8a5dbe.log ):
Configuring library for primitive-0.7.4.0..
Preprocessing library for primitive-0.7.4.0..
Building library for primitive-0.7.4.0..
[ 1 of 12] Compiling Control.Monad.Primitive ( Control/Monad/Primitive.hs, dist/build/Control/Monad/Primitive.o, dist/build/Control/Monad/Primitive.dyn_o )
[ 2 of 12] Compiling Data.Primitive.Array ( Data/Primitive/Array.hs, dist/build/Data/Primitive/Array.o, dist/build/Data/Primitive/Array.dyn_o )
[ 3 of 12] Compiling Data.Primitive.MVar ( Data/Primitive/MVar.hs, dist/build/Data/Primitive/MVar.o, dist/build/Data/Primitive/MVar.dyn_o )
[ 4 of 12] Compiling Data.Primitive.MachDeps ( Data/Primitive/MachDeps.hs, dist/build/Data/Primitive/MachDeps.o, dist/build/Data/Primitive/MachDeps.dyn_o )
[ 5 of 12] Compiling Data.Primitive.Internal.Operations ( Data/Primitive/Internal/Operations.hs, dist/build/Data/Primitive/Internal/Operations.o, dist/build/Data/Primitive/Internal/Operations.dyn_o )
ld.lld: builderMainLoop: posix_spawnp: illegal operation (Inappropriate ioctl for device)

Failed to build splitmix-0.1.0.4.
Build log ( /Users/tom/.cabal/logs/ghc-9.2.2/spltmx-0.1.0.4-9ce2336d.log ):
Configuring library for splitmix-0.1.0.4..
Preprocessing library for splitmix-0.1.0.4..
Building library for splitmix-0.1.0.4..
[1 of 4] Compiling Data.Bits.Compat ( src-compat/Data/Bits/Compat.hs, dist/build/Data/Bits/Compat.o, dist/build/Data/Bits/Compat.dyn_o )
[2 of 4] Compiling System.Random.SplitMix.Init ( src/System/Random/SplitMix/Init.hs, dist/build/System/Random/SplitMix/Init.o, dist/build/System/Random/SplitMix/Init.dyn_o )
ld.lld: builderMainLoop: posix_spawnp: illegal operation (Inappropriate ioctl for device)

Failed to build tidal-link-1.0.1. The failure occurred during the configure
step.
Build log ( /Users/tom/.cabal/logs/ghc-9.2.2/tdl-lnk-1.0.1-e1d0b6c4.log ):
Configuring library for tidal-link-1.0.1..
cabal-3.6.2.0: Missing dependency on a foreign library:
* Missing (or bad) C library: c++
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.If the
library file does exist, it may contain errors that are caught by the C
compiler at the preprocessing stage. In this case you can re-run configure
with the verbosity flag -v3 to see the error messages.

cabal: Failed to build clock-0.8.3 (which is required by tidal-1.9.2). See the
build log above for details.
Failed to build exe:hsc2hs from hsc2hs-0.68.8 (which is required by
tidal-1.9.2). See the build log above for details.
Failed to build primitive-0.7.4.0 (which is required by tidal-1.9.2). See the
build log above for details.
Failed to build splitmix-0.1.0.4 (which is required by tidal-1.9.2). See the
build log above for details.
Failed to build tidal-link-1.0.1 (which is required by tidal-1.9.2). See the
build log above for details.

Lots of output to consider there, but one highlight is GHC 9.2.2. As I recall, Tidal 1.9.2 requires GHC 9.4.2. Updating your GHC would be a good next step.

1 Like

thank you! I'll try that next

Finally made some progress last night getting Tidal working again on my M1 MBP after weeks of issues. Turns out I needed to update ghc to 9.4.4, and then the automatic install script worked fine.

However, I'm now getting late messages on every trigger in sc, and I'm not exactly sure why. In the past, I had bumped up the oLatency value in my bootTidal, but that doesn't seem to be working; it's currently set at 0.7, but I'm still getting late messages well below that threshold:

late 0.388927970
late 0.392488041
late 0.396080720
late 0.410301218
late 0.413857079
late 0.417411821

Timing is also audibly wonky. Anecdotally (and I'm not sure if it's connected), I've also noticed it takes much longer for my sample library to load. Any ideas?

p.s. latency on the sc side is set to 2.

EDIT: In case it's helpful to anyone else, I think I've managed to improve things by drastically lowering the oLatency value to 0.1 in my bootTidal file. Weird, but seems to work.

Have you tried configuring the lazy loading parameter for superdirt in your startup.scd?
It's not a fix per se, but I recommend it as a default anyway

1 Like

I'm still having issues installing in my mac studio m1 Ventura 13.2.1. I tried following the main site tutorial as well as the one above. Here are some of the issues I ran/running into:

  • For step #3 I had to install ghcup which wasn't installed by default in my machine
  • I couldn't run cabal after the tidal bootstrap install, only after installing cabal-install it worked
  • #5 I'm not sure where does the include("SuperDirt") command go?
  • I've also tried running a .tidal file in vscode with the vscode plugin and I get this error:
    Warning: GHCi | :117:1: error:
    Warning: GHCi | Parse error: module header, import declaration
    Warning: GHCi | or top-level declaration expected.

There is a link on the MacOS install page to view the GitHub readme where it mentions that the tidal-bootstrap script has not been validated or tested in Silicon and OS versions tested are Big Sur and Monterey. Sorry about this limitation, but it looks like some commands in the script did not execute properly in your environment.

The command "include("SuperDirt") is essentially an argument passed to SuperCollider (sclang) telling it to install SuperDirt. Normally you wouldn't see this, so it suggests that SuperDirt didn't install. You can check by starting SuperCollider, then in the "Language" menu will be "Quarks". When you select Quarks it should display a separate window of all installed plugins. If SuperDirt and "Dirt-Samples" are not listed, then you don't have them and nothing will work.

Follow the manual instructions for SuperDirt.

You should also follow the steps higher up on the page (3. post installation) and validate

cabal list tidal
cabal info tidal
ls ~/.pulsar/packages/tidalcycles/node_modules/osc-min
/Applications/SuperCollider.app/Contents/Resources/scsynth -v

Assuming that Pulsar and its plugin are installed correctly, please verify with a .tidal file. If all components are good, VS Code should work too (or any other editor). But Pulsar is the easiest way to troubleshoot.

Sorry you are having problems, hopefully this gets you what you need!

Thank you for your help!
So I do have the super dirt library already setup in the vs code extension and I can see all the samples.
I've also tried running all the commands the only thing that stood out was on cabal info tidal:

 tidal            (library)
    Synopsis:      Pattern language for improvised music
    Versions available: 0.8.2, 0.9.9, 0.9.10, 1.7.10, 1.8.0, 1.8.1, 1.9.2,
                        1.9.3, 1.9.4 (and 127 others)
    Versions installed: [ Not installed ]
    Homepage:      http://tidalcycles.org/
    Bug reports:   [ Not specified ]
....

Is that correct that Versions installed says Not installed?

This shows that the Tidal packages for Haskell are not installed. Do this:

cabal update
cabal v1-install tidal

This should install the 1.9.4 packages. Then when you run cabal info tidal it will show 1.9.4 in Versions installed, and will then list all the modules.

Alright so now I'm seeing:

Versions installed: 1.9.4

I'm still getting this error everytime I run (SuperDirt.start; d1 $ sound "bd sn") in the .tidal file:

Warning: GHCi | <interactive>:218:1: error:
Warning: GHCi |     Parse error: module header, import declaration
Warning: GHCi |     or top-level declaration expected.

Thank you!

SuperDirt.start; is a command that is done in the SuperCollider ide, not in the editor. When I run it in Pulsar I get the same parse error. But I never run it there.

In the Start Tidal user guide, this command is there for SC only to get you going.

In a proper setup, you won't need to run SuperDirt.start in SC every time. The key is to get your SuperCollider startup file saved and set up correctly. Then every time you start SuperCollider, SuperDirt starts. Pay attention to this file - many tidalists edit this file with different settings and options and even have multiple versions of it with different configurations.