Hi @nuelmyr
[edit] it was a clean install - sorry I misread
My recommendation, nuke some of the install directories in your $HOME - eg:
mv .cabal .config/SuperCollider .local/share/SuperCollider .ghc /tmp/
and try again
Hi @nuelmyr
[edit] it was a clean install - sorry I misread
My recommendation, nuke some of the install directories in your $HOME - eg:
mv .cabal .config/SuperCollider .local/share/SuperCollider .ghc /tmp/
and try again
Thanks @cleary and @yaxu for your support. In the end after tweaking and trying to reinstall and update ghci I finally succeeded. Don't ask me how please! This moment when there is no more error message in the system and the sound comes out of the speakers ... Wow!!! Everything is so amazing then and the whole frustrating process before is forgotten.
But to be honest: a lot a people who are interested in making music and sounds will not have the frustration tolerance to keep on twiddling until it works. Choco and ansible are the right ways to make this installation process smoother and easier for us who are NOT software engineers and developers. I appreciate your work!! Thanks again for supporting.
Thanks so much for this! I resurrected my old 2010 Macbook pro and chucked Ubuntu Studio on it, and this method worked a damn treat, though with SC3.10. I gotta update that at some stage, but eh.
you're welcome! thanks for the feedback - I've been studiously procrastinating about my todo list for that repo... will spend some time on it next week though, promise
Side note, did you make use of the custom sample definitions option in vars/all.yml file?
Another feature I'm thinking about looking at is adding custom synth defs for sc in there too, so curious to know if even the basic functionality is being used at all
update for today:
SuperCollider will now handle being installed in a headless environment -
The default sc in the ubuntu repos has been compiled with QT support, and that includes an execution dependency, even when running sclang from the commandline.
There are builds that do not include the QT dependency, but I'm working off the standard ubuntu repos, so I've worked around it by running an xvfb (virtual framebuffer) on DISPLAY=:99 which will allow sclang to execute.
For my personal requirements, I'm gradually working towards including the ability to execute ansible unit testing via molecule in a headless CI environment - however, if you are on a low resource usage device, you could now feasibly run tidal without your X server using vim + headless supercollider.
I'm currently turning xvfb off after my testing, but let me know if there's interest and I'll consider leaving it in -
Commit here:
updates from this morning:
Now that I can do (somewhat automated) testing in vagrant, I did!
I tested the tidal/supercollider (no editor) role on:
@yaxu, my next plan is to make use of the github continuous integration testing features, which will be able to give me/us feedback on which distros work, and which don't - in a quick and easy way, which could then translate to a simple recommended distro list on your install page:
[edit] resolution to the below issue in this thread
For starters, mint 19.3 fails to install tidal with the following hosc compile error:
Building hosc-0.18...
Preprocessing library hosc-0.18...
[ 1 of 18] Compiling Sound.OSC.Wait ( Sound/OSC/Wait.hs, dist/build/Sound/OSC/Wait.o )
[ 2 of 18] Compiling Sound.OSC.Coding.Convert ( Sound/OSC/Coding/Convert.hs, dist/build/Sound/OSC/Coding/Convert.o )
[ 3 of 18] Compiling Sound.OSC.Time ( Sound/OSC/Time.hs, dist/build/Sound/OSC/Time.o )
[ 4 of 18] Compiling Sound.OSC.Datum ( Sound/OSC/Datum.hs, dist/build/Sound/OSC/Datum.o )
[ 5 of 18] Compiling Sound.OSC.Packet ( Sound/OSC/Packet.hs, dist/build/Sound/OSC/Packet.o )
[ 6 of 18] Compiling Sound.OSC.Transport.FD ( Sound/OSC/Transport/FD.hs, dist/build/Sound/OSC/Transport/FD.o )
[ 7 of 18] Compiling Sound.OSC.Transport.Monad ( Sound/OSC/Transport/Monad.hs, dist/build/Sound/OSC/Transport/Monad.o )
[ 8 of 18] Compiling Sound.OSC.Coding.Cast ( Sound/OSC/Coding/Cast.hs, dist/build/Sound/OSC/Coding/Cast.o )
[ 9 of 18] Compiling Sound.OSC.Coding.Byte ( Sound/OSC/Coding/Byte.hs, dist/build/Sound/OSC/Coding/Byte.o )
[10 of 18] Compiling Sound.OSC.Coding.Decode.Base ( Sound/OSC/Coding/Decode/Base.hs, dist/build/Sound/OSC/Coding/Decode/Base.o )
[11 of 18] Compiling Sound.OSC.Coding.Decode.Binary ( Sound/OSC/Coding/Decode/Binary.hs, dist/build/Sound/OSC/Coding/Decode/Binary.o )
[12 of 18] Compiling Sound.OSC.Coding.Encode.Base ( Sound/OSC/Coding/Encode/Base.hs, dist/build/Sound/OSC/Coding/Encode/Base.o )
[13 of 18] Compiling Sound.OSC.Coding.Encode.Builder ( Sound/OSC/Coding/Encode/Builder.hs, dist/build/Sound/OSC/Coding/Encode/Builder.o )
Sound/OSC/Coding/Encode/Builder.hs:33:36: error:
• Variable not in scope:
(<>) :: B.Builder -> B.Builder -> B.Builder
• Perhaps you meant one of these:
‘<$>’ (imported from Prelude), ‘*>’ (imported from Prelude),
‘<$’ (imported from Prelude)
Sound/OSC/Coding/Encode/Builder.hs:37:33: error:
• Variable not in scope:
(<>) :: B.Builder -> B.Builder -> B.Builder
• Perhaps you meant one of these:
‘<$>’ (imported from Prelude), ‘*>’ (imported from Prelude),
‘<$’ (imported from Prelude)
Sound/OSC/Coding/Encode/Builder.hs:42:55: error:
• Variable not in scope: (<>) :: B.Builder -> B.Builder -> t0
• Perhaps you meant one of these:
‘<$>’ (imported from Prelude), ‘*>’ (imported from Prelude),
‘<$’ (imported from Prelude)
Sound/OSC/Coding/Encode/Builder.hs:43:26: error:
• Variable not in scope: (<>) :: t0 -> B.Builder -> B.Builder
• Perhaps you meant one of these:
‘<$>’ (imported from Prelude), ‘*>’ (imported from Prelude),
‘<$’ (imported from Prelude)
cabal: Leaving directory '/tmp/cabal-tmp-14650/hosc-0.18'
Building vector-0.12.1.2...
Installed distributive-0.6.2
Downloading comonad-5.0.6...
Configuring comonad-5.0.6...
Building comonad-5.0.6...
Installed comonad-5.0.6
Downloading bifunctors-5.5.7...
Configuring bifunctors-5.5.7...
Building bifunctors-5.5.7...
Installed bifunctors-5.5.7
Installed vector-0.12.1.2
cabal: Error: some packages failed to install:
hosc-0.18 failed during the building phase. The exception was:
ExitFailure 1
tidal-1.6.0 depends on hosc-0.18 which failed to install.
more updates - I've been thinking about how to quickly patch/workaround issues like hosc error above - I think injecting a specific .yml where it needed to go is a clean way to insert (and remove when required) way around it:
Having this patched meant I could test/verify some more distros - confirmed working on the tidal/supercollider role (editors still todo):
Failed/unsupported:
Todo:
Update for today:
Todo:
updates for the last couple of days:
I spent quite a lot of time on it this week, and in the end it doesn't look like a lot got done, but
include_task:
module calls to the legacy include:
to support the older distros (after going on a wild goose chase with python and virtualenv/ansible via pip)I'm comfortable with the way the testing is done now, I'm confident of the outcome on the supported distros, so I can get down to adding features again I think (or making music, which I have not been doing this last week!)
just tried here on kubuntu 20.04
(minimal install + ubuntu studio installer for lowlatency kernel)
using
sudo ansible-playbook --connection=local -i localhost, tidal_feedforward.play.yml
worked ok, can use feedfoward (need to learn it yet!)
but supercollider installed is version 3.10.0 --
how can i upgrade it to 3.11.0?
Hey thanks for the feedback - this method only uses the supercollider version available in the standard ubuntu repositories - at this stage I'm not planning to support non-repo versions (it's already relatively tricky to do a repeatable/supportable/error managed superdirt install without adding variations to the supercollider stack as well) -
There was a supercollider ppa for ubuntu (https://launchpad.net/~supercollider/+archive/ubuntu/ppa) which has since gotten stale, but if you were to contact the team/express interest/raise a bug requesting an update they may be open to resuscitating the repo?
Failing that, I guess it'll probably be a build from source (I can't help you there I'm afraid).
thx cleary
i manage to install on another laptop with similar config here with sc 3.11.0
(kubuntu 20.04 minimal install + ubuntu studio installer for lowlatency kernel)
i made a startup.scd backup before and it keep my 3.11 install
-- i am a regular sc user and prefer to build myself
now i am planning to use vim for tidal and supercollider
(because there is more info/support about them + snippets + headless possibilities + not so sluggish as atom!)
and was thinking about using ansible-vim:
your install uses vim-nox, and people from sc uses more neovim as
with snippets and docs support
so my question is if is to much trouble to use neovim editor on ansible-vim?
to have more people and support on sc side?
thx in advance!!!
Hi @igormpc,
I'm not familiar with the differences between neovim and vim (nox being a slight variant) -
short answer is, I'll look into it - anything you can give me as to shortcut my learning will be helpful though, ie the setup steps you use to get neovim communicating with tidal
[edit] ok, I had to rebuild my workstation at work so I took the opportunity to have a look at using neovim instead, it looks like it'll be a trivial changeover (uses standard .vimrc syntax, although in a diff location, uses VimPlug etc).
I will do some changes/building/testing in ansible in the next few days
ok I spent a little time on this tonight, just trying to get a running configuration.
Since neovim does not require tmux, I'd like to take that dependency out - however, the example tidalvim startup script only caters for tmux usage, and I'm at a bit of a loss as to how to make it start tidal shell + editor window inside neovim (with bindings that send appropriately etc).
Do you have an example of how you do it?
Side note, I noticed @munshkr is the author of vim-tidal - are you able to point me in the right direction too (and ps I really enjoyed your new moon set!)?
Thanks!
minor general update - I haven't done anything on this repo for over a month now, instead I've been getting used to using it for maintenance and updates.
I keep a custom vars/all.yml
file with various different sample sets listed:
custom_sample_paths: [ "/home/bernie/Music/Samples/Holding_Hands",
"/home/bernie/Music/Samples/jamie-lidell-iso",
"/home/bernie/Music/Samples/Reverb",
"/home/bernie/Music/Samples/samples-extra",
"/home/bernie/Music/Samples/just_kiddink",
"/home/bernie/Music/Samples/pres_sample_pack"
]
when I get a new one, I append to the list, and run the playbook again - this is actually the only thing I've needed to run it for the last little while and it was annoying having to run through the entire set of tasks each time, so I made an update:
I've added the use of ansible tags
so I could bypass running all the other tasks and just update my config:
sudo ansible-playbook --connection=local -i localhost, \
tidal_vscode.play.yml --tags "config"
I realise that many people probably customise their configs heavily too, so this also conveniently allows you to run through all the tasks except the config writing now using --skip-tags
:
sudo ansible-playbook --connection=local -i localhost, \
tidal_vscode.play.yml --skip-tags "config"
Hi! Did you try the instructions at NeoVim Terminal Target? Sorry if the documentation is a bit confusing. This feature was added by a contributor and I'm not really using the "terminal" mode right now, but I remember those steps used to work.
Thanks @munshkr! I guess the confusing part was trying to work out how to get the two communicating - I did follow the instructions as listed, but had not attempted to interpret a line of tidal code (which then brought up the tidal window).
It seems to be dependent on the .tidal
extension being present on the filename too, is that correct?
PS I've just created a pull request with the information I was missing included in the README - thanks again for getting back to me
Yes, the Tidal commands on Vim and the default bindings for evaluation are only available on buffers of filetype tidal
. You can either open a file with a .tidal
extension, or manually set the filetype with the :set filetype=tidal
command on your open buffer.
Thanks! I've just merged it
@munshkr @igormpc I've begun the neovim ansible role, and I'm getting close - maybe you guys can help me with what I hope is the last hurdle - the keybindings:
I can currently send the tidal commands with <C-e>
no probs, but the hush keybinding <C-h>
does not work... I'm not familiar enough with vim plugins or keybinding management to understand why one works and not the other - do you know what's gone wrong?