Yes I follow your instruction for script, tracker appears, then I create midi item and it spring into life.....
yes now I have tracking through note pattern and sound to chained plugin.
Going to have to read up about its keystrokes and operation properly.
Yes I follow your instruction for script, tracker appears, then I create midi item and it spring into life.....
yes now I have tracking through note pattern and sound to chained plugin.
Going to have to read up about its keystrokes and operation properly.
A lot of the keystrokes depend on the keymap you've chosen.
F1 is your friend
Note that if you want to make a custom psycle-like keyset, I could add it if you want. Just give me a list of all the rebound keys (see F1 for what keys are available).
I think, if there would be a converter script for setting keybinding that could be useful for creating new key binding sets, quickly.
Example input.
List of all available functions in hackey trackey in first column
Into second column (in CSV, for example) user should just write common strings like F1 or F12 or k or Shift+k or Ctrl+k or Alt+k or Super+k and not caring how to figure out those magic lua numbers, this part should be the job of this missing "magic converter script".
Does this all makes any sense? Then in future any new psycle user (for example) could do this definition just by themselves quickly.
It does now if you enable the new config flag for it.
Wow, thanks for the quick addition, kawa-saike works!
Having an overview of free key mappings could be also useful, having millions of actions, knowing where I could map those would be very useful. Now, trying ctrl-shift-f11, seeing oh it does already something
Not sure if there are already useful programs which could be combined with userkeys.lua somehow, getting some visual overview. Or a nice list. Something. Probably sorting by Keycode column would be best now. Then you would see immediately which are already occupied.
Ctrl-Alt-F11 and some Linux commands come inbetween
However it seems we can not run MidiEditor commands directly from Hackey Trackey.
A few things have cropped up that are not really bugs, but minor niggles for me.
The first one seems to happen after I record audio. HT is in all of my projects as I use it for MIDI stuff.
My undo stack ends up with a bunch of these entries:
"Tracker: Channel Reassignment"
making it hard to just press Undo to re-track audio.
Also, when I switch projects I get a dialog about "terminating instances" of HT, I usually say cancel when it comes up, but it pops up just about every time.
How do you find latest step replace mode, did you try Ctrl-t (at least in my case)? Also on selected block. Somehow one of my favourite features. Perfect for duplicate-modify-workflow.
The first one seems to happen after I record audio. HT is in all of my projects as I use it for MIDI stuff.
My undo stack ends up with a bunch of these entries:
"Tracker: Channel Reassignment"
making it hard to just press Undo to re-track audio.
Ah yes, I can see how that can be an annoying feature that gets in the way. I have added a config option for it now. In the options, disable the new config option "Add undo pt for col re-assignment. That should get rid of the behaviour".
Quote:
Also, when I switch projects I get a dialog about "terminating instances" of HT, I usually say cancel when it comes up, but it pops up just about every time.
Other than that, working like a champ!
Hm, I wonder where that comes from. I'm not getting this myself. Could you take a screenshot when it happens, maybe we can figure out what's causing it, or someone else from the forums can chime in.
Tried today step recording from midi input, thanks to your additional jsfx, which is added automatically. It seems to work nicely, thanks for that. However the velocity recording from midi input I could not get working. Tried both settings in the options: use recorded velocities, tried ON and OFF, in both cases it did not work here. Does it work there? Do I need to enable something else as well? This is not very important, just asking out of curiosity. Sometimes recording velocities can be useful, sometimes not. Wanted to give feedback of my tests at least. Thanks for the great additions, sorry for the so late testing.
UPDATE: Tested again, if there are no notes already, velocity recording from midi input is working. However overwriting already recorded velocities seems not working. Just as feedback. Before I tried only overwriting, thus it was not working. I am also trying always in advance to next note mode, Control-T.
Last edited by TonE; 09-27-2020 at 01:19 PM.
Reason: added update comment
Tried today step recording from midi input, thanks to your additional jsfx, which is added automatically. It seems to work nicely, thanks for that. However the velocity recording from midi input I could not get working. Tried both settings in the options: use recorded velocities, tried ON and OFF, in both cases it did not work here. Does it work there? Do I need to enable something else as well? This is not very important, just asking out of curiosity. Sometimes recording velocities can be useful, sometimes not. Wanted to give feedback of my tests at least. Thanks for the great additions, sorry for the so late testing.
Unsure what's causing it. It seems to function here (see video):
I don´t know if there´s any REAPER setting that could be causing this? Can you record velocities via other routes?
Discovered some other "strange" behaviour. New notes from midi input are added and displayed inside hackey trackey, but not displayed in item view in arrange, thus also not played. Can try a bit more, and also record a video maybe. But not today. Next weekend at latest time point.
I am also trying always in advance to next note mode, Control-T.
UPDATE: Regarding the strange behaviour, I was using in the normal midi editor some kawa scripts for muting some notes, so those are not played any more. It seems this can have further effects in hackey trackey, later added notes can be added in "muted state", so I need to unmute them again in the normal midi editor, not inside hackey trackey. So all is fine. If one knows the relationships one can correct the effects.
Last edited by TonE; 09-27-2020 at 01:39 PM.
Reason: added update comment
Just want to add, your tools, hackey trackey, filther, reflectosaurus are perfect or great fun especially when used with fm synths like Dexed (preset: SOLID BASS) or oxe vst (preset: Lately Bass). oxe has many other great presets as well. Alone automating wet parameter of reflectosaurus can be fun. Bringing in the delays, then removing them again.
Now where mespotine corrected/added the perfect parmlearn functionality into ultraschall-api we can create the perfect groovebox in the box, or multiple grooveboxes in the box. Will also try this next weekend.
Thank you very much Sai'ke for your great work! Would it be possible to add an option, so that the note input works like in Renoise? In Hackey Trackey pressing a key makes the note/sound sustain forever (until pressing note off). While in Renoise, it makes a short sound on every keypress. I'm kinda new to Reaper, so sorry if i missed something in the options/preference. Many thanks again!
Dear Reeze, cool nick, welcome in the forum, hackey trackey adds new notes with full length as the item length, so it is not infinite. When you add a second note it stops previous note and makes the new note again legato until the end of the item or next note.
I like this behaviour actually. How is Renoise doing it exactly? Can you describe it, as I did above for example. Thanks and have fun with hackey trackey and the Reaper universe of magical possibilities thanks to all the great devs like saike, bang or Esteban just to name three.
Hi TonE! Thank you for the welcoming! Maybe i was a bit unclear. I will try to explain myself better. I'm talking about the live sound of the notes while tracking (activated by Ctrl+R).
For example in Hackey: Tap Q (C-4 note) = The note starts a continous sound until you put a note off command.
In Renoise the computer keyboard acts more like a real midi keyboard : Tap Q (C-4 note) = The note makes a very short sound. And this is "without" inserting a note off command in the track. (Press Q = Note on, and when you Release Q = invisible Noteoff.. imagine tapping the C-4 key lightly on a real piano.
With my Reaper settings I do not hear anything during Ctrl-R, monitoring without entering notes (hitting ESC, blue Rec, rather than yellow Rec in hackey trackey). However with yellow Rec I am also not hearing anything.
Not sure which settings make this behaviour. But yes I understood your point, you want the qwerty behaving like a normal midi keyboard, holding Q = note on, releasing Q = note off.
Not sure how it behaves on saikes computer or other hackey trackey users, any comments?
UPDATE: Rechecked I am using the latest midi input feature, over midi it works as you mentioned, then you can also record the velocities, I am using K-Board by Keith McMillen for example nowadays, because it has also lights and the other big advantage you can also enter longer notes. I start with shorter notes, then holding some notes longer, nicely overlapping both. In Dexed SOLID BASS for example, and some other preset from Synth1, parameter modulation on filter cutoff.
So basically, you want to add note releases when keyboard characters are released? I can investigate a solution for this.
As long as the release doesn't actually have any effect on the midi data, this should be pretty doable while maintaining backward compatibility I think.
Hello Sai'ke! Yes an option for this would be fantastic! And just to clarify: I'm not talking about adding an automatic noteoff command when keyboard character is released. Nothing gets added in the track/ pattern on release. Only the "live sound" is released on keyboard character release.
I'm so used to this since working with Renoise/Fasttracker 2. I watched a couple of videos on youtube yesterday. Protracker seems to work in the same way as Hackey does.
Thank you very much for looking into this Sai'ke! Much appreciated!
On mx brown mechanical switches?
My favourite features are complete pattern or single column or block shifting, via shift+numpad+/- or ctrl-f11/f12 or ctrl-shift-f11/f12 (not sure if those are default mappings or if I changed some), or alt-t step replacing, or recording from midi input, or changing note octaves via 1..7 or adding breaks with - (in hackey patterns), or cyclic shifting using backspace/insert. And especially how groove quantization is splitting note lines into multiple columns, so above techniques can be used on those separated columns individually.
plus techniques outside of hackey trackey via jsfx parameters for probability, real-time transpose using boreg's switchable transpose and applying probability to transpose bypass parameter or ReaControlMIDI's program change to name two examples.
For me, when holding Z V B (press and hold in that order), B doesn't register. I wonder if this is a reaper kb handling bug, since I see the same behaviour in the virtual keyboard that ships with reaper.
Braavoo Sai'ke! That was fast! I tried the script and its almost there. It works exactly as i want it on Ch1 However when entering notes in the next channels, Ch2, Ch3 they do the previous held note mode. I also tried holding your Z V B combination, but it works here.
TonE, thank you for sharing your workflow. Got some great tips there! I've never used Buzz, but have heard lots about it. (And seen it in action on youtube) Will for sure try Sai'kes other scripts.
For me, when holding Z V B (press and hold in that order), B doesn't register. I wonder if this is a reaper kb handling bug, since I see the same behaviour in the virtual keyboard that ships with reaper.
Can this be anything related to not having n-key rollover?
Ah yes, I can see how that can be an annoying feature that gets in the way. I have added a config option for it now. In the options, disable the new config option "Add undo pt for col re-assignment. That should get rid of the behaviour".
Hm, I wonder where that comes from. I'm not getting this myself. Could you take a screenshot when it happens, maybe we can figure out what's causing it, or someone else from the forums can chime in.
Attached is a screenshot, and I'm also still getting the MediaItem item I used to get. I've attached a screenshot of that as well.
Attached is a screenshot, and I'm also still getting the MediaItem item I used to get. I've attached a screenshot of that as well.
Thanks. On what version was that second screenshot taken? Since in the latest version that line isn't a GetMediaItemInfo.
As for the first, that's a decision I can't make for you. Reaper is asking you what to do when you open Hackey Trackey when there's already one open. Do you want it to open a second one, or close the first? Personally, I have it set to New Instance. Clicking remember answer will no longer prompt you with that question.
Thanks. On what version was that second screenshot taken? Since in the latest version that line isn't a GetMediaItemInfo.
As for the first, that's a decision I can't make for you. Reaper is asking you what to do when you open Hackey Trackey when there's already one open. Do you want it to open a second one, or close the first? Personally, I have it set to New Instance. Clicking remember answer will no longer prompt you with that question.
I may have captured it before updating, I will monitor that. And yeah, the other does seem to be a Reaper question. I will have it load a new instance since that is what you are doing. I had been pressing 'Cancel'.
Can it be made so the "blue Rec" also works from midi input? So just for monitoring, e.g. if you want to play on top, improvising, but without recording anything into the pattern, meaning without destroying your careful previous design.
Do we have a global RECORD command from inside hackey trackey as well? The idea would be switching into real-time recording mode, playing freely on a midi keyboard, then disabling record again, switching back to step recording in tracker style. Having a mixture of both.
Later maybe adding impyC functionality directly inside hackey trackey would be very cool, so being able deleting notes while playing in real-time, by holding the notes you want to delete. Especially if you have a midi keyboard with lighting, like k-board, you are seeing the playing notes anyway, so you can easily hold the notes you do not like for deleting them again. impyC can do this, but have to test more how compatible impyC and hackey trackey together are, as both are adding a separate jsfx into the insert. In theory hackey trackey could do it by itself, having all in same system.
Summary:
(a) Real-time playing and recording into the pattern, by activating normal/global record.
(b) Real-time removing/deleting notes you do not like, by holding it, all while Reaper is playing, so never stopping the playback.
How could (b) be implemented, just an idea: Hitting shift-D would switch into "real-time deletion mode", showing "red Rec" (same blue and yellow we know already, only red this time), now any midi note coming from midi input overlapping any existing note in pattern would be removed.
Last edited by TonE; 10-05-2020 at 01:11 PM.
Reason: added implementation idea for (b)
Having a new pitchbend column would be also very useful, seeing how useful pitchbend events can be when used with redux. We could precisely design those via hackey trackey.
Can the channel numbers displayed per column start counting with 2, so it represents the real midi channel numbers for the C case. In the other single midi channel output modes the channel numbers do not matter anyway.
This new style would have the advantage:
- the channel number in tracker is same as real output midi channel number, no need to calculate all the time + 1, in the C case.
Can the channel numbers displayed per column start counting with 2, so it represents the real midi channel numbers for the C case. In the other single midi channel output modes the channel numbers do not matter anyway.
This new style would have the advantage:
- the channel number in tracker is same as real output midi channel number, no need to calculate all the time + 1, in the C case.
I totally appreciate that you cant sit around all day on a hobby
we should def be crowd funding people like you
as much as i love trackers they are just not part of my worflo right now
I remember how much programming it took to get things to sound 'natural'the amazing thing is that you could make it work
i have a 486 lying around somewhere with tons of .MT files on them
i could never quite explain the style of music I came up with
what trackers are awsome for tho is you can load a midi song, replace
all the sounds with samples and have some great sounding backing tracks
are you set up on a donation site? I will shoot you 1 bill
ty 4 yr work.
Is this feature already built in? If yes, where hidden?
Anyway, the reason I suggested this feature is because of following scenario. When creating fx chains with lots of various midi efx, and you limit many of them to certain midi channels only, then hackey trackeys C option can be a nice way of deciding which notes should go through which midi fx. And if the values you type into the jsfx and the column names inside hackey trackey match, would make it more elegant I thought. Thinking also for other users not only for myself. First many users might not know yet first column with title "Ch 1" is sending out via midi channel 2, for example. Anyone can find it out via midi monitoring tool, but why not making it much simpler, by shifting the column numbers by one. Then you could just use same numbers in both, without having to measure the output data first what is really sent out.
But ok, zero-based midi channel thinking solves the problem by itself. So I will just shift my thinking. If I am the only one asking for it you can keep as it is now.
as much as i love trackers they are just not part of my worflo right now
It is just a different way of editing. So nothing in Reaper is lost, you only get another additional, different form of editing techniques. Much more powerful, much more precise. And you can combine it with all other techniques, you do not have to switch 100% to it, stopping using other techniques, use all in parallel, depending on which technique is more useful.
For example, combining Lokasenna Theory Helper (another lua script) with hackey trackey is great. Somehow I could not find a way yet, the arpeggiated sequences in Lokasenna Theory Helper are recorded also as chords into hackey trackey. Right now, somehow they are always recorded as chords, even played as arpeggio, not sure, maybe my settings are "wrong".
groove quantization on the left + Lokasenna Theory Helper + midi editor in notation view + hackey trackey as tracker view on the right + piano display (show embedded ui in tcp) + same for vu meter + same for oscilloscope
All in one view, which other DAW can do this? Just magical! Thanks saike, thanks Lokasenna, thanks Geraint Luff thanks all devs and users sharing their skills and ideas. You can feel at the same time like Mozart or Beethoven because of notation view, then like a tracker user from the 90s thanks to hackey trackey, then like an audio engineer, giving you precise information about the sound via vu-meter and oscilloscope, plus nicely colored keys via piano display, for the fun side.
Recording arpeggios directly into hackey trackey could spice up things I have the feeling only. Not sure if lokasenna theory helper is not doing it right, or hackey trackey, will check at some point.
UPDATE: Checked, just shift+clicking does the job, at least when hackey trackey is not open. Cool.
Alright, it's been a while since the last update for this thing. Today I decided to merge in the feature branch I was working on that introduces some basic JSFX sampler for basic sampling needs. Note that unless you're used to trackers, you probably won't find much of a use in this sampler, because for a sampler, it's pretty bare bones. But it contains those things that I often miss having moved away from trackers a bit.
NOTE: This is a work in progress. It is still pretty early days, and there's bound to still be bugs. If bugs frustrate you, please feel free to wait until I've used this thing a bit longer, and some of the issues have been ironed out.
Now, for the instructions, I'll just copy what I just wrote for the GitHub page here:
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.
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:
Code:
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 - Apreggiator
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
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.
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.