Old 01-24-2018, 09:09 AM   #1
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,185
Default Hackey Trackey (MIDI Tracker)

Hello all,

I don't know if anyone has migrated from Buzz, Impulse, ModPlug or some other tracker to REAPER, but I missed the tracker so much that I wrote one in Lua as a plugin.

It's meant for tracking MIDI notes and automating FX. Simply click a MIDI media item and start the script and it will do the rest. Note that the tracker itself is not a sampler and doesn't do anything in terms of sample playback.

Anyways, in case anyone else is interested, it can be found here: https://github.com/JoepVanlier/Hackey-Trackey with a full description of how to use it.

If you run into a problem with it or have a feature request don't hesitate to ask.

Sinkmusic made this excellent image-based tutorial (thanks a lot!):











Effects automatically show up.


Various themes are available (buzz theme courtesy of r4dian)


And a harmonizer, to help you stick to scales and come up with chord progressions:

Last edited by sai'ke; 05-09-2020 at 09:24 AM. Reason: Added images of HT in action
sai'ke is offline   Reply With Quote
Old 01-24-2018, 10:04 AM   #2
zookthespook
Human being with feelings
 
Join Date: Mar 2015
Location: India Mumbai
Posts: 762
Default

thank you for this ..
really love Buzz and Renoise ! going to test drive this right away !

regards
zook
zookthespook is offline   Reply With Quote
Old 01-24-2018, 02:43 PM   #3
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,651
Default

Ha, love the name. Thanks for sharing.

(nice work btw.)

Last edited by IXix; 01-24-2018 at 02:55 PM.
IXix is offline   Reply With Quote
Old 01-24-2018, 03:08 PM   #4
Nixon
Human being with feelings
 
Nixon's Avatar
 
Join Date: Dec 2011
Posts: 319
Default

This is brilliant ! I am having a blast with renoise lately and now this Will test this little gem instantly.

Big thanks Maybe later some Reapack love ?
Nixon is offline   Reply With Quote
Old 01-24-2018, 03:34 PM   #5
Nixon
Human being with feelings
 
Nixon's Avatar
 
Join Date: Dec 2011
Posts: 319
Default

This is super fun. How do I change the Adv value (not in your picture) ? Are you considering a delay tab? Could remove regard the Adv value? How do I make OFF commands (maybe A?) ? Maybe horizontal note input via shift? I think all my FR would be to emulate renoise workflow and commands...

I get some reaconsole errors holding backspace, maybe too much keyboard input. Can't use 2,3... for c#,d# etc.

Keep it going

Last edited by Nixon; 01-24-2018 at 03:54 PM.
Nixon is offline   Reply With Quote
Old 01-24-2018, 04:37 PM   #6
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,185
Default

Thanks everyone

Yeah, when it's matured a little more I would love to add it to Reapack. Not sure how the process goes though and whether I'd still be able to provide updates. But I'll look into it soonish!

The adv value can be changed by F3 (decrease) and F4 (increase). The output channel can be altered by F1 (decrease) and F2 (increase). If you want each column to map to a separate midi channel, then set it to C (the lowest value). Off command is currently set to -.

2,3 and so forth change the octave of a note that's already placed. This is the way it's typically handled in buzz. The control layout is mostly based on buzz actually, since that's what I'm used to. If you want, you can add/suggest an alternative control layout, then I could provide it as an option as well (the keys are all listed at the top of the script actually). I don't know renoise that well.

As for the errors with the backspace command, that's interesting to me. Was this in an FX track, legato track or a note track? If you manage to reproduce it in the version uploaded today, please let me know. I'd be much obliged.

One thing the backspace command does not like is unglued extended tracks. I still need to think of how to handle these best, but currently count them as not supported.
sai'ke is offline   Reply With Quote
Old 06-26-2018, 04:54 AM   #7
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 3,047
Default

Quote:
Originally Posted by IXix View Post
Ha, love the name.
ReaTracker would be too obvious? Maybe reserved for Reapers own tracker interface in future? Or as two separate tools. ReaPattern, ReaPlaylist. ENTER toggling between both, as buzz.

EDIT: I am using already ENTER for opening and closing the midi editor. (open: midi editor from arrange, close: midi editor from midi editor, activate arrange) So seemless transition between both edit areas is quickly possible using always same key, ENTER.

As the lua scripts have their own set of hotkeys, that would be cool, using same ENTER while being on tracker, then toggling between tracker <> playlist. With this extension I could use same key, ENTER, even for 4 important editing areas.

Last edited by TonE; 06-28-2018 at 11:02 AM.
TonE is offline   Reply With Quote
Old 06-26-2018, 05:06 AM   #8
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 3,047
Default

Interesting to see technology developing, tracker in javascript.

http://www.stef.be/bassoontracker/?f...stMemories.mod
TonE is offline   Reply With Quote
Old 06-26-2018, 02:04 PM   #9
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 3,047
Default

Somehow related:
https://forum.cockos.com/showthread.php?t=190049
TonE is offline   Reply With Quote
Old 05-12-2018, 02:42 PM   #10
filtah
Human being with feelings
 
Join Date: Apr 2006
Posts: 13
Default

Quote:
Originally Posted by sai'ke View Post
Hello all,

I don't know if anyone has migrated from Buzz, Impulse, ModPlug or some other tracker to REAPER, but I missed the tracker so much that I wrote one in Lua as a plugin.

It's meant for tracking MIDI notes and automating FX. Simply click a MIDI media item and start the script and it will do the rest. Note that the tracker itself is not a sampler and doesn't do anything in terms of sample playback.

Anyways, in case anyone else is interested, it can be found here: https://github.com/JoepVanlier/Hackey-Trackey

I'm still actively developing it, but it should already be pretty usable in its current state (I mean, I use it at least! ). If you run into a problem with it or have a feature request don't hesitate to ask.

Just wanted to say a big thank you for creating this.
I'm not a massive reaper user, but I have basically been dreaming of creating something like this for some time. amazing work!!
filtah is offline   Reply With Quote
Old 05-13-2018, 07:58 AM   #11
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,185
Default

Happy to help!
If you want to add features or customize it, please feel free to.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-05-2018, 09:29 AM   #12
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 3,047
Default

Quote:
Originally Posted by sai'ke View Post
...but I missed the tracker so much that I wrote one in Lua as a plugin.
Thanks, thanks, thanks, 1000 times for this!
TonE is offline   Reply With Quote
Old 07-05-2018, 02:13 PM   #13
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,185
Default

Hello, I am currently abroad at a conference, but I will have a look at your request for the multiple MIDI command columns in the coming weeks. I think this should be doable. So just to verify, what you want is to have those 4 columns that are at the start, per channel, right?

I do like the idea of a sequencer, but it will have to wait until it gets a little less busy at my dayjob.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-05-2018, 09:52 PM   #14
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 3,047
Default

dayjob first, anything else later, thanks a lot. Nothing hurries, 'what hurries do slowly' is a Chinese proverb I think, or something similar.

Here a tip for all German qwerty or qwertz users:

PHP Code:
           Modify in tracker.lua
line 1154keys.pitches.z to keys.pitches.y
line 1171
keys.pitches.y to keys.pitches.
Regarding program change column: In advanced col options an additional CC[32] column per channel would be sufficient already, beside delay and end. At least in Out[C] mode those would be hardly connected to the midi channels of that column. In non-Out[C] cases that should not cause any troubles I guess. So it would not really matter.

Good luck and lots of enjoyment at your conference I wish you and your team!
TonE is offline   Reply With Quote
Old 07-06-2018, 04:59 PM   #15
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,185
Default

Thanks, hehe

I've started work on this. It may still be a bit rough around the edges. In the options screen, enable "Enable CC's for all channels (beta)" (this setting is remembered).

After this:
Ctrl + Shift + A adds a CC column to all channels. Note that after you hit this key, you have to enter the number for the one you want (e.g. 32).
Ctrl + SHIFT + - gets rid of a column.

It's not rigorously tested yet, so if you run into issues, let me know. Also note that channel 1 in the tracker, is really MIDI channel 2 (for implementational reasons).

In other news, I added an option in the options menu for QWERTZ and AZERTY keyboard layouts. So you don't have to edit the script by hand anymore for this
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-07-2018, 08:02 AM   #16
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 3,047
Default

Thanks saike, I will check this soon, probably tonight.

Yesterday I was imagining how that would be if even kawa would jump into this tracker train, bringing in his geniosity. Having something like 'saike & kawa tracker', written together 'saikekawa tracker', inverting placement, 'kawasaike tracker', now almost 'kawasaki tracker', wow that's a name, logo would be of course some 'kawasaki' image, taking the most powerful one, of course, where are the motorcycle experts?

kawasaki tracker! creativity is the game here.

greetings to kawa also from here!

kawa! kawa! kawa!
saike! saike! saike!


kawasaki tracker !!!
TonE is offline   Reply With Quote
Old 11-27-2019, 11:47 AM   #17
dri_ft
Human being with feelings
 
Join Date: Aug 2019
Posts: 16
Default

Better to post bug reports here or on Github? I'm finding some of the keys controls don't seem to work as described.

I'm running on linux, so at first I thought it was just a linux problem, but I briefly tried it on Windows with the same version of Reaper, and most of them seemed the same, so I guess it's not actually caused by linux.

I'm running Reaper 5.987.

I'm just having a look at the source to see if I can work out what's up and/or fix it up myself, but I'll try to post what I find as I go. I'm just running and testing on Linux at the moment, but let me know if it would be useful to test anything on my windows machine and I'll do that, too.
dri_ft is offline   Reply With Quote
Old 11-27-2019, 11:55 AM   #18
dri_ft
Human being with feelings
 
Join Date: Aug 2019
Posts: 16
Default

Pressing shift to advance to the next column after a note doesn't seem to work. That seems to be to do with the condition introduced in 5d3d8ada, string.match(lastChar,"[^%w]") == nil. I see that this is to prevent shift from modifying pitch keys that aren't letters, but I'm not sure exactly what it's looking for or what it expects lastChar to be there. string.match(lastChar,"[^%w]") seems to return "." for me. It looks like lastChar is a numeric value here and that line is doing string matching on a number, which... does not seem right?
dri_ft is offline   Reply With Quote
Old 11-27-2019, 12:05 PM   #19
dri_ft
Human being with feelings
 
Join Date: Aug 2019
Posts: 16
Default

Oh, I get it. lastChar is (for some reason) passed as a float with a decimal point (even though it's really just an integer). (Is this a recent change in Reaper? Or just my system? I don't know.) So the decimal point character in the float matches "[^%w]", so it returns a match.

Changing the pattern to "[^%w.]" seems to make shift work to advance to next column as expected, but I'm not sure whether it breaks whatever that test was there for in the first place.

Last edited by dri_ft; 11-27-2019 at 12:10 PM.
dri_ft is offline   Reply With Quote
Old 11-27-2019, 12:16 PM   #20
dri_ft
Human being with feelings
 
Join Date: Aug 2019
Posts: 16
Default

Pressing return seems to close the hackey trackey window. Is that intentional? It's very easy to do by accident. I can't quite work out what's making it happen in the code.

edit: seems to be because it's hitting the script-calling branch at the end of the great big input-checking if/else block, which contains a call to tracker:terminate(). Not quite sure what that's intended to do so I don't know what the fix would be, but it does seem like it shouldn't be happening on return.

In any case, turning off 'Allow commands to close HT' fixes it.

Last edited by dri_ft; 11-27-2019 at 12:44 PM.
dri_ft is offline   Reply With Quote
Old 11-27-2019, 12:47 PM   #21
dri_ft
Human being with feelings
 
Join Date: Aug 2019
Posts: 16
Default

Will keep looking and post about any more unexpected behaviour I can pin down.

In spite of all the seeming negativity in the above posts... thankyou! This could potentially be a huge help to my workflow in reaper.
dri_ft is offline   Reply With Quote
Old 11-28-2019, 03:47 AM   #22
dri_ft
Human being with feelings
 
Join Date: Aug 2019
Posts: 16
Default

Quote:
Originally Posted by dri_ft View Post
Oh, I get it. lastChar is (for some reason) passed as a float with a decimal point (even though it's really just an integer). (Is this a recent change in Reaper? Or just my system? I don't know.) So the decimal point character in the float matches "[^%w]", so it returns a match.
By the way, I just tested this on Windows and lastChar also has a decimal point there.
dri_ft is offline   Reply With Quote
Old 11-28-2019, 01:35 PM   #23
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,185
Default

Thanks a lot dri_ft. You already found and did most of the work for me re the . bug. I've cast lastChar to a char just to be sure that the . is not an issue.

Your fix shouldn't have broken anything either, but I figured this communicates the intent a little better.

As for the closing, that was for interoperability with Hackey Patterns. Normally, it would open Hackey Patterns (if installed) when hitting enter, so you can quickly switch. I've disabled that toggle that you turned off by default now, as most people will likely only install the tracker.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 05-05-2020, 01:05 AM   #24
Beat Machine
Human being with feelings
 
Join Date: Aug 2019
Posts: 392
Default Madtracker

that was a program I could use,
..can we just get that?

check it out Mr developer
you may get some ideas
Beat Machine is offline   Reply With Quote
Old 11-06-2020, 06:19 AM   #25
Beat Machine
Human being with feelings
 
Join Date: Aug 2019
Posts: 392
Default i wrote 2million songs on modplug

can you make it work the way modplug did where you could change the ticks and timing to get grooves going

man mt tracker was good too
the desgin is a lil 'eye bleeding'
Beat Machine is offline   Reply With Quote
Old 11-08-2020, 05:00 PM   #26
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 3,047
Default

Beat Machine, in Reaper you can use groove quantization, opened on the left permanently, for easy access.
TonE is offline   Reply With Quote
Old 11-09-2020, 02:59 AM   #27
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,185
Default

Quote:
Originally Posted by Beat Machine View Post
can you make it work the way modplug did where you could change the ticks and timing to get grooves going
It's a cool idea, but unfortunately, this would require some serious redesign of the internals, which is not going to happen.

Quote:
man mt tracker was good too
the desgin is a lil 'eye bleeding'
None of themes worked for you? Submit a color map and I'll see what I can do
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 11:09 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.