Tidal is a mini-language embedded in Haskell, for theΒ live coding of pattern.
The website for Tidal has now moved to http://tidal.lurk.org/
Making music with text[ure]
Tidal is a mini-language embedded in Haskell, for theΒ live coding of pattern.
The website for Tidal has now moved to http://tidal.lurk.org/
This work is really great, I’m going to try installing it right now!
Step 1: 403 Forbidden for datadirt π
Oops, fixed..
Tidal really looks great, especially because it’s pattern based.
I have a problem installing it with cabal anyway: when trying to compile SHA package (which is a websockets dependency) cabal gets an Exit 9, or out of memory error. Enhancing the swap, it jut gets stuck there. I’m on a MacOSX VM running crunchbang linux (I think it’s a debian derivation) …
Hi Matt,
My guess is that you haven’t given the VM enough memory. I’d give crunchbang at least 512M, preferably 1024M.
cheers
alex
the github link is broken!
Hmm yes, a problem with github itself, hopefully they’ll fix it soon.
yep, now it’s ok!
but when trying to install dirt via brew it says that there’s no available formula for ‘dirt’. is it changed?
I don’t know, I made the software but someone else kindly did the homebrew package (I don’t have a mac).. But in the last day I’ve found out that the homebrew package for dirt doesn’t include samples. So best to install from github anyway.
So instead of ‘brew install dirt’ try this:
brew install liblo
brew install jack
git clone https://github.com/yaxu/Dirt.git
cd Dirt
make clean; make
brew install dirt
Then start dirt like this:
./dirt &
update. now it works!
Tidal first timer here – it may be obvious to most but is there an easier way to stop all audio output? [other than by completely killing tidal within emacs (Ctl-C, Ctl-Q) – which is what I’ve been doing]
Hi Thomas,
Oops, I’ve just checked and this is a major omission in the documentation!
If you evaluate the word
hush
(i.e. put it on a line of its own and do ctrl-c ctrl-c), then all the patterns go silent.If you just want to stop a single pattern then you can just set it to the empty pattern
silence
, e.g.:d1 silence
Tidal and live coder first timer here : sorry I’m not fluent in English. I work OSX Mavericks. I follow the instructions to install Tidal but i’ve some problems
I would like to starts Jack in my Terminal windows :
“JACK compiled with POSIX SHM support.
`default’ server already active”
After i would like to start Dirt :
init audio
unique name `dirt-01′ assigned
engine sample rate: 44100
init open sound control
liblo server error 9904 in path (null): cannot find free port
cannot read event response from client [dirt-01] (Undefined error: 0)
[3]+ Exit 1 jackd -d coreaudio
Segmentation fault: 11
Then i return to Emacs do C-c C-s :
Can’t exec program: /usr/bin/ghci
Process tidal exited abnormally with code 1
PLEASE HELP ME !!!!!
Hi Grom,
It looks to me like dirt is already running. So maybe that part is OK?
It looks like you set the path to the haskell interpreter to “/usr/bin/ghci” in your .emacs file. There may be no reason to do that. Try deleting that line and restarting emacs.
Hope this helps, any problems let me know
alex
Ok Alex thanks for this helps :
Dirt > ok
Jack > ok
In your instructions :
” Then back in emacs, open a file called something ending with .tidal, such as test.tidal”
Dawn .. Where is this file ?
Hey Grom, it means create a new, empty file.
alex
Iback in emacs, create and open a file called something ending with .tidal, such as test.tidal >
“Then you start up tidal, by doing ctrl-c followed by ctrl-s”
C-c C-c > is undefined
π
C-c C-s > undefined too
Hey Grom,
Sorry about these problems. I think there must be some problem with OSX Mavericks.
I’m travelling for a few days but if you drop me a line (to alex@slab.org) maybe we can arrange a screen-sharing session to get this fixed quickly when I get back.
Cheers
alex
Out of curiosity, is Tidal fundamentally incompatible with Windows? Or is it not mentioned in the installation info just because, say, you can’t test it because you don’t have a Windows machine, or some other reason?
Mahlen
Tidal should be fine, but the dirt synth would need porting over.. Easiest way would be to use portaudio.. I don’t use windows but happy to accept patches.
got that “c-s c-c” error too. im running a fresh ubuntu 13.10, so it shouldnt be about the os. plz tell me how to fix
ah okay, got it. i read the emacs part wrong and didnt create a config file, but a folder named .emacs containing a config file. sorry! working fine now
On Ubuntu 13.10. Followed everything, getting C-c C-s as undefined in emacs. Is there anything I should double check before getting concerned? When I do both the code you have linked at the beginning as well as following each step in the terminal everything comes out fine and seems updated/installed, the .emacs config file is set up properly (I believe…)
Hm, are you opening a file that ends in .tidal, e.g. helloworld.tidal ?
Otherwise, any error messages when emacs starts up?
I did a fresh install and it works! Now when I try to play anything (for instance, d1 $ sound “bd”) I get the response “tidal> oops send: does not exist (Connection refused)”
I saw in a twitter discussion you had with someone about checking haskell/tidal mode, its not that. I’m thinking jack audio didn’t get set up properly…
This sounds like the Tidal side is working fine, but dirt is not running. So yes, make sure jack is installed OK, and also that dirt compiled fine, and that you started it up ok. You are close..
I didn’t think going from Mint to Ubuntu would be that hard, but I also might be an idiot, so …? Here is where I am at: Everything is loaded and installed 100%. When I get into emacs and interact with dirt, it is accepted. In my terminal I get this message:
@l:~/Dirt$ opening ./samples/bd/BT0A0A7.wav
count: 12554 frames: 12554 channels: 1
: Success
No sound whatsoever. If I stop qjackctl with the algorithm running I get send error messages, so I know emacs and Tidal are running to JACK. I had this set up on a desktop with a music production-oriented sound card, I think the issue is in this switch to ubuntu and a laptop with a cheap soundcard. It might even be integrated, Lenovo’s website just says “dolby”. Where would this schism be …
Yes this sounds promising, apart from the no sound part.
Perhaps it isn’t turned up. The mixer control you see in ubuntu might be a high level pulseaudio control, and qjackctl is probably going closer to the metal, to alsa. So you could try running alsamixer, gnome-alsamixer or something like that to make sure it’s turned up.
You could also have a look at the ‘setup’ menu in qjackctl. Next to ‘interface’ there should be a button with a “>” symbol. Press it and make sure the right device is selected, i.e. not a hdmi connection or something.
Not sure what else to suggest..
Hi Alex
I’m getting C-c C-c > is undefined too in emacs. What was the solution to the above?
Chris
Hey Chris,
Good that you’re installing tidal!
There’s a few things that can go wrong unfortunately. Do you get any error messages or suspicious warnings when tidal starts?
There’s a success story here that might be helpful in fixing this or isolating the problem..
http://lurk.org/groups/tidal/messages/topic/6jBgOv5YnL231N1R3RWNHe/
cheers alex
Hi Alex
Apologies, I’ve got it working! The tidal.el file within my tidal folder was empty, it must have failed to download. I copied your example in, reloaded and it’s fine.
Cheers
Chris
Thanks Chris,
You’re the second person with this problem, there must be something wrong with the instructions.. Will get someone to fix it (I don’t have a mac)
have fun,
Thank you, Alex, for this great project.
I have some improvement suggestions for the documentation. Where do I direct them?
E.g.:
I’d replace this:
This is a different way of specifying a polyrhythm. Instead of both parts taking up the same amount of time, each event within the second part takes up the same amount of time as the second part. You can embed these different forms inside each other:
By this:
This is a different way of specifying a polyrhythm. Instead of both parts taking up the same amount of time, each event within the second part takes up the same amount of time as one (top-level) event in the first part. You can embed these different forms inside each other:
Hi Bernhard,
Documentation edits are very welcome!
If you are reading it here, and are logged into github, you should see an ‘edit’ button.
https://github.com/yaxu/Tidal/blob/master/doc/tidal.md
I’m not sure exactly how this process works, it seems this edit button ‘forks’ the repository so you can make your changes and then send them back to the original repository via a ‘pull request’. I don’t know the extent to which this is automated..
Cheers
I have installed all things and, you know, it’s really great thing! Thank you very much for such great work π
The link to Mike Holdrick’s tutorial on beat slicing is giving me a 404 (no pun intended) error.
Hi Alex,
I have this problem with Dirt on Ubuntu 14.04
when I try
> make clean; make
I got this:
rm -f *.o *~ dirt dirt-analyse
gcc -g -I/usr/local/include -Wall -O3 -std=gnu99 -DJACK -DSCALEPAN -c -o dirt.o dirt.c
Mensajes del ensamblador:
Error fatal: no se puede crear dirt.o: Permiso denegado
make: *** [dirt.o] Error 1
Ok, I just had a litle problem with permissions
(the owner was root)
it works!!!
and it’s great!
Forgive the Noob question…is it possible to see the SuperCollider outputs for any given Tidal input? Suppose I execute the following expression:
d2 $ every 8 (density 2) $ every 4 (rev) $ (sound “bd*16”) # gain saw1
Is there some way I can see what Tidal passes to sc for this expression?
Hi Leonard,
Best to ask questions on http://ask.tidalcycles.org/ or the mailing list or slack channel linked here: http://tidalcycles.org/community.html
The quick answer is if you remove the “d2 $” bit you will see the output. This could be better though, so deserves a longer answer!
Sorry about the delay replying. I’ve been up to my eyes with another project. Thanks for taking the time to respond Alex. I really appreciate it! Tidal is great and I want to learn as much as I possibly can about both Tidal and SuperCollider. Keep up the great work!