Introducing CycSeq: a cycle sequencer for tidal

That's good news, though!

CycSeq assumes that TidalCycles was installed with cabal and SuperCollider was started with SuperDirt.

It doesn't seem to be a problem with CycSeq, but with your Tidal environment. This page should help you: https://tidalcycles.org/index.php/Installation

Btw. you should enter import Sound.Tidal.Context in a ghci session to test, if ghci can find your Tidal module and not in your console directly.

Can you pls share your installation source, so I can check what is going on? And do you try it under Linux, MacOS or Windows?

I've installed Tidal with the script mentioned with Tidal installation and SC is well installed :

curl https://tidalcycles.org/tidal-bootstrap.sh -sSf | sh

But it does not seem to install ghci (nothing in the terminal window).
I don't know exactly how to install it. Sorry!

Christophe

No problem, I assume that you are using macOS. Could you pls type ls -l ~/.ghcup/bin in your console? The tidal-bootstrap.sh script normally installs Haskell via ghcup for you if it is not installed on your system.

On my system the command from above shows me this result:

ghci seems here, but does nothing in the terminal window.
I tried also to install Haskell directly, but seems I have somewhat messed my Tidal environment

(base) xon-5:~ xon$ ls -l ~/.ghcup/bin
total 65448
lrwxr-xr-x 1 xon staff 13 22 aoû 15:46 cabal -> cabal-3.2.0.0
-rwxr-xr-x 1 xon staff 24583760 22 aoû 15:46 cabal-3.2.0.0
lrwxr-xr-x 1 xon staff 20 22 aoû 15:45 ghc -> ../ghc/8.8.4/bin/ghc
lrwxr-xr-x 1 xon staff 20 22 aoû 15:45 ghc-8.8 -> ../ghc/8.8.4/bin/ghc
lrwxr-xr-x 1 xon staff 20 22 aoû 15:45 ghc-8.8.4 -> ../ghc/8.8.4/bin/ghc
lrwxr-xr-x 1 xon staff 24 22 aoû 15:45 ghc-pkg -> ../ghc/8.8.4/bin/ghc-pkg
lrwxr-xr-x 1 xon staff 24 22 aoû 15:45 ghc-pkg-8.8 -> ../ghc/8.8.4/bin/ghc-pkg
lrwxr-xr-x 1 xon staff 24 22 aoû 15:45 ghc-pkg-8.8.4 -> ../ghc/8.8.4/bin/ghc-pkg
lrwxr-xr-x 1 xon staff 21 22 aoû 15:45 ghci -> ../ghc/8.8.4/bin/ghci
lrwxr-xr-x 1 xon staff 21 22 aoû 15:45 ghci-8.8 -> ../ghc/8.8.4/bin/ghci
lrwxr-xr-x 1 xon staff 21 22 aoû 15:45 ghci-8.8.4 -> ../ghc/8.8.4/bin/ghci
-rwxr-xr-x 1 xon staff 8545768 22 aoû 15:43 ghcup
lrwxr-xr-x 1 xon staff 24 22 aoû 15:45 haddock -> ../ghc/8.8.4/bin/haddock
lrwxr-xr-x 1 xon staff 24 22 aoû 15:45 haddock-8.8 -> ../ghc/8.8.4/bin/haddock
lrwxr-xr-x 1 xon staff 24 22 aoû 15:45 haddock-8.8.4 -> ../ghc/8.8.4/bin/haddock
lrwxr-xr-x 1 xon staff 22 22 aoû 15:45 hp2ps -> ../ghc/8.8.4/bin/hp2ps
lrwxr-xr-x 1 xon staff 22 22 aoû 15:45 hp2ps-8.8 -> ../ghc/8.8.4/bin/hp2ps
lrwxr-xr-x 1 xon staff 22 22 aoû 15:45 hp2ps-8.8.4 -> ../ghc/8.8.4/bin/hp2ps
lrwxr-xr-x 1 xon staff 20 22 aoû 15:45 hpc -> ../ghc/8.8.4/bin/hpc
lrwxr-xr-x 1 xon staff 20 22 aoû 15:45 hpc-8.8 -> ../ghc/8.8.4/bin/hpc
lrwxr-xr-x 1 xon staff 20 22 aoû 15:45 hpc-8.8.4 -> ../ghc/8.8.4/bin/hpc
lrwxr-xr-x 1 xon staff 23 22 aoû 15:45 hsc2hs -> ../ghc/8.8.4/bin/hsc2hs
lrwxr-xr-x 1 xon staff 23 22 aoû 15:45 hsc2hs-8.8 -> ../ghc/8.8.4/bin/hsc2hs
lrwxr-xr-x 1 xon staff 23 22 aoû 15:45 hsc2hs-8.8.4 -> ../ghc/8.8.4/bin/hsc2hs
lrwxr-xr-x 1 xon staff 23 22 aoû 15:45 runghc -> ../ghc/8.8.4/bin/runghc
lrwxr-xr-x 1 xon staff 23 22 aoû 15:45 runghc-8.8 -> ../ghc/8.8.4/bin/runghc
lrwxr-xr-x 1 xon staff 23 22 aoû 15:45 runghc-8.8.4 -> ../ghc/8.8.4/bin/runghc
lrwxr-xr-x 1 xon staff 27 22 aoû 15:45 runhaskell -> ../ghc/8.8.4/bin/runhaskell
lrwxr-xr-x 1 xon staff 27 22 aoû 15:45 runhaskell-8.8 -> ../ghc/8.8.4/bin/runhaskell
lrwxr-xr-x 1 xon staff 27 22 aoû 15:45 runhaskell-8.8.4 -> ../ghc/8.8.4/bin/runhaskell
(base) xon-5:~ xon$ ghci
-bash: ghci: command not found
(base) xon-5:~ xon$

Well, that's good. Your ghci is installed, but apparently not included in the PATH variable.
Unfortunately I don't know if you use bash or zsh. But either you have to append the line export PATH="/Users/xon/.ghcup/bin/:$PATH" under ~/.bashrc or ~/.zshrc.
Then restart your console and now you should be able to use ghci.

Hello @mrreason
Under ~/.bashrc, I've added your line.

And the file looks like this now:

[ -f "/Users/xon/.ghcup/env" ] && source "/Users/xon/.ghcup/env" # ghcup-env
. $HOME/.ghcup/env
. $HOME/.ghcup/env
. $HOME/.ghcup/env
export PATH="/Users/xon/.ghcup/bin/:$PATH"

But I am still unable to use ghci by restarting the terminal. still sorry

And it's still not a problem :slight_smile:
What happens when you type export PATH="$HOME/.ghcup/bin/:$PATH" directly in your console? This should temporarely add the ghci path - just for testing.

After typing export PATH="$HOME/.ghcup/bin/:$PATH"
I've got this now with ghci :

(base) xon-5:~ xon$ ghci

GHCi, version 8.8.4: https://www.haskell.org/ghc/ :? for help

Loaded package environment from /Users/xon/.ghc/x86_64-darwin-8.8.4/environments/default

Prelude>

And I can import Sound.Tidal.Context

Prelude> import Sound.Tidal.Context
Prelude Sound.Tidal.Context>

which ghci gives me:

/Users/xon/.ghcup/bin//ghci

I put it in the package json file.
And now npm start gives me:

(base) xon-5:cycseq xon$ npm start

cycseq@0.1.0 start /Users/xon/cycseq
concurrently --default-input-target 1 -i --kill-others -n "server,client,link" "npm run start:server" "npm run start:client -f" "npm run start:linkserver"

[client] npm WARN using --force I sure hope you know what you are doing.
[client]
[client] > cycseq@0.1.0 start:client /Users/xon/cycseq
[client] > node client.js --server 127.0.0.1 --tidalCabal -g /Users/xon/.ghcup/bin//ghci
[client]
[link]
[link] > cycseq@0.1.0 start:linkserver /Users/xon/cycseq
[link] > node linkserver.js
[link]
[server]
[server] > cycseq@0.1.0 start:server /Users/xon/cycseq
[server] > node server.js --password p -o 57121 -s 57120
[server]
[client] extramuros: connecting to ws://127.0.0.1:8000...
[client] extramuros: websocket connection ws://127.0.0.1:8000 closed
[client] Tidal/GHCI initialized
[client] Tidal/GHCI initialized
[link] Link server is listening on port 8001
[server] cycseq: listening for OSC on UDP port 57121
[server] cycseq: send osc messages on UDP port 57120
[server] cycseq server, listening on TCP port 8000 (http/WebSockets)
[client] GHCi, version 8.8.4: https://www.haskell.org/ghc/ :? for help
[client]
[client] warning: exception in WebSocket send
[client] GHCi, version 8.8.4: https://www.haskell.org/ghc/ :? for help
[client]
[client] Loaded package environment from /Users/xon/.ghc/x86_64-darwin-8.8.4/environments/default
[client]
[client] Loaded package environment from /Users/xon/.ghc/x86_64-darwin-8.8.4/environments/default
[client]
[client] warning: exception in WebSocket send
[client]
[client] : error:
[client] Could not load module ‘Sound.OSC.FD’
[client] It is a member of the hidden package ‘hosc-0.18.1’.
[client] You can run ‘:set -package hosc’ to expose it.
[client] (Note: this unloads all the modules in the current scope.)
[client] It is a member of the hidden package ‘hosc-0.18.1’.
[client] You can run ‘:set -package hosc’ to expose it.
[client] (Note: this unloads all the modules in the current scope.)
[client]
[client] warning: exception in WebSocket send
[client] PrePrelude> lude> Prelude> Listening for controls on 127.0.0.1:6010
[client]
[client] warning: exception in WebSocket send
[client]
[client] :39:24: error:
[client] Not in scope: ‘O.time’
[client] No module named ‘O’ is imported.
[client]
[client] warning: exception in WebSocket send
[client] *** Exception: Network.Socket.connect: <socket: 17>: does not exist (Connection refused)
[client]
[client] warning: exception in WebSocket send
[client]
[client] : error:
[client] Could not load module ‘Sound.OSC.FD’
[client] It is a member of the hidden package ‘hosc-0.18.1’.
[client] You can run ‘:set -package hosc’ to expose it.
[client]
[client] warning: exception in WebSocket send
[client] (Note: this unloads all the modules in the current scope.)
[client] It is a member of the hidden package ‘hosc-0.18.1’.
[client] You can run ‘:set -package hosc’ to expose it.
[client] (Note: this unloads all the modules in the current scope.)
[client]
[client] warning: exception in WebSocket send
[client] Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| Prelude Sound.Tidal.Context System.IO MV Tempo| tidal> tidal> tidal> tidal> tidal> tidal> Listening for controls on 127.0.0.1:6010
[client]
[client] warning: exception in WebSocket send
[client] Control listen failed. Perhaps there's already another tidal instance listening on that port?
[client]
[client] warning: exception in WebSocket send
[client]
[client]
[client] warning: exception in WebSocket send
[client] :148:24: error:
[client] Not in scope: ‘O.time’
[client] No module named ‘O’ is imported.
[client]
[client] warning: exception in WebSocket send
[client] *** Exception: Network.Socket.connect: <socket: 18>: does not exist (Connection refused)
[client]
[client] warning: exception in WebSocket send
[client] extramuros: connecting to ws://127.0.0.1:8000...
[client] Tidal/GHCI initialized
[client] extramuros: connected to ws://127.0.0.1:8000
[client] tidal> tidal> tidal> tidal> tidal> GHCi, version 8.8.4: https://www.haskell.org/ghc/ :? for help
[client]
[client] Loaded package environment from /Users/xon/.ghc/x86_64-darwin-8.8.4/environments/default
[client]
[client]
[client] : error:
[client] Could not load module ‘Sound.OSC.FD’
[client] It is a member of the hidden package ‘hosc-0.18.1’.
[client]
[client] You can run ‘:set -package hosc’ to expose it.
[client] (Note: this unloads all the modules in the current scope.)
[client] It is a member of the hidden package ‘hosc-0.18.1’.
[client] You can run ‘:set -package hosc’ to expose it.
[client] (Note: this unloads all the modules in the current scope.)
[client]
[client] Prelude> Prelude> Listening for controls on 127.0.0.1:6010
[client]
[client] Control listen failed. Perhaps there's already another tidal instance listening on that port?
[client]
[client]
[client] :39:24: error:
[client] Not in scope: ‘O.time’
[client] No module named ‘O’ is imported.
[client]
[client] *** Exception: Network.Socket.connect: <socket: 14>: does not exist (Connection refused)
[client]

Prelude> import Sound.Tidal.Context
Prelude Sound.Tidal.Context>

So that is an indication that you have a working tidal module.

The GHCI session is establisehd, but the hosc package cannot be found. This is a dependency on Tidal, so it should be there because you have Tidal installed. But because Tidal is installed somehow, it seems to be a problem with the Tidal installation or the paths.

What I would do at this point is set the path to ghcup/bin (so no manual export is necessary), delete the default environment and check the installation:

  1. Add export PATH="$HOME/.ghcup/bin/:$PATH" to the .bash_profile and .zshrc (if available) Hopefully it should then be possible to call ghci in the console.

  2. save the file /Users/xon/.ghc/x86_64-darwin-8.8.4/environments/default to another location and delete it

  3. if ghci is available in the console, then cabal should be too. Enter cabal list tidal. I have it installed with version 1.6.1

  4. if "Installed Version" says [Not installed], then please enter cabal update and then cabal install tidal.

  5. In any case you should have installed hosc if you have tidal. Please check this with cabal list hosc. In my installation it looks like this:

  6. if everything works so far, then try to import Sound.OSC under ghci.

A small note about the log output of CycSeq:
I also see that the output at startup is very large and diffuse. I should make this more user friendly.

Btw. pls remove the duplicated `. $HOME/.ghcup/env' in your .bashrc It should only one.

Hello,

With cabal list tidal, I've got:

(base) xon-5:~ xon$ cabal list tidal

  • maquinitas-tidal
    Synopsis: library for MIDI control of hardware
    Default available version: 0.2.4
    Installed versions: [ Not installed ]
    Homepage: https://github.com/maquinitas/maquinitas-tidal
    License: MIT
  • tidal
    Synopsis: Pattern language for improvised music
    Default available version: 1.6.1
    Installed versions: [ Not installed ]
    Homepage: http://tidalcycles.org/
    License: GPL-3
  • tidal-midi
    Synopsis: MIDI support for tidal
    Default available version: 0.9.10
    Installed versions: [ Not installed ]
    Homepage: http://tidal.lurk.org/
    License: GPL-3
  • tidal-serial
    Synopsis: Serial support for tidal
    Default available version: 0.8
    Installed versions: [ Not installed ]
    Homepage: http://tidalcycles.org/
    License: GPL-3
  • tidal-vis
    Synopsis: Visual rendering for Tidal patterns and osc messages
    Default available version: 1.0.15
    Installed versions: [ Not installed ]
    Homepage: http://yaxu.org/tidal/
    License: GPL-3

What I do not understand is that nothing seems installed, whereas I followed Tidal setup instructions...
Anyway, so I did cabal install tidal, But I've got:

(base) xon-5:~ xon$ cabal install tidal
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: tidal. Perhaps you want to use --lib to install libraries instead.

I've tried also by adding --lib, nothing seems installed after...

With cabal list hosc, I've got:

(base) xon-5:~ xon$ cabal list hosc

  • hosc
    Synopsis: Haskell Open Sound Control
    Default available version: 0.18.1
    Installed versions: [ Not installed ]
    Homepage: http://rohandrape.net/t/hosc
    License: GPL-3
  • hosc-json
    Synopsis: Haskell Open Sound Control JSON Serialisation
    Default available version: 0.16
    Installed versions: [ Not installed ]
    Homepage: http://rd.slavepianos.org/t/hosc-json
    License: GPL
  • hosc-utils
    Synopsis: Haskell Open Sound Control Utilities
    Default available version: 0.15
    Installed versions: [ Unknown ]
    Homepage: http://rd.slavepianos.org/?t=hosc-utils
    License: GPL

I'm a bit confused about what is happening here. @yaxu could you please help us?
@Xon has an installation issue and I can't get any further at this point. He tried the installation with tidal-bootstrap and a manual installation too, but cabal says that tidal wasn't installed.

Yes cabal is gets confused very easily :confused:

@xon If cabal install tidal --lib isn't working you could try cabal v1-install tidal

You might need to remove the hidden .ghc and .cabal files in your home folder.

Thanks @yaxu!

I removed the hidden .ghc and .cabal files.
I did cabal update and then cabal v1-install tidal.

And now, I've got with cabal list tidal:

  • tidal
    Synopsis: Pattern language for improvised music
    Default available version: 1.6.1
    Installed versions: 1.6.1
    Homepage: http://tidalcycles.org/
    License: GPL-3
  • tidal-midi
    Synopsis: MIDI support for tidal
    Default available version: 0.9.10
    Installed versions: [ Not installed ]
    Homepage: http://tidal.lurk.org/
    License: GPL-3
  • tidal-serial
    Synopsis: Serial support for tidal
    Default available version: 0.8
    Installed versions: [ Not installed ]
    Homepage: http://tidalcycles.org/
    License: GPL-3
  • tidal-vis
    Synopsis: Visual rendering for Tidal patterns and osc messages
    Default available version: 1.0.15
    Installed versions: [ Not installed ]
    Homepage: http://yaxu.org/tidal/
    License: GPL-3

So, thanks to cabal v1-install tidal, Tidal is installed, whereas it was mentioned it was not installed with cabal install tidal --lib. do not know why?
I do also not know why e.g. tidal-midi is mentioned as not installed ?, (midi support is important to me)

Concerning cabal list hosc, I've got:

(base) xon-5:~ xon$ cabal list hosc

  • hosc
    Synopsis: Haskell Open Sound Control
    Default available version: 0.18.1
    Installed versions: 0.18.1
    Homepage: http://rohandrape.net/t/hosc
    License: GPL-3
  • hosc-json
    Synopsis: Haskell Open Sound Control JSON Serialisation
    Default available version: 0.16
    Installed versions: [ Not installed ]
    Homepage: http://rd.slavepianos.org/t/hosc-json
    License: GPL

So hoc is installed now and import Sound.OSC under ghci works.
But still, I have the same kind of error message I mentioned before when I do npm start.
@mrreason, I can send you the complete error message if you want.

[client] *** Exception: Network.Socket.connect: <socket: 14>: does not exist (Connection refused)
[client]

Also, now, when I launch Atom and boot Tidal, I've got:

Choose ghcup default path: /Users/xon/.ghcup/bin
Ghci command: /Users/xon/.ghcup/bin/ghci
Ghc-pkg command: /Users/xon/.ghcup/bin/ghc-pkg

And if evaluate a line, I've got some sound, but it is printed:

Load BootTidal.hs from /Users/xon/.cabal/share/x86_64-osx-ghc-8.8.4/tidal-1.6.1/BootTidal.hs
t>
t>
t>Listening for controls on 127.0.0.1:6010 Control listen failed. Perhaps there's already another tidal instance listening on that port?

When I first installed Tidal, it seems to me, I had not all these lines printed and Tidal was booting directly...

But it looks like Tidal is now correctly installed. One thing I have to mention first: you can only use one editor at a time. That means you can only use either Atom or CycSeq. But the problem might also occur if you want to use VSCode or Atom in parallel. The error messages in CycSeq are not nice yet, I will fix that, but can you call localhost:8000 in your browser and enter tidal code in a text field and evaluate it with Shift-Enter?

Good news by the way:
I have implemented an OSC control in the meantime. With SuperCollider you can also send MIDI signals with it. I documented it in the README of the GitHub project.

As far as I can tell, haskell is transitioning between one version of cabal and another, and a lot is broken in the new version..

Ignore that tidal-midi module, it no longer works. These days, all midi is done via superdirt.

In theory, there should be no problem at all with multiple versions of tidal running. In practice, I think the time sync might be broken.. I need to look at that.

Atom prints out some extra diagnostic information these days, but if it works there's nothing to worry about.

1 Like

Thanks @yaxu & @mrreason,

BTW, CycSeq and Atom can work in parallel independently, i.e. SC generates synths from messages from both CycSeq and Atom. So, you can have 2 tracks d1 running in parallel.
I cannot see a goal to do that, but just a simple remark.

@mrreason, CycSeq works great, and I have several comments / questions:

  1. When I call localhost:8000 in my browser, I've got no Link (Link showed).
    I've tried sock <- carabiner tidal 4 (0) in the terminal in order to synchronize Tidal & CycSeq, but 1 Link is not showed in the upper left ?
    I've got 1 Link only when I evaluate l = LinkClock(1).latency_(Server.default.latency); in SC, which is intended for the synchronization with SC also.
    But, how to get 1 Link when I call localhost:8000 in the browser directly ?
    Shouldn't I see 2 Link in CycSeq when Tidal, CycSeq and SC are all synchronized ?

  2. What is the use for the box 4,8, right to 1/4 ?

  3. What is the use for the arrows, right to the slider ?

  4. When I load a custom json.file, the textbook at the right is not updated with the corresponding filename in my case.

  5. The figures for each parameter / box of the editor could be showed, at the left, above or below the play arrow of each box. It would be practical to know which box to trigger e.g. via SC or midi.
    If so, The figures should be obviously updated if you add or delete a box.

  6. Concerning OSC messages to Cycseq and MIDI support through SC, thanks a lot for that.
    By changing the parameter of the editor via SC, I've noticed several late messages in SC. I don't know why yet ?

  7. I find your sequencer of code great. But it would be my dream sequencer if it could be a little bit more modular in the same way as the session view in Ableton Live.
    There could be an option where each track (d1, d2...) could be in different tabs. And that's already possible by opening several tabs in the browser. But in that case, the different editors should be identified differently in OSC in order to control a different parameter for each editor, e.g.:
    ~cycseqOSC.sendMsg("/cycseq/editor1", 1);
    ~cycseqOSC.sendMsg("/cycseq/editor2", 2);
    If this OSC identification could be implemented, it would be great.

  8. There could be also a different kind of visualisation, showing different tabs in the same page, like the 1st image in this post:
    https://club.tidalcycles.org/t/live-workflow-and-mixing-eq-options/2026
    But, it requires in-depth reflection, a lot more work to develop and I am not sure it is better, practical...

Many Thanks for all,

Christophe

Great to hear that everything works now and thanks for the hint with the parallel editors!

To your questions/comments:

  1. You need to use carabiner, for the time synchronisation. TidalCycles has its own clock and runs independently of the SuperCollider clock. Unfortunately there is currently no direct implementation of Ableton Link in TidalCycles. But if you use LinkClock(1).latency_(Server.default.latency); in SuperCollider and carabiner was started, you can change the speed in SuperCollider

  2. It is the trigger point within the beat. Unfortunately not all values works (like 1). I originally used this to adjust latencies. But in the meantime I don't need the offset anymore.

  3. If this is activated, the sequence will be looped, otherwise hush is sent after the last editor is reached.

  4. This is a standard HTML element that is difficult to customize directly, so I was just lazy. But there are workarounds and I will adapt them. I think that it should simply be a button without a text field.

  5. I think this is a philosophica question. I like it when the ui doesn't look too overloaded. But I could add a button that shows all addresses optionally. Basically, the addresses are also adjusted when adding and deleting editors.

  6. I can't explain that right now, but see if that disappears when you have successfully set up AbletonLink.

  7. I had the same idea at the very beginning, but I think that it becomes too confusing in a live-coding context. But I can imagine that it is practical to compose locally with TidalCycles, if you use it as a generative tool. I can imagine a mixture of Ableton's Session View and the Cells view, with external controls and multiple sequencer. I would consider this as a standalone view and keep the current one (so you can switch).

  8. I have activated the Issues tab on the GitHub project page. We could discuss something like that directly there.

Basically I would prefer, when we discuss feature topics on GitHub. Questions and problems can still be discussed here at TidalClub.