Coder Social home page Coder Social logo

hackey-trackey's Introduction

Hackey-Trackey

What is it?

A lightweight tracker plugin for REAPER 5.x and up. Hackey-Trackey is a small tracker for visualizing and editing MIDI data within REAPER. Originally developed to mimick the pattern editor of Jeskola Buzz, this tracker is meant to enable MIDI note entry and effect automation in a tracked manner. You can see it in action here:

Hackey Trackey in Action

What is it not?

While the latest version of Hackey-Trackey does ship with a basic sampler, it is not a full tracker. Have a look at ReViSiT or linking a dedicated tracker program such as Renoise to REAPER if this is what you seek.

Small disclaimer

Hackey Trackey is still actively being developed. Not all planned features are finished yet and there may stil be bugs. Be sure to check back in the future if you want to be kept up to date with the latest features. Basic tracking functionality works (note entry, FX sequencing) and directly updates MIDI and automation data.

Installation

With Reapack

Add it in your Reapack repository list: https://raw.githubusercontent.com/joepvanlier/Hackey-Trackey/master/index.xml. Eventually, the plan is to make the tracker part of the reapack scripts repository, so that this separate repo is no longer necessary.

Without

  • Press ? or select Actions > Action List
  • click the ReaScript: Load button

How do I use it?

Select a MIDI item and start the script. Note that scripts can be bound to shortcut keys, which I'd recommend if you're going to be using it. This short tutorial assumes the default keymapping, but others are available in the options menu. In the default layout, options can be brought up with F11 and a small help file indicating all the options with F1 (same in all layouts).

Using Hackey Trackey

What MIDI channel is used?

The plugin remaps your MIDI data to different channels. New MIDI data that was not tracked has to come in on channel 1. Hackey trackey recognises notes which have not yet been assigned to a column by their channel. Note also that by default the tracker remaps everything to MIDI channel 1. The output channel (OUT) can be changed with the F1 (down) and F2 (up) keys in the default layout or by clicking the OUT field
and dragging the mouse up or down. Setting the output channel to zero (displays as C) maps each column to a separate MIDI channel. Note that column one goes to MIDI channel 2 and so forth.

Pattern info

Important use notes

It is recommended to change the size of MIDI items from within Hackey-Trackey rather than by dragging them in REAPER's sequencer. You can do this by clicking the pattern length indicator in the bottom left and entering a new length. The reason for this is that HT will create new automation objects if it doesn't find ones of appropriate length that are correctly aligned. If you wish to edit the MIDI items in REAPER, then close the instance of Hackey Trackey, resize the item and glue the item before reopening HT.

Mouse operation

Hackey Trackey is designed to mostly be used via keyboard shortcuts. That said, some mouse interaction has recently been added. You can click and drag Resolution (Res), Octave (Oct), Advance (Adv), Envelope (Env) and Out channel to set these values. Note that since the resolution or ticks per beat can be a destructive operation, this one needs to be confirmed by clicking, dragging and then confirming the new selection with the outer mouse button while still holding the left mouse button.

Recording status can also be toggled by clicking it, and the pattern size can be changed by clicking the pattern size. Removing the current size and confirming with return.

Can I automate parameters?

Yes! Parameters for which envelopes are active (see automation panel in image below), will automatically show up in the tracker. The tracker will store the tracked points in an automation take. Ctrl + Shift + Up/Down changes how the values in the column will be interpolated. Using FX

Can I send MIDI CC commands?

Yes! There are two ways to work with CC commands. The first is a single column mode (which is good if you typically only use a single command or use commands) sparingly. Or multicolumn mode.

Single column mode:

This is the default. The first two columns denote the CC command, the last two the value that's being sent.

Multi-column mode:

This is activated when expanding the mod column (expand by going to the CC column and pressing CTRL + +). Now, every CC command type gets its own channel. You can remove a column with CTRL + Shift + -, which will delete all the CC data in that column as well as remove the column. You can add a new column with CTRL + Shift + + after which you have to enter a numeric value and hit RETURN. Custom names can be added in the CC column. Hint: If you want this to be the default mode, then edit the script and change tracker.modMode to 1.

The CC commands don't interpolate?

Yes. They do not and this is considered out of scope for the tracker. If you wish to interpolate CC commands, I suggest you use ReaControlMIDI to map the CC commands to an FX envelope. These you can then use in the same way as the parameters.

I do not hear the notes I play? Can I change it such that I do?

If you want to hear notes you play, remember to arm the tracker by hitting CTRL + R. Note however, that this alters the recording status of your project. If you wish to always have HT enable recording, then enable "Always Enable Recording" in the options menu.

The default theme is not my style. Are there any others?

Yes, there are various themes to choose from. See the options menu (F11). Themes

The latest theme is Sink, but it relies on installing a font first which you can get here: https://www.dafont.com/bebas.font Sink

Can I fix the indicator centrally, like classic Commodore Amiga trackers?

Yes. If you prefer that the current position is always in the center of the screen, similar to classic Amiga trackers such as OctaMED, enable "Fix indicator position in view" in the options menu.

This mode is best used with "Bigger play indicator" and "Follow song" enabled.

It doesn't have to be positioned centrally either. You may position the indicator wherever you like by holding down CTRL + ALT + LMB in the row indicator column. Fix indicator in view

Can I do step sequencing from my MIDI device?

Yes you can! Enable track from MIDI in the options. This will inject a JSFX on the track in question which will track the incoming MIDI and send it to HT. Note that this will disable any playback preview within Hackey Trackey however, as that would otherwise create an infinite loop.

What is advance to next note mode?

Advance to next note mode is a mode in which the cursor always advances to the next note in on the column you're working in, rather than a fixed number of steps. When you get to the end of the pattern, it loops back to the start. This allows you to quickly audition different potential melodies for a particular rhythm. You can quickly toggle it with CTRL + T.

Note that an additional feature of advance to next note mode is that if you select a region on the pattern, the method will constrain the advance method to stay within that region.

Can I change the pattern length from the tracker?

Yes. Click the pattern length indicator in the bottom left of the tracker. You can enter a new value here.

All my notes sound very staccato? What's going on?

By default, tracked notes do not overlap. However, for some purposes, overlap may be desirable (some monophonic VSTs interpret this as glide/legato mode). For this, one can use the column L. Setting 1 in a row here, means that this note will be glided into. This is implemented by simpliy stretching the previous note. Legato is only applied to channel 1 in the tracker. Note that performing a legato from and to the same note will result in the second note not displaying in the tracker. This is not a bug, but a workaround to fix note OFF issues with the resulting MIDI item.

Can I rename patterns?

Yes, simply hit CTRL + N and type a new name followed by ENTER.

How does navigation work?

You can move left to right on a single track with CTRL + Left/Right.

I need a higher resolution?

You can edit the row resolution by entering CTRL + ALT + Up / Down. You will then notice that the resolution bit in the description bar becomes red. This means it is not committed. If you then hit commit (Ctrl + Alt + ENTER), the resolution will change.

Can I use note delays?

Yes, but there is a catch. For note delays to work reliably, your MIDI settings have to be set in such a way that each row is a multiple of 256 times the resolution MIDI pulses long. Otherwise, roundoff errors will occur which cause values or notes to shift as you enter them.

You can set these in Options => Preferences => Media/MIDI => Ticks per quarter note for new MIDI items. The default here is 960, but 3840 is recommended for Hackey Trackey (as it will work well for 3/4, 4/4, 5/4 and is divisible by 256). Note that if you want to work in 7/4 you would need a different factor again (but HT will warn you about this). Once configured correctly, you can open the note delay column for any note by simply hitting CTRL + + for that column.

Can I enter note lengths?

Yes you can. Hit CTRL + + twice on a note column to bring up the note length panel. This will allow you to edit the duration of the last tick of the note at a subtick level. The same caveats as with note delay apply.

What is this Harmony Helper thing?

Release 1.30 saw the addition of the Harmony Helper, this is an extension of Hackey Trackey to facilitate easier use of melodic scales. You can toggle the Harmony Helper by pressing F9.

The Harmony helper presents you with a selection of root notes and modes. You can pick your desired musical key by selecting the root note (top row) and scale (left column). After selecting a key, you are presented with chords that are present in that key.

If the track is armed (denoted by the red [REC] label), it will play the chord you click. To arm the track press CTRL + R.

To insert a chord from the harmony helper, press control while clicking the chord. Inversions can be obtained with other modifiers. Holding ALT will trigger an inversion of the first note, while SHIFT inverts the second.

Once a key is selected and the harmony helper is active, notes will transpose in a key-aware manner when transposed. Diatonic notes will map to diatonic notes when transposed, while accidentals will remain accidentals (as far as this is possible without an awareness which notes are flat or sharp).

To change the root of the key of a selection, simply select the notes and invoke CTRL + ALT + SHIFT + + or - for transposition up and down respectively. This will also update the root note in the harmony helper.

Harmony Helper

Is this repository reapack compatible?

Yes. Just add: https://raw.githubusercontent.com/joepvanlier/Hackey-Trackey/master/index.xml

Sample playback (Pre-alpha!)

The latest version of Hackey Trackey ships with a basic sample playback module in the form of a JSFX that can be added to a track to achieve basic sample playback.

To use it, make sure you update to the latest version on reapack and then search your effects list for Hackey Trackey Sample Playback Module. Putting this on a track will convert that track into a "sampler" track. When you open the tracker on a MIDI item on a track that has this module added as an effect, Hackey Trackey will open in a slightly different mode to facilitate this mode.

image

You will notice that there are three columns per channel now. The first is volume, the second is effect and the third corresponds to the value for that effect. Instead of loudness, the velocity column now encodes the sample selection (as it would in a tracker).

Unfortunately, some concessions had to be made due to limitations in the MIDI format (127 values instead of 255).

The effects available are the following:

  01 - Portamento up
  02 - Portamento down
    Note that the portamento's behave different from Protracker. In PT you directly
    perform the portamento based on the period of the signal. Portamento is updated
    every N times per row (ticks).
    Here, the portamento slides continuously and the amount is specified in 
    eigth semitones. This means that 08 is 1 semitone. 10 is 2, etc.
    00 continues the last portamento.
  03 - Glide
    Glide to note. Glide speed is specified in 1/16th notes.
    00 Continues a previous glide.
  04 - Vibrato
    X is pitch depth (value from 0 to 7). They are given in seventh semitones.
    Y is speed (value from 0 to F).
      Continue, 128, 64, 32, 24, 16, 12, 8, 6, 5, 4, 3, 2, 1, 0.25, 0.125
    0 continues the previous value.
  08 - Panning
    Panning.
  09 - Set offset
    Unlike the classic Protracker, this sets offset as fraction of the sample length.
    Since 7F (127) is the maximum in MIDI; 40 is the middle of the sample, 20 1/4th etc.
  0A - Arpeggiator
    Arpeggiate. X and Y are note offsets in semitones. 0 continues previous value.
  0B - Retrigger
    Retrigger note.
    X - Volume reduction per trigger
    Y - Retrigger count
  0C - Sample probability
  60 - Reverse
    Reverses playhead if effect value is 00. Note that if this effect is applied on a 
    note start, it plays the sample from the end. If the effect is started from anywhere 
    else, it will simply reverse the playhead. When the effect is used with 01, hackey 
    tracker playback will return to forward playing.

Loading samples into the hackey trackey playback module can be done in two ways. They can either be dragged from the media explorer directly (which will open them in their original sample rate) -or- you can import them from the timeline (in which case they will be resampled to 48 kHz). For the latter, find the action named "hackey_trackey_load_sample.lua" in your reaper actions list and bind it to a shortcut of your choosing. Now, when hackey trackey sampler is open, select a pad to load the sample in, and press your shortcut. It should now appear into the Hackey Trackey sample module.

image

The sampler module also comes with a small sample editor. It allows you to do some basic things like zoom, copy/cut/paste, set loops / remove loops and reverse sections.

In the sampler section, you also see a little control for setting the reference pitch for a particular sample.

Options

Hackey-Trackey has a few options to allow for some customization in workflow. Pressing F11 opens the options dialog, where themes and keymappings can be chosen. Additionally, the following options can be checked or unchecked.

Auto Resize

Auto resize determines whether Hackey Trackey should resize whenever a new pattern is selected. The resizing in this case refers to the height of Hackey Trackey.

Follow Selection

When this is enabled, Hackey Trackey will always load the pattern currently selected in the sequencer. Note that this means that you cannot open multiple Hackey Trackey's anymore to look at different patterns simultaneously.

Info Sticks to Bottom

This makes the info at the bottom of the pattern remain fixed at the bottom, even when the pattern is shorter than the window. Alternatively, it will be at the end of the pattern.

Adjust Column Count to Window

This will automatically add columns to be visible whenever Hackey Trackey is resized.

Always Enable Recording

This will make Hackey Trackey always enable recording when opened. Note however that this changes the recording status of your project and is therefore disabled by default.

Follow Song

CTRL + F will toggle Hackey Trackey to follow the song position. It will attempt to find MIDI items at the current position on the current track and update the view so that you see them. Note that the status of this can be seen next to the [Rec] button.

CRT mode

Enable cheesy CRT effect. Works best with Hacker theme.

Special keys

When you first download the script, it will initialize using the default keybindings (which are listed here below for convenience). They are optimized for a QWERTY layout. You can set which key layout to use in the options panel (opened with F11 or CTRL + o in the default) key set.

The keybindings in the default set are. Note that you can always look these up in the tracker by pressing F1.

Key Action
Any key on the virtual keyboard Enter a note and advance
Shift + Key on the virtual keyboard Enter a note go to the next column
Arrow keys Navigate
Backspace Delete item and shift rows up
Del or . Delete item
Insert Shift all items down by one
- Place note OFF
CTRL + ALT + ENTER Start play at cursor position
Space Start/Stop
CTRL + Z Undo
CTRL + SHIFT + Z Redo
CTRL + B Start selection block
CTRL + E End selection block
SHIFT + Arrow keys Make selection
SHIFT + Del Delete block
CTRL + I Interpolate block
CTRL + X Cut
CTRL + V Paste
CTRL + C Copy
Shift + Numpad + Shift selection up (e.g. C-1 -> C#1)
Shift + Numpad - Shift selection down
CTRL + /\ Shift current octave up
CTRL + \/ Shift current octave down
SHIFT + CTRL + /\ Switch envelope mode (FX automation)
SHIFT + CTRL + \/ Switch envelope mode (FX automation)
SHIFT + ALT + /\ Increase row resolution
SHIFT + ALT + \/ Decrease row resolution
SHIFT + ALT + Enter Commit row resolution (WARNING: Destructive)
F1 Help
F2 Decrease output channel
F3 Increase output channel
F4 Decrease advance amount
F5 Increase advance amount
F8 Stop playing
F10 Show / hide note names
F11 Options screen (theme etc)
F12 MIDI Panic (stop all notes)
CTRL + L Set loop to pattern bounds
CTRL + Q Set loop start before current row
CTRL + W Set loop end after current row
CTRL + -> Next MIDI item on track
CTRL + <- Previous MIDI item on track
CTRL + SHIFT + -> Next track
CTRL + SHIFT + <- Previous track
CTRL + D Duplicate MIDI item
CTRL + N Rename MIDI Item
CTRL + R Arm (plays notes)
CTRL + +/- Enable/disable advanced options for this column
CTRL + Shift + +/- Add CC column (only available in advanced CC mode)
CTRL + Shift + A/P Per channel CC or PC (only available in advanced mode)
CTRL + Shift + Click row indicator Change how rows are highlighted (for different metres)
CTRL + S Toggle column solo
CTRL + M Toggle column mute
CTRL + T Toggle advance to next note mode
Harmony Helper keys
F9 Open harmony helper
CTRL + Click chord Insert chord at current position
ALT + Click chord Invert first note of chord
SHIFT + Click chord Invert second note of chord
Shift + CTRL + ALT + Numpad + Shift root note up (e.g. C-1 -> C#1)
Shift + CTRL + ALT + Numpad - Shift root note down

Custom keybindings

If these keys do not suffice for your purposes, you can add custom keybindings in a file which was created on disk the first time you loaded the tracker. This file can be found in the folder where Hackey Trackey was installed. If installed via Reapack, this will be:

%APPDATA%\reaper\scripts\Tracker tools\tracker\userkeys.lua (Windows) $HOME/Library/Application Support/REAPER/Scripts (Mac OS X)

If you wish to know what keystroke particular key has, set printKeys to 1 and start typing. Note that control modifies keystroke values.

Alternatively, you could also just edit the script and edit the keys table, but future updates of the script, would then overwrite your new keys.

Feature requests

Feature requests are always welcome, preferably with an idea of how to achieve it with the Reaper API. If you've implemented a feature yourself and want it added to the trunk, submit a pull requests. If possible, try and make sure that the pull request is up to date with the latest version. I will do my best to review and incorporate these.

How does it work?

Hackey trackey maps already existing MIDI data to a tracked format and allows editing of such data in a tracker-based manner. If the MIDI data was entered via another method than Hackey Trackey, the default behaviour is to map the notes to non-overlapping channels. Once this is done, the channels for the MIDI data are remapped such that the column in which a note appears is stable from that point on. Note that if your instruments use the MIDI channel information for specific purposes then this plugin is not useful to you. Note that depending on what you are doing, the plugin may also add text events to your MIDI data to keep track of information Hackey Trackey needs to preserve the tracked layout.

The plugin uses the MIDI note channel property to store which column a note is in. OFF note termination symbols not associated with a normal note end and legato symbols are stored in text (OFF+channel and LEG respectively).

Because the plugin remaps the channel, non-tracker input should be created with channel 0. The plugin remaps data in channel 0 to MIDI channel 1-16, automatically assigning new incoming notes to a column where enough room is available. Notes in channel 1-16 are assigned first, to keep anything that was made in the tracker stable.

The location of the notes in the tracker view will be stable as long as no data is entered into MIDI channels other than zero via the piano roll or other methods.

Because typically, it is preferred to have MIDI data go to a specific out channel, the plugin optionally maps all the MIDI data to a specific channel via the out-channel property.

Issues/Limitations

There are some things which are unfortunately not possible as far as I am aware. Voice stealing when placing overlapping tracked patterns is one of them. In Jeskola Buzz it was possible to play different patterns on the same row in the sequencer. This would cause notes that came from one pattern to stop notes coming from another pattern. This adaptive merging is not possible in this tracker since the different tracker instances are unaware of each-other's existence and overlapping MIDI elements act independently.

There is a second annoyance that comes with this, which is that for notes to be held over a pattern, they must be restarted at the start of the new pattern. The tracker has no way of seeing what notes may still be playing at the end of previous MIDI items. It may be possible to find a workaround for this in the future by scanning the timeline for previous MIDI items and adding such notes automatically.

Velocities can only be entered at a note start. Whereas in a tracker, every row can have its own velocity (modulation the notes velocity over time), it is not possible to assign multiple velocities to a single MIDI note. By default, when entering a velocity in a new line, the last MIDI note on that tracked channel will be copied to mimick the same end behaviour.

Note that when using the legato mode, it is no longer possible to have the same note be repeated on channel 1. Doing so would cause problems when playing the MIDI. Hence
1 D-2
1 D-2
would be merged into one single MIDI note. I have not found a good workaround for this so far, but if you have a good idea, please contact me.

Features to be investigated whether they are feasible/reasonable

  • Cutting/Copying to MIDI editor clipboard.
  • Adding HT to the MIDI menu via a configuration script.

hackey-trackey's People

Contributors

craigjoy avatar jmckernon avatar joepvanlier avatar r4dian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hackey-trackey's Issues

Fix undo functionality

Make sure the undo functionality works consistently.
Envelopes still have no undo system.

spread to 4 columns command

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:

  • first note and each 4th note, stay in first column (where they are already)
  • second note and each 4th note, go to second column
  • third note and each 4th note, go to third column
  • fourth note and each 4th note, go to fourth column

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)

Advance changer

Added a shortcut key for changing for how much the tracker advances after entering a note (default = 1).

Precision issues

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

Additional probability column (like delay) for each column

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.

Note delay (request from facebook)

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)

Duplication

Create shortcut to perform pattern duplication from the tracker.

Getting strange error when starting hackey-trackey

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.
hackey_trackey_format_error

CC column request (from facebook)

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.

shift-mousewheel for selecting, same as shift-arrows

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.

New pattern

When creating a new pattern, sometimes an irritating note off appears.

Additional script to set up multitracking

Creating a script to set up a multi-instrument instance of HT.

Changes in Hackey Trackey:

  1. Detect when MIDI channel is being sent to other tracks.
  2. For each column take first track MIDI is being sent to and use that track's ID and name as column title.

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 1 is possible.
  • Check whether record behavior is as expected.
  • Make sure note stops are send to the correct channel when listening to entry.

Idea

To be able to do more interesting variable routing, add a shortcut to automatically add all send channel volumes as FX tracks.

Follow selection recording

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.

Scaling behavior

Improve scaling behavior.

Set the size of the window to the size of the MIDI item or some user set upper limit.

Saving user keysets in .cfg, so our changes are not lost after next update

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.

Trim read, previously entered values? Changing all trimmed values in pattern.

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.

Now having custom keysets, can we define for any hotkey binding, any reaper action?

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.

idea: program change, in advanced col options

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.

Hackey theme

Add a green-ish hackey theme with interlacing.

First column is CC but with "...." underneath it

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:
image

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.

Duplicate cell or line/row value 4 lines below, with wrapping would not hurt

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.

Issue with MIDI behavior

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.

When entering FX values of js FX slider envelopes, 00..FF seems not to cover entire range from min..max

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.