I’m looking to find a workflow where I can keep a record of the code that I evaluate when improvising in a session. That way I can noodle around, then go back over the code, pick and choose the nice bits, clean it up, sequence it musically and try to arrange a track.
Anyone have any suggestions for a workflow like this? Currently I’m using atom-tidal on macOS. So far, I’m thinking that I might be able to do this using the Git-Plus package and some key bindings, but I was curious if anyone had some other ideas.
On Linux there is a command called 'script' that allows you to record a shell session to a file.
The idea is: run script, it gives you back a shell where everything you do is recorded. So I guess you could start ghci inside it and start doing tidal stuff ...
Edit: if it works you would have to modify atom-tidal so it wraps ghci into script
In emacs there is undo-tree mode. You can configure it to automatically save that history so every edit is saved. I think it is inspired by something in vim.
In feedforward it not only records every keypress but does it with an accurate timestamp. This is currently only used for replaying a previous session, rather than making it editable though.
Speaking of undo-tree, I should probably share this code. You can assign a command in Emacs to make trackpad scroll up/down browse undo-tree back/forward and then eval the code when it stops scrolling, essentially giving you a form of code turntablism: