joepvanlier / hackey-trackey Goto Github PK
View Code? Open in Web Editor NEWA LUA tracker plugin for REAPER 5.x and up. Designed to mimick the pattern editor in Jeskola Buzz.
License: MIT License
A LUA tracker plugin for REAPER 5.x and up. Designed to mimick the pattern editor in Jeskola Buzz.
License: MIT License
You have sound/line you like, want to copy it a few more times in same phase position within the bar, this command would help.
There could be two variants:
a) duplicates only cell
b) duplicates entire row/line <-- this would be very practical, together with automation values
The main idea here is duplication happens to 4 lines further position. Same as copy row, go 4 lines further, paste row.
Not sure if this is possible at all. Holding control, clicking a few cells to select them, there could be also spaces between selected cells, this is the big difference. Then to be used with shift-numpad+- for shifting the values of selected cells.
Creating a script to set up a multi-instrument instance of HT.
Changes in Hackey Trackey:
New creation script:
3. Create new track.
4. Identify tracks selected by user and map columns to send to these tracks.
5. Start Hackey Trackey.
Pitfalls:
Not sure if this would be possible.
I edit some pattern in hackey-trackey, changing various fx settings to my taste. So far so good.
Later in Reaper's arrange I use trim/read on the previously entered automation values, to fine tune it to a better result. Now it would be cool, if hackey trackey would be able to update all its previous values to the newly trimmed results. Or is this already possible? I guess this is not possible now, in v1.78.
Please add tab to next note column (& shift-tab to previous note column.)
It would be cool if we could select ranges using shift-mousewheel.
Left hand would sit almost permanently on left shift, right hand doing mousewheel for quick range selections. Then shift-numpad+- for range modifications.
bad argument to format, number expected got nil
Not sure what is causing this. Maybe a restart of computer will help, as in Windows XP days. :)
This error appeared today first time, after I played around with automation items, in other projects. Closed Reaper, restarted, reinstalled hackey-trackey and this error always appears now, strange thing.
Is this behaviour normal? Or would it make more sense mapping 00..FF to min..max of that envelope?
Interesting would be following two column method.
column A: 00..FF mapped to min..max
column B: shape for step, using some shape as default
Thus we could cover entire min..max range, plus in the second column we could define the transition form or the shape. Best of both worlds, using two tracker columns.
Actual: Window undocks and the help appears
Expected: Window remains docked and the help appears
What helped then was, ctrl-alt-f1, pkill reaper
Then in config, after setting scaleActive = 0
brought back normal behaviour again. So never use F9 again. :)
Add shortcut to switch to currently selected or currently playing media item.
Have to check whether this is feasible. Might be good to name/number the patterns and make a dropdown in hackey trackey.
Multi-column delete seems to not always be working.
Tracker seems to only be able to pan left.
Sometimes, short MIDI notes appear in a MIDI item. They then lead to a remapping of some of the MIDI data which can be annoying.
I'm not sure what causes the behaviour as I have not found a consistent way to reproduce it yet. I am not even certain that hackey trackey is causing it, but if anyone runs into this, any suggestions on how to reproduce it would be greatly appreciated.
Would it be possible to add a note delay column or would that be really hard in this context? (Would make lowering resolution less destructive too)
Buzz lets you both:
Two people on Facebook suggested adding this,
Mouse position is available in the Reaper API
Or can we do this already? I wrote my changes in the forum, but somehow this keyset does not exist in the program yet. Most flexible would be if there would be a text file which I can edit, and this would be loaded as last, overwriting any previous definitions, so I can be sure my definitions are used.
I am using mainly defaul keyset, plus those F9..F12 from renoise keyset, moving the original ones to ctrl-F9..F12. Plus a few more modifications I had. But before going further with this, I should be sure my changes are not lost after next update.
That would bring entire Reaper action/custom action world into hackey trackey itself.
It could be implemented as a 5. column in keyset definitions, beside CTRL, ALT, SHIFT, Keycode would be additionally 'Action' where you would write the action id. Wow, such a simple and powerful design that would be. All midi editor actions could be used in hackey trackey. In hackey patterns all arrange actions could be used.
Add a system to copy/cut/paste blocks. Would aid workflow.
Most times if I duplicate a pattern, I want to move and edit there as well. So this step could happen automatically.
Add persistent user configuration to set theme / keyboard layout and such.
Could use something like https://github.com/hipe/lua-table-persistence to store the tables.
Add a green-ish hackey theme with interlacing.
Make sure the undo functionality works consistently.
Envelopes still have no undo system.
Defining a block between current cell position and right clicked mouse button. Imagine the emacs behaviour with the mouse, from point (current cell here) to right click, selecting a range. Same principle here. Simple, direct, powerful.
Add ability to place loop start and stop positions from tracker. Also add shortcut for simply looping current pattern.
Then we could save screensets where on the left is the normal midi editor, on the right
(a) hackey trackey
(b) hackey patterns
With enter you would jump between trackey <> patterns on the right, the left side staying same, for example.
Investigate possibility to add Hackey Trackey to menu's
CC column is useful, but can only display one at a time. Perhaps it should show one for each CC that has data (with a shortcut to add another for) or just whichever are selected in reapers normal editor.
FF would give max probability = 1, triggering always
00 would give min probability = 0, triggering never
values inbetween triggering sometimes, the higher the more often, but not always, also not never
This is called trig conditions in some elektron devices. With this method even a single pattern can contain some form of variation in itself, without having to create all those variations, the algorithm of probability would do this for us. We would only tell which cells get which probability. For example in the last beat steps, we would add some extreme sounds, with a probability of 1/3 maybe. If it triggers once, next two times it should not trigger.
Select a few cells, trigger randomize. shift-r could be the key binding, as ctrl-r is already used for record.
Following scenario, 1 bar music, with 16 lines/steps per bar, in each line we have a note, thus there are 16 * 16th notes. All 16 notes are in 1. column.
Now, hitting something following 4 columns would be created:
Or do we have this command already?
Why is this practical? Basically this 4 column spread allows us processing (selecting and shift-numpad +/-) specific phases within the bar. 1. column: on beat positions, 3. column: off beat positions, 2. column: e positions, 4. column: a positions)
Create shortcut to perform pattern duplication from the tracker.
To be able to do more interesting variable routing, add a shortcut to automatically add all send channel volumes as FX tracks.
I'm not sure if I should put what may be just a user error into an issue but I thought it may help.
Subject says it all, this image also shows the issue:
A separate question is that I tried out Volume automation and FF did not place it at the top most value.
PS I really like this tracker idea. I downloaded renoise to see if it could be a tool for me, I'm not so sure, but something like what you're doing as an add on rather than a whole program seems perfect.
Having additional program change column in advanced col options would give you immediate access to the entire current sound bank, and you could switch sounds per line. This is especially cool if you use Out[C] option where each column triggers on a different midi channel. I hope you like this idea as well.
When "follow selection" is on, make sure that the recording state is changed if recording is enabled and the user changes which track he's hackey trackeying.
Improve scaling behavior.
Set the size of the window to the size of the MIDI item or some user set upper limit.
Add an option to always enable recording in the options menu.
This seems not to do the opposite of ctrl-f2
(from renoise key bindings)
Typical workflow is
1- build a drum pattern
2- duplicate
2.5- switch to next pattern with ctrl-right
3- modify some area, usually something at the end
4- repeat steps 2, 2.5 and 3 infinitely
While switching to next pattern, in step 2.5, it would be more fun, meaning non-interrupting sound, if the pattern switching would seek position.
Add a mode to make columns go to the channel that the column represents.
Mouse cursor, drag and drop, copy paste as available in buzz is not possible, yet.
Investigate whether it is possible to serialize and store options such as window location and tracker settings into the REAPER project somehow.
When creating a new pattern, sometimes an irritating note off appears.
So we can use in both directions ENTER, as in buzz.
Need to have a closer look at some precision issues.
The correct mappings should be
Tracker = clamp( floor( Reaper * 256 ), 0, 255 )
Reaper = Tracker/255
Added a shortcut key for changing for how much the tracker advances after entering a note (default = 1).
Add data interpolation options.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.