I don't really claim credits for that quick mockup : i just borrowed colors from the MC202, so if you want to call the theme "202", that would be as much as good as "sink"
I like it yes. I think I'll use it for a while. I've been using RenoiseB until now, but it's a nice change of scenery
I'll change the title next time I do some work on HT if you want me to. It's a pity we can't ship the font. Would've been nice
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,754
One strange thing :
I tried Hackey Trackey with a midi keyboard : each time i enter a note, hackey goes to another channel. Is it the expected behaviour ? Should it go only one step down, and not one step down and one channel right?
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,754
Quote:
Originally Posted by TonE
hackey trackey is not designed for midi use, I guess.
So i got confused because it processes MIDI ("Hackey-Trackey is a small tracker for visualizing and editing MIDI data within REAPER.").
The odd thing to me is that imho it should either "work" or "not". Here, it somewhat works (it "sees" incoming Midi notes and record it, so it kinda work), but somewhat not (there is no point in having each note put into a different channel - except if it's a chord-), so i am wondering if i am missing something, if i am doing something wrong, if this behvaiour is by design or if there is a bug?
Quote:
Originally Posted by TonE
Will try the new themes, thanks for the idea, looks cool, some fresh air.
Now, I also enabled note end column permanently and then the first legato makes sense. More options, cool, thanks for the idea, was not using that much.
If you have any cool tips for free vsti, which can sound useful with those shorter notes, plus legato. Playing around with Dexed.
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,754
Yes, note lenght is very useful imho.
I don't have any specific VSTI in mind : pretty much any of them should lead to interesting results.
Maybe TyrellN6, or TAL ELektro, TAL BAssline...
One strange thing :
I tried Hackey Trackey with a midi keyboard : each time i enter a note, hackey goes to another channel. Is it the expected behaviour ? Should it go only one step down, and not one step down and one channel right?
Normally when entering notes in HT itself, holding SHIFT gets you that "go to next column"-style behaviour. Is it possible that you're holding shift?
If not, can you guide me through what you're doing?
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,754
Well, I know that shortcut, but i wasn't touching the computer keyboard, i was using an Arturia Keystep, so no shortcut was invoved afaik.
- I create a track (with midi in), load a vsti, insert an empty midi clip and launch Hackey Trackey.
- I play notes on the Keystep : i hear the sound of the VSTI.
- I start recording, see the notes displayed, but each time i hit a note it is written on a new channel.
Well, I know that shortcut, but i wasn't touching the computer keyboard, i was using an Arturia Keystep, so no shortcut was invoved afaik.
- I create a track (with midi in), load a vsti, insert an empty midi clip and launch Hackey Trackey.
- I play notes on the Keystep : i hear the sound of the VSTI.
- I start recording, see the notes displayed, but each time i hit a note it is written on a new channel.
Fascinating. Yes, it hasn't been designed to allow live recording. It took me a few seconds to realize what was going on here.
I think I figured it out though.
Your VST is probably coming in on MIDI channel 1, yes? When a note comes in, HT reassigns notes coming in on channel 1 to a fixed column. I use the MIDI channel information to assign which column a note belongs to (channel 1 in the tracker = midi channel 2, channel 2 in the tracker is midi channel 3 and so forth).
This means two things.
- One: The note off that your midi controller will send after you stop playing the note never arrives (since it still comes in on the old channel, and the note on has been moved by HT) meaning the incoming note will effectively have no end. You probably noticed a lot of hanging notes.
- Two: Since the note has no end, HT assigns the next incoming note to a new column, since it deems that there is no room in the column where it just put the previous note (since that note now goes on till the end of the MIDI item).
While you could possibly be able to get away with monophonic input, if you make sure that your MIDI device sends on Channel 2 or higher (it would then go to that specific column only, and only spread out to other channels once that column is already occupied, say in the case of overdubbing), I'd still think this is somewhat unsafe.
In short, there is no good workaround for this. That's why I just added a config flag that blocks Hackey Trackey from messing with your midi data when it detects that you are recording stuff (v2.22). This should at least prevent it from mangling what you're playing. After you stop recording, it will assign the notes to columns as good as it can.
It's enabled by default, so if you want to try the (unsafe) recording mode outlined above setting your MIDI device output channel to a channel higher than 1 and trying it anyway, turn off "Block while recording". Note that remapping it in REAPER is not sufficient for this to work. You really have to change the output channel on your MIDI controller itself. I'd be interested what you find. How reliable it turns out to be.
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,754
Thank you for your reply, Sai'Ke.
I wasn't expecting this, ah ah !
I can however understand that HT wasn't meant for real-time recording using a MIDI keyboard (it would be nice if we could, but i understand it is not possible or tricky).
Quote:
You probably noticed a lot of hanging notes.
Indeed.
Quote:
it hasn't been designed to allow live recording.
In fact, my goal was not really real-time recording (well, i could have used HT for this, but so far the midi editor is good enough), even quite the opposite.
What i was trying to do is something that some hardware sequencers can do, and what trackers do (but with the computer keyboard) : you hit a note, the trackers writes it and then move to the next step. This doesn't need to be in real-time, this doesn't need to record note lenghts, just straight notes and voilà.
It can seem a bit ancient or odd, but this is something I like a lot on the MC202 (you have one write mode for NOTES, and another write mode for GATES/LENGHTS. It can be quite confusing and frustrating at first, but it's awesome for happy accidents, and allow for very creative stuff you wouldn't have thought if recording in real time both notes and directions).
The Squarp Pyramid has a similar mode, and i use it very often.
Do you think it would be possible to set HT so that it can write incoming notes coming from a MIDI keyboard the same way (just entering notes, not in realtime)?
Yes, it'd be possible, but it would be somewhat involved. I would have to inject a JSFX onto the track where you are using HT and communicate incoming MIDI to HT via this JSFX.
It took me most of today, but try version v2.25. Note that you must install it from reapack for this to work properly as it installs the required JSFX for you. Alternatively, install the JSFX separately.
Enable "Track from MIDI (BETA)" (and optionally Use Recorded Velocities if that's what you want) and you should be good to go. Note however that you lose the audible note preview you used to get when you enter the mode that allows you to enter notes via the keyboard. The reason for this is that I was abusing MIDI functionality to provide that note preview (from a virtual keyboard) and with the MIDI recording you'd get a loop where you just end up with infinite notes.
I hope this is workable for you as I need a little break from Hackey Trackey again
P.S. If there's new bugs, please don't hesitate to let me know. I had to change quite a few things to get this feature in and the code base is showing its age.
It can seem a bit ancient or odd, but this is something I like a lot on the MC202 (you have one write mode for NOTES, and another write mode for GATES/LENGHTS. It can be quite confusing and frustrating at first, but it's awesome for happy accidents, and allow for very creative stuff you wouldn't have thought if recording in real time both notes and directions).
I guess you still did not try cfillions step sequencer, or did you try? It should do just that.
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,754
Quote:
Originally Posted by TonE
I guess you still did not try cfillions step sequencer, or did you try? It should do just that.
No, I don't know where to get it, how to use it, and i haven't seen a thread (or webpage/github/repo) about its features and usage, so it's still a mistery to me
Is it a LUA script, a JS fx? Is there a dedicated page or thread somewhere?
Quote:
Originally Posted by TonE
Maybe I should wait a bit before updating to next hackey, until sinkmusic finds all possible bugs.
Oh, with youtube I meant, will you make a youtube demo, if possible, but no problem is this sounds like too much work.
cfillion stepsequencer, you need to install via reapack, it is lua script.
New track, new item, open in midi editor, actions, Script: cfillion_Step sequencing (options).lua, replace pitch and skip unselected notes, Script: cfillion_Step sequencing (replace mode).lua, arm track, midi input e.g. from virtual midi keyboard if you have nothing else, select all notes, play notes.
Oh, with youtube I meant, will you make a youtube demo, if possible, but no problem is this sounds like too much work.
It's just step sequencing but from within Hackey Trackey:
Note input is coming from a MIDI keyboard in this case.
I think one advantage to step sequencing in this setup is that you can also work per column, and start layering your sequences within one pattern. When multiple notes are hit at the same time, it will work as though you held shift (putting each note in the next column over).
What would make this new step sequencing ultimately powerful would be following:
Not following "ADV" value for jumping, but instead using the available notes, it could be another step recording mode maybe, step recording 2, then it would be basically same as cfillion step recording (replace mode). The idea would be you have already something where you like the timing and velocities already, e.g. some piano performance, now you only want to change the pitches, each note input would simply jump to next note and replace it. At least for monophonic case it should work like this, having parallel notes, meaning chords, can be complicated, but this could be left out for now. For that a person can record normally. Here it should be more having fun. Or imagine you have some great sounding 303 line notes, but you want to change the pitches only. Note position, duration, velocity all should stay same, only changing pitch.
What we have now are constant step widths, with above new method we have varying step widths, depending on where the notes are. Each step simply jumps to next note and replaces it, no matter where it is, it could be also on Mars .
I would say chords should just work the way they do now. Except the advance is just chosen based on the column you're in.
Quote:
Maybe I should wait a bit before updating to next hackey, until sinkmusic finds all possible bugs.
You should really consider just biting the bullet though. This software relies on a very small user base to find the bugs which makes the feedback all the more important. Besides, reapack makes it very easy to revert if there are issues.
I will update, when I will plan to test this feature, meaning having my midi stuff connected to my laptop.
Thanks for all the cool new features, and you spent your whole day on that feature alone, I will make sure all (possible) bugs are found.
CTRL + T toggles to advance to next note mode. You'll notice that it's enabled by the N in the advance area (Adv[N] instead of Adv[digit]). It works for both MIDI input as well as keyboard input. For keyboard input, it should work for velocities, automation, delay, CC, PC etc as well. For automation it will use the first channel for next note seeking.
Code:
Changelog v2.28
+ Make wraparound behaviour consistent.
Changelog v2.27
+ Minor style tweaks.
+ Bugfix note advance mode.
Changelog v2.26
+ Added note advance mode that skips to next note instead of moving forward by advance.
+ Add toggle to enable advance by note mode (CTRL + T)
+ Add optional bigger line indicator when playing.
+ Improve ellipsis rendering.
+ Optionally enable CRT mode for sink theme.
+ Minor UI fixups (selection used to not quite overlap with cursors).
Wow sounds great, I guess we are already now in original new tracker features territory? Probably yes. Thanks to master saike!
Tried it without midi, very powerful, on a note it cycles among notes, on an empty line it adds new notes, wonderful. I especially like how it wraps back, starting from the beginning. You can add/change infinitely until you like the result, then stopping.
Maybe also this: If no block selected, behaviour as now. If block selected, jump only among notes within block. This would allow you repeatedly finetuning certain areas only, not always everything. Mainly not to destroy what is already sounding interesting.
Maybe also this: If no block selected, behaviour as now. If block selected, jump only among notes within block. This would allow you repeatedly finetuning certain areas only, not always everything. Mainly not to destroy what is already sounding interesting.
Yeah, I was also thinking this, but it comes with some issues. For one, if you've ever clicked on the pattern there's _always_ a selection of size 1 without any good way to undo it. If this becomes a thing, I should add an unselect (Right mouse button, might be a good candidate, but then what about mac users?). Alternatively one could ignore looping for selections of size 1 (but again, a special case seems kinda weird and artificial).
While it'd be nice, I'm also afraid this behaviour may not be very intuitive to new users.
Wow, before I could reply, you implemented it already. I wanted to write we should enjoy first what we have already, which is plenty. However yesterday during my testing, this was exactly what was missing kind of. When experimenting, you like some parts, and keeping those save, and continuing in other ranges is just perfect. Thanks a lot. Will test it soon.
Yes, I wanted to suggest, if block bigger than 1 apply then this new technique.
How to communicate to new users? Using multiple ways.
1. Youtube videos, by adding plenty new videos, many users will get the concept automatically
2. Telling it is kind of MC-202 style (pitches are separately recorded than timing and duration)
3. Telling it is same as cfillion step sequencer (replace mode), only better because there you need to select all notes first, here we get this feature immediately, plus here we can limit to a block range, in cifillions step sequencer we could also select new notes, but doing all those selections permanently is much more fun in the tracker
Now having this powerful replace mode, do we have a name for this technique already? "Note based advancing replace mode", maybe? I am so happy we have lua possibilities in reaper and such a great developer and human in this community, who can implement basically anything, at maximum within a day, usually within a few minutes.
Regarding options discovery, those who are really interested will ask, watch, read, try and finally discover.
I am already wondering what will be next big "novelty" for hackey trackey. It is interesting new inventions always need time, and are building on top of already available features. Now we have entered a new space, after a bit more time, we can think how to expand this space even further. Time will tell.
What I really like in hackey trackey, workflow wise, it can do all I wanted, like loop a pattern, e.g. 1 bar, if you like, duplicate and continue there making a new pattern, without any workflow resistance, this works just perfectly. You can start and in one sequence create 10 patterns for example. With this new "note based advancing replace mode" this gets even more fun and powerful. You get much faster results you would want to reach. Finally the fact that we can design patterns for redux in hackey trackey is magic. saike did you try redux or are you using it as well?
Yeah, true. Let's play with it for a while and see how it feels. I've added a description of the new functionality to the FAQ in the readme on Github such that the information at least is there if people are looking for it.
If you drag in a midi file, nothing complicated, 2 bars of some notes maybe, and your default settings are "linked midi files" and not in project midi files, for midi files. Such midi files are not recognized by hackey patterns (also not by hackey trackey I guess), meaning they are playing, but not shown in the excel grid of hackey patterns.
Now, if you go on such a midi item, in reaper arrange, hitting f1 (meaning triggering hackey trackey on this item), then reaper is hanging here.
See, Options, Preferences, Media, MIDI, MIDI settings, Import existing MIDI files, .MID file references (and not MIDI items in project, recommended)
I hope my description above is clear enough and reproducable.
If you drag in a midi file, nothing complicated, 2 bars of some notes maybe, and your default settings are "linked midi files" and not in project midi files, for midi files. Such midi files are not recognized by hackey patterns (also not by hackey trackey I guess), meaning they are playing, but not shown in the excel grid of hackey patterns.
Now, if you go on such a midi item, in reaper arrange, hitting f1 (meaning triggering hackey trackey on this item), then reaper is hanging here.
See, Options, Preferences, Media, MIDI, MIDI settings, Import existing MIDI files, .MID file references (and not MIDI items in project, recommended)
I hope my description above is clear enough and reproducable.
Thanks for the detailed report. I just tried it.
For me it doesn't crash. It just takes a very long time (took about a minute for a MIDI file with a lot of channels). Maybe your OS is forcing the application to terminate after a certain amount of time?
When importing a MIDI item with a lot of note data, the assignment to different columns can take a long time as it changes the note properties of all the notes individually.
Maybe something is happening that's specific to your MIDI file though. Care to share the file on which the crash happens for you?
Thanks saike, will try again, if it happens in same form, of course I can share the midi here. In my case however I had a few of such tracks, where I had dragged in midi files, so all of them were .mid file references, and selecting one of them, triggering f1 locked reaper, ok I did not wait 1 minute, I can do so next time, but my files did not contain so many notes. Well, only data should speak...
Thanks saike, will try again, if it happens in same form, of course I can share the midi here. In my case however I had a few of such tracks, where I had dragged in midi files, so all of them were .mid file references, and selecting one of them, triggering f1 locked reaper, ok I did not wait 1 minute, I can do so next time, but my files did not contain so many notes. Well, only data should speak...
It'd still be useful to have a small sample file to investigate. There's probably still performance optimizations I could do.
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,754
Hi,
Sorry for my late reply, I've been away from Reaper since a week
I should be using it again in the next days, and let you know if I find any bug.
Anyway, thank you again for all the Hackey Trackey updates !
It'd still be useful to have a small sample file to investigate. There's probably still performance optimizations I could do.
Do not remember what was it exactly, but could pitchbend events have such a negative effect eventually, I had also midi notes with pitch bending down, I guess, from half of the note length starting, you know for creating the typical pitchbass in dance music used everywhere million times, mainly in trance music.
The next time I try again, I will prepare also something for you for testing. (.rpp would be best, zipped directory with .rpp and .mid, using only free fx and jsfx, so any reaper user could use it immediately, synths maybe Synth1, Dexed, SQ8L, PG-8x, those should be more than enough, plus a few samples maybe, kick, snare, clap, hihat, loop or so)
I would like actually such "sharing projects" with a given limitation, e.g. "what can you with reaper in 1 bar of music using only above mentioned free vst + jsfx + a few given samples", the idea is being creative and using all Reapers powers for bring interest into this 1 bar music, even if you loop it for 10 minutes, it should not get boring, this would be the main idea and how this could be achieved in reaper, using which techniques and tricks, like RandomNoteGate, Gaussian humanization, parameter modulation, parameter linking, euclidian rhythms, plus the million powerful techniques possible inside hackey trackey.) Then sharing this .rpp as .zip with all content, so others can learn from those techniques. Having external linked .mid would make those templates even exchangeable, just switch midi, and it would work immediately with this new melody, plugged into this "varying structure".
The MIDI detector shouldn't be added manually and is only needed if you want to record notes by MIDI entry (Hackey Trackey adds it itself).
Did you install via Reapack? If so, then the script that opens the tracker is called tracker.lua (Actions -> Show Action list and then search for it).
I hope this helps
P.S. Psycle rules
Yes Reapack install, I wanted to give Reflectosaurus a spin and quickly became overwhelmed by the universe.......I did not do any reading because recently I am reading threads backwards and that's not good.
Thanks Sai'ke