Old 05-25-2018, 04:31 PM   #81
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,451
Default

Quote:
Originally Posted by _TIP_ View Post
1. "play from current position" is still broken and
Hopefully fixed now in v1.62

Quote:
Originally Posted by _TIP_ View Post
2. The script can't show more than 16 steps at a time, instead is showing a side bar that you can scroll if you want to see more than those 16 steps (lines).
Set back to 32.

Quote:
Originally Posted by _TIP_ View Post
Also, a few nice shortcuts I used to use in Renoise was holding Shift + END, would highlight the area from the position you are, all the way down to the last line. Shift + Home, would highlight the area from the position you are, all the way up to the first line. Shift + Page Down, would highlight the area from the position you are, 16 steps down and Shift + Page Up would highlight the area from the position you are, 16 steps Up.
Added, except the default page size is different (4). If you want a custom size, edit the cfg file in the scripts directory. Set page to 16 for instance.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 05-25-2018, 08:38 PM   #82
_TIP_
Human being with feelings
 
_TIP_'s Avatar
 
Join Date: Apr 2014
Location: NY
Posts: 175
Default

Quote:
Originally Posted by sai'ke View Post
Hopefully fixed now in v1.62


Set back to 32.


Added, except the default page size is different (4). If you want a custom size, edit the cfg file in the scripts directory. Set page to 16 for instance.
Great update sai'ke, everything works as it should now!!! One little thing I've noticed is that when I have the setting "Automatic record-arm when track selected" in my track and then enable the record in the tracker script, the setting on my track is changing as well. Would you please be able to make the tracker keep that setting intact? Also, is there a way to close the tracker with a shortcut? My current shortcut to open the script is F8 and it opens just fine but when you press again the shortcut to close it, nothing happens...
_TIP_ is offline   Reply With Quote
Old 05-26-2018, 09:10 AM   #83
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,451
Default

Quote:
Originally Posted by _TIP_ View Post
Great update sai'ke, everything works as it should now!!! One little thing I've noticed is that when I have the setting "Automatic record-arm when track selected" in my track and then enable the record in the tracker script, the setting on my track is changing as well. Would you please be able to make the tracker keep that setting intact? Also, is there a way to close the tracker with a shortcut? My current shortcut to open the script is F8 and it opens just fine but when you press again the shortcut to close it, nothing happens...
Yes, this behavior is as intended. Sadly there is no way to play notes in REAPER other than via recording using the virtual keyboard, for which the recording status of your track has to be changed. This is why by default, you had to explicitly press CTRL+R (so that you were aware when the recording status of your tune changes).

I added your close tracker shortcut under F8 for the renoise keymap and CTRL+F12 for the default keymap.

Today I also updated the clipboard pasting behavior (in v1.63). Management of the clipboard is a bit tricky because of how information is stored. Before, no attempt was made to 'glue' the notes into the target pattern (resulting in note offs after the pasted section). Now there's a mending step involved. If you run into any problems with the new paste and clear functions, please let me know and activate the legacy option in the options to get the old behavior back (It's called do not mend after paste).

If you do run into a bug, try and find a reproducible way of triggering it. The more descriptive you can be in what you did, what you expected and what happened when you run into a bug, the sooner I can fix bugs in the system. Bug reports are super helpful .

Enjoy!
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 05-27-2018, 07:15 PM   #84
_TIP_
Human being with feelings
 
_TIP_'s Avatar
 
Join Date: Apr 2014
Location: NY
Posts: 175
Default

You nailed it my friend, "Sai'ke for president"!!! Everything seems to be working fine so far, I'll have to do a little bit more in depth testing during the week though, so we make sure there are no hidden bugs in that amazing piece of software :-)
As for my preferred setting "Automatic record-arm when track selected", i found a work around by creating a custom action and combining the "tracker.lua" with the "Automatic record-arm when track selected" action, so everything works the way i want now!
Thank you so much for your time and dedication, I want you to know that I really appreciate what you are doing in general for the community and especially for the Tracker script that i personally love!

Last edited by _TIP_; 05-27-2018 at 10:56 PM.
_TIP_ is offline   Reply With Quote
Old 05-29-2018, 07:19 AM   #85
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,451
Default

Ghehe, thanks for the kind words. Glad it's useful to you
Feel free to let me know if there are more issues.

I'm still planning on adding custom keybindings sometime in the future, but haven't decided on the best way of approaching it yet.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 06-11-2018, 06:46 AM   #86
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,451
Default

Added a few more shortcuts

Insert row - Inserts element for all columns (default = CTRL + Ins)
Remove row - Removes element for all columns (default = CTRL + Backspace)
Wrap down - Shifts pattern down (wraps around) (default = CTRL + Shift + Ins)
Wrap up - Shifts pattern up (default = CTRL + Shift + Backspace)

Note that one direction is more reliable when wrapping, since things sometimes act funny at the edges of an automation item.

Also added a check to prevent NaN envelope points when interpolating a single cell x_x.

Also been looking at how to have Kontakt emulate offsets (something I use *a lot*). Turns out it is not so difficult as long as the instrument is not locked.


After loading an instrument hit the edit instrument button. If the instrument is locked then I'm afraid you cannot achieve sample offsets with this instrument.



Switch the sampling mode from DFD to sampler. Note that this will increase memory consumption of the instrument as well, so it's best to only do this when you really need it for an instrument.



Go into the scripts editor and find the first empty script. In this script paste the following code (you can save the script as a preset so you have it at the ready for the future):

Code:
on init
declare ui_knob $sampleStart (0,1000000,1)
set_text ($sampleStart, "S. Start")
set_control_par(get_ui_id($sampleStart),$CONTROL_PAR_AUTOMATION_ID,0) 
set_control_par_str(get_ui_id($sampleStart),$CONTROL_PAR_AUTOMATION_NAME,"Sample offset")
end on
on ui_control ($sampleStart)
set_knob_label ($sampleStart, $sampleStart/10000)
end on
on note
ignore_event ($EVENT_ID)
play_note($EVENT_NOTE,$EVENT_VELOCITY,$sampleStart,-1)
end on
Then, as a final step, check the parameter in the reaper FX box, and offset should now be visible when opening the tracker.

I was thinking, might be fun to do a youtube vid showing the tracker, since thanks to all the features now, it can now be a bit overwhelming reading the wall of text on github. Anyone feel like making one?

Also updated the initial post with some more images
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 06-26-2018, 03:45 AM   #87
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Wow, greatest thing that could happen to Reaper. Thanks a lot!!! Did not check it yet. A few prequestions:

-does it have the playlist
-can we toggle between playlist and pattern editor using ENTER

Anyone not knowing buzz, buze and its variants: The best tracker on universe, of all time. Its elegance lies in its simplicity. Enter to do detail work, in the patter editor, or arrange in bigger zoomed out view, playlist, is just unbeatable!
TonE is offline   Reply With Quote
Old 06-26-2018, 04:54 AM   #88
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
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   #89
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
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   #90
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Somehow related:
https://forum.cockos.com/showthread.php?t=190049
TonE is offline   Reply With Quote
Old 06-28-2018, 04:03 AM   #91
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,451
Default

I have considered coding a pattern sequencer like the buzz one, because I would also quite like one, but I haven't implemented one yet.

The problem is that you need a mapping somehow to which MIDI item is what pattern. I guess this could be stored similarly to how I store the tracker options (via text objects), but I would have to also add a mechanism that makes the tracker act across multiple MIDI items with the same 'pattern ID'. "New" patterns created in REAPER/outside of the tracker would have to be added when found.

This is all possible, but how would you deal with patterns that have not yet been placed? In the way the tracker plug currently works, the MIDI item has to at least exist to be displayed. And it has to be present on the same track (in order to get the same compatible FX columns). I guess it would be possible to add a pattern 'graveyard' far beyond the end of the track or something, but also there there'd be tricky bits. Namely, I have to make sure they never overlap, since that would cause the automation items to become messed up.

Writing a pattern sequencer has a lot of potential problems, so I've decided to write this tracker plugin first and letting it mature a bit before taking on another project. I'm also a bit swamped at my day job at the moment which is causing my inactivity.

Long story short, maybe in the future!
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 06-28-2018, 05:07 AM   #92
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Thanks a lot, it would help for a start being able to 'break' from point to end of item via a tracker interface? It would be almost same as the tracker allowing for each step values of 'break' or normal. No item management at all for this first variant. It would do following:

if 'break'
-split at point
-mute from point until end of item

if normal
-unmute region
-glue with surrounding

No matter what is 'under' that time step, it would be muted or unmuted, so it would even work with audio items, not only midi. I think even buzz did not have this.

It does not hurry at all, we had nothing for so many years, we all can wait. Just wanted to bring out the ideas on this beautiful forum with so many talented creative geniusses (genia?).

Last edited by TonE; 06-28-2018 at 12:23 PM. Reason: added break
TonE is offline   Reply With Quote
Old 06-28-2018, 11:08 AM   #93
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

What I described as mute I meant mainly break of buzz, which is supercool. Nobody needs normal mute
TonE is offline   Reply With Quote
Old 06-28-2018, 12:25 PM   #94
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Do we have access to each tracker hotkey as direct 'action' from outside of the tracker? Then we could combine them with the millions of other actions of reaper, over time creating unknown new options.
TonE is offline   Reply With Quote
Old 06-28-2018, 12:39 PM   #95
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

What about changing items among tracks (vertical), not only in same track (horizontal)?
TonE is offline   Reply With Quote
Old 06-28-2018, 12:42 PM   #96
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

I have a new name suggestion for this: blast tracker, as it blasts anything else away, together with reaper in the background.
TonE is offline   Reply With Quote
Old 07-04-2018, 01:19 AM   #97
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Quote:
Originally Posted by _TIP_ View Post
The other think i was talking about in my previous post, was Shrinking or Expanding a pattern witch it would change the midi to double or half speed...

Once more, Thank you so much for everything, i really love your script!!!
Another method worth trying would be:
-close tracker view
-run some reaper action (e.g. shrink/expand pattern)
-open tracker view

Save as custom action. Repeat as often as you wish.
TonE is offline   Reply With Quote
Old 07-04-2018, 01:42 AM   #98
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Quote:
Originally Posted by sai'ke View Post

The problem is that you need a mapping somehow to which MIDI item is what pattern. I guess this could be stored similarly to how I store the tracker options (via text objects), but I would have to also add a mechanism that makes the tracker act across multiple MIDI items with the same 'pattern ID'. "New" patterns created in REAPER/outside of the tracker would have to be added when found.

... I guess it would be possible to add a pattern 'graveyard' far beyond the end of the track or something, but also there there'd be tricky bits.
Just wanted to suggest same idea, using some MAGIC 'song_end' marker, any items after this would count as patterns from left to right, mapped to 0,1,2... then a,b,c...z. In buzz lots of arrangements used anyway only 00 and 01

The coolness of abobe method would be, you could later switch those pattern items to other items, but keeping the arrange structure, and it should automatically adapt in theory. The names of the pattern items could be even used, names like 0,1,2,... then a,b,c...z, keeping things simple. Every track would be allowed to contain only once an item named 0 for example, or z. And exactly this would be used whenever you used that value in playlist. Or playlist could add such named empty items at the beginning, 0,1,2...9, then a,b,c...z. Those are your patterns to work with. I would prefer a saving mechanism in directories, to keep most flexibility power of Reaper, so for each a directory: 0,1,2...9 then a,b,c...z. Later whichever items/midi files you throw into this directory it could be switched against other files from same directory. Every reaper tracker project could contain those directories:
PHP Code:
reaper_project/tracker/0/your_midi_files_or_items_go_here.mid, as many as you want
                       1
                       2
                       
...
                       
9
                       a
                       b
                       c
                       
...
                       

Using above directory style, tracker would not even need the requirement of last magic marker in arrange, it would simply look into those directory contents. If there is a directory '0' in directory 'tracker' use first directory content .mid file as pattern 0 for placement, alphabetical sorting. The next element would be 1.

This method would have lots of advantages:
-buzz playlist pattern placement elegance and simplicity
-(hope) buzz playlist break addition easily
-usage of normal directory structures which are universally compatible as we will stick to those directory names hardly, 0,1,2...9 and a,b,c...z
-usage of your predesigned gazillion of midi files/patterns in those subdirs possible
-best of both worlds, use buzz playlist power plus all your available midi power from the past
TonE is offline   Reply With Quote
Old 07-04-2018, 02:05 AM   #99
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Or the graveyard is the normal arrange and after the magic 'song_marker' the playlist arranging is starting! This would be compatible with any reaper project. Mapping available items from left to right until 'song_marker' to the pattern values 0,1,2...9 then a,b,c...z.

Designing of patterns would happen in normal arrange. Placement in buzz playlist.

In short you could have two arrangements in one with above style. On the left in arrange (before 'song_marker') the default arrange we know from reaper, on the right (after 'song_marker') buzz playlist style created arrange!

I think I would like this method mostly, as it is compatible with any reaper project, but still you can have your buzz playlist fun on the right, if you want. Playtime does something similar, but buzz playlist way of generating arrangements would be much more fun or precise of course.
TonE is offline   Reply With Quote
Old 07-04-2018, 08:46 AM   #100
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Did not understand the Out[x] feature in tracker. If I change it using F2/F3, close the tracker, reopen it, Out is again set to 1. So it seems not to keep its changed value, is this normal, what am I doing wrongly?

Second question, would not it be better if the Ch1..16 in the tracker would be hardly connected to their respective midi channels? So any note placed on track 'Ch 2' should send its notes on midi channel 2. Otherwise I did not get the current logic yet.

On my computer, in wine, 32-bit Reaper, tracker
-does not keep the Out[x] value after closing, reopening of tracker
-Ch x, are not hardly bound to their midi channels

Maybe I should read its manual more closely, from logical standpoint, both above important cases did not work out.

Oh, it seems I have to use Out[C] so all channel values are used, starting from midi channel 2. Ch 1 in tracker means midi channel 2. I guess it would be an improvement if Ch 2 in tracker would mean midi channel 2, and not midi channel 3. Btw. I am experimenting using a single Farbrausch V2 multi vsti, loaded into a track, then adding multiple child tracks, adding an item there, editing using tracker. Out[C] option is quite cool. You can directly access any of the 16 sounds.

Last edited by TonE; 07-04-2018 at 08:53 AM.
TonE is offline   Reply With Quote
Old 07-04-2018, 09:13 AM   #101
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Can we have for each of the 16 channels also a column for instrument selection, meaning program change column?

That would be perfect, being able to directly edit for each column:
-notes
-velocity
-program change (not available yet, it seems)

Playing around with those values and having great fun!
TonE is offline   Reply With Quote
Old 07-04-2018, 09:29 AM   #102
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Time for some youtube. Came before vanhaze

https://www.youtube.com/watch?v=X6gJbROCpNY

Last edited by TonE; 07-10-2018 at 11:43 AM.
TonE is offline   Reply With Quote
Old 07-05-2018, 09:29 AM   #103
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
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   #104
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,451
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   #105
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
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   #106
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,451
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   #107
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
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 07-08-2018, 03:27 AM   #108
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Tested new cc per column feature quickly on SQ8L:
-cc74 works nicely to modulate the low pass filter

However
-cc32 does not work correctly for triggering program change events in Reaper, also not with other synths, tried farbrausch V2

I guess maybe Reaper needs before each cc32 additionally a cc00. I tried doing this manually by adding another cc00 column, BUT tracker allows from cc01 upwards it seems, cc00 is just ignored, no additional cc column is added.

Those are my current findings. Maybe anyone knows more about how to trigger correct program change events in Reaper. My guess would be, as mentioned above:

cc00 + cc32 == program change (guess)

Last edited by TonE; 07-08-2018 at 03:36 AM.
TonE is offline   Reply With Quote
Old 07-09-2018, 03:56 AM   #109
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,451
Default

Hmm, interesting.

Ah, that 00 is not allowed is unintentional. I will make sure that is allowed next time I work on this.

Can you confirm your guess whether those two events would be sufficient by adding it manually via events in the midi editor?
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-09-2018, 06:10 AM   #110
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

My guess is coming from the fact, it seems reaper accepts only program change as real program change if there is a bank select just before that event.

bank select = cc00
program change = cc32

combining both together should do the trick. Reaper shows events internally in the midi editor then as PC (program change) and not CCxx.
TonE is offline   Reply With Quote
Old 07-09-2018, 03:04 PM   #111
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,451
Default

Hello,

I tried playing with the V2. It seems that CC00 and CC32 are not sufficient (I did add the ability to have CC00 controlled though). They can select a bank, but not a patch. For that you really need Program Change, which is a different beast altogether.

However, fear not! I have added program change as a per-channel column option for you. Hit CTRL + SHIFT + P to unlock it! Unfortunately, it made my code quite a bit more messy, but some things can't be helped I suppose

Remember that in the options you need to have the option marked with beta checked.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]

Last edited by sai'ke; 07-09-2018 at 03:18 PM.
sai'ke is offline   Reply With Quote
Old 07-10-2018, 07:55 AM   #112
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Thanks a lot, it is working perfectly. Now the fun can start, be it farbrausch V2, SQ8L or Synth1 with its millions banks and patches. Did not test yet the bank switching but I am sure it will work. Checked quickly how many banks I have for Synth1, 95 banks (00..94), last being Ann Bank 1. In short, thousands of sounds to play with in the tracker, editing in atomic level. Same is true if you fill shortcircuit v1.1.2 sampler with lots of samples, spread over all 15 midi channels, then also triggering those via your genious tracker.

Thanks my friend!


Next thing I should try is how well it works out to combine the tracker with any action of Reaper, via
(1) close tracker
(2) trigger action
(3) start tracker

If this works nicely, there are almost no limits for ANY kind of editing, even directly from the tracker itself.

For the future, for the buzz playlist I would wish a logic like 'auto loop' feature up to the next item or song end (last item on arrange, or last marker, or last region). This would be similar to the notes behaviour in the tracker itself, the note length is auto-cut if you add a new note. The same should happen to those looped items, as soon as you place a new item there, it would break the auto-loop of previous item, I am sure you know this from Logic as well.

Last edited by TonE; 07-10-2018 at 08:02 AM.
TonE is offline   Reply With Quote
Old 07-10-2018, 11:05 AM   #113
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Having in default key mapping also same features of renoise mapping for f9,f10,f11,f12 would be cool. Those 4 keys are so useful, I would add them even to all key mappings, e.g. default is using only f9 for harmony helper, those could be moved instead to something like ctrl+f9.

I will just do some editing now.

Added some control, by making first entry a 1, instead of 0:
PHP Code:
    keys.harmony        = { 1,    0,  0,    26169 }         -- F9
    keys
.options        = { 1,    0,  0,    6697265 }       -- F11    
    keys
.panic          = { 1,    0,  0,    6697266 }       -- F12 
Then taking over same from renoise:
PHP Code:
    keys.m0             = { 0,    0,  0,    26169.0 }       -- F9
    keys
.m25            = { 0,    0,  0,    6697264.0 }     -- F10
    keys
.m50            = { 0,    0,  0,    6697265.0 }     -- F11
    keys
.m75            = { 0,    0,  0,    6697266.0 }     -- F12 
This is useful, as often you want to do some minor changes to the end of the bar, which you can do now hitting f12, then editing there.
TonE is offline   Reply With Quote
Old 07-10-2018, 11:06 AM   #114
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Quote:
Originally Posted by sai'ke View Post
Unfortunately, it made my code quite a bit more messy, but some things can't be helped I suppose
Sorry about this.
TonE is offline   Reply With Quote
Old 07-10-2018, 11:31 AM   #115
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Tip for Synth1 users with tracker.
Synth1, click 'opt', then uncheck 'select program from host', this is important as bank select + program change switchings seem to keep Reaper too busy if you keep the mentioned option. After unchecking Reaper seems to have no troubles, you can go wild with your experiments in your tracker.

Second tip for Synth1 with tracker, hit ctrl+shift+a, type 32, and use this column for adding bank changes. ctrl+shift+p does the program changes, as we have now, thanks to saike.

Last edited by TonE; 07-10-2018 at 11:46 AM.
TonE is offline   Reply With Quote
Old 07-10-2018, 11:41 AM   #116
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

One more youtube, showing shortly that program change and bank select in tracker is working.


https://www.youtube.com/watch?v=DxedgHCbBvY
TonE is offline   Reply With Quote
Old 07-10-2018, 04:36 PM   #117
Nixon
Human being with feelings
 
Nixon's Avatar
 
Join Date: Dec 2011
Posts: 406
Default

Is there a shortcut for switching tracks? Also I think column mute might come in handy too.
Nixon is offline   Reply With Quote
Old 07-10-2018, 11:16 PM   #118
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

In my view switching items should do also following:
-set time selection to selected item
-set loop to time selection

So you will see and hear immediately the new selection, continuing playing around there.

If item selection in neighbour tracks would exist, same also there.

Another youtube, playing around in shortcircuit 1.1.2 with tracker, first column can be used for muting steps, creating breakish feel:

https://www.youtube.com/watch?v=1FWcHgaGbqQ
TonE is offline   Reply With Quote
Old 07-11-2018, 03:18 PM   #119
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,451
Default

Quote:
Originally Posted by TonE View Post
Having in default key mapping also same features of renoise mapping for f9,f10,f11,f12 would be cool. Those 4 keys are so useful, I would add them even to all key mappings, e.g. default is using only f9 for harmony helper, those could be moved instead to something like ctrl+f9.

I will just do some editing now.

Added some control, by making first entry a 1, instead of 0:
PHP Code:
    keys.harmony        = { 1,    0,  0,    26169 }         -- F9
    keys
.options        = { 1,    0,  0,    6697265 }       -- F11    
    keys
.panic          = { 1,    0,  0,    6697266 }       -- F12 
Then taking over same from renoise:
PHP Code:
    keys.m0             = { 0,    0,  0,    26169.0 }       -- F9
    keys
.m25            = { 0,    0,  0,    6697264.0 }     -- F10
    keys
.m50            = { 0,    0,  0,    6697265.0 }     -- F11
    keys
.m75            = { 0,    0,  0,    6697266.0 }     -- F12 
This is useful, as often you want to do some minor changes to the end of the bar, which you can do now hitting f12, then editing there.
Feel free to send me a full layout and I will add it as an extra option in the base tracker itself. Then you don't have to change it with every update.

Quote:
Originally Posted by TonE View Post
Sorry about this.
No problem! This always happens over time. Mess accumulates, and is cleaned up iteratively when it gets too bad

Quote:
Originally Posted by Nixon View Post
Is there a shortcut for switching tracks?
For the shortcut for switching tracks, there is now: CTRL + SHIFT + <- / ->

Quote:
Also I think column mute might come in handy too.
It's on the to-do list, but I have to think about how to handle this best. The issue is that the tracker does not see 'beyond' the MIDI item at the moment and it would not be an easy change to implement. Would it be acceptable if it'd just mute a column for that one pattern? What key do you have in mind?

Quote:
Originally Posted by TonE View Post
In my view switching items should do also following:
-set time selection to selected item
-set loop to time selection
I've added this as an option under options.

Quote:
Originally Posted by TonE View Post
if 'break'
-split at point
-mute from point until end of item

if normal
-unmute region
-glue with surrounding

No matter what is 'under' that time step, it would be muted or unmuted, so it would even work with audio items, not only midi. I think even buzz did not have this.
I'm not sure how this'd work. You'd want all the notes at the break point to be split? And then everything under the split to be muted (unplayed) midi notes? And then when you remove the break, it has to glue it back together again? What about notes that were split before you put the break in? I wouldn't have any way to determine that they shouldn't be glued.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-12-2018, 03:05 AM   #120
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

This is same as default only added f9..f12 from renoise, shifted default's f9..f12 to control+f9..f12, called it 'tone' as my forum nick.

Help was removed, as too long for forum posting.
PHP Code:
  if keyset == "tone" then
    
--                    CTRL    ALT SHIFT Keycode
    keys
.left           = { 0,    0,  0,    1818584692 }    -- <-
    
keys.right          = { 0,    0,  0,    1919379572 }    -- ->
    
keys.up             = { 0,    0,  0,    30064 }         -- /\
    
keys.down           = { 0,    0,  0,    1685026670 }    -- \/
    
keys.off            = { 0,    0,  0,    45 }            -- -
    
keys.delete         = { 0,    0,  0,    6579564 }       -- Del
    keys
.delete2        = { 0,    0,  0,    46 }            -- .
    
keys.home           = { 0,    0,  0,    1752132965 }    -- Home
    keys
.End            = { 0,    0,  0,    6647396 }       -- End
    keys
.toggle         = { 0,    0,  0,    32 }            -- Space
    keys
.playfrom       = { 0,    0,  0,    13 }            -- Enter
    keys
.enter          = { 0,    0,  0,    13 }            -- Enter        
    keys
.insert         = { 0,    0,  0,    6909555 }       -- Insert
    keys
.remove         = { 0,    0,  0,    }             -- Backspace
    keys
.pgup           = { 0,    0,  0,    1885828464 }    -- Page up
    keys
.pgdown         = { 0,    0,  0,    1885824110 }    -- Page down
    keys
.undo           = { 1,    0,  0,    26 }            -- CTRL Z
    keys
.redo           = { 1,    0,  1,    26 }            -- CTRL SHIFT Z
    keys
.beginBlock     = { 1,    0,  0,    }             -- CTRL B
    keys
.endBlock       = { 1,    0,  0,    }             -- CTRL E
    keys
.cutBlock       = { 1,    0,  0,    24 }            -- CTRL X
    keys
.pasteBlock     = { 1,    0,  0,    22 }            -- CTRL V
    keys
.copyBlock      = { 1,    0,  0,    }             -- CTRL C
    keys
.shiftItemUp    = { 0,    0,  1,    43 }            -- SHIFT Num pad +
    
keys.shiftItemDown  = { 0,    0,  1,    45 }            -- SHIFT Num pad -
    
keys.scaleUp        = { 1,    1,  1,    267 }           -- CTRL SHIFT ALT Num pad +
    
keys.scaleDown      = { 1,    1,  1,    269 }           -- CTRL SHIFT ALT Num pad -   
    
keys.octaveup       = { 1,    0,  0,    30064 }         -- CTRL + /\
    
keys.octavedown     = { 1,    0,  0,    1685026670 }    -- CTRL + \/
    
keys.envshapeup     = { 1,    0,  1,    30064 }         -- CTRL SHIFT + /\
    
keys.envshapedown   = { 1,    0,  1,    1685026670 }    -- CTRL SHIFT + /\
    
keys.help           = { 0,    0,  0,    26161 }         -- F1
    keys
.outchandown    = { 0,    0,  0,    26162 }         -- F2
    keys
.outchanup      = { 0,    0,  0,    26163 }         -- F3
    keys
.advancedown    = { 0,    0,  0,    26164 }         -- F4
    keys
.advanceup      = { 0,    0,  0,    26165 }         -- F5
    keys
.stop2          = { 0,    0,  0,    26168 }         -- F8
    keys
.harmony        = { 1,    0,  0,    26169 }         -- F9
    keys
.options        = { 1,    0,  0,    6697265 }       -- F11    
    keys
.panic          = { 1,    0,  0,    6697266 }       -- F12
    keys
.setloop        = { 1,    0,  0,    12 }            -- CTRL L
    keys
.setloopstart   = { 1,    0,  0,    17 }            -- CTRL Q
    keys
.setloopend     = { 1,    0,  0,    23 }            -- CTRL W
    keys
.interpolate    = { 1,    0,  0,    }             -- CTRL I
    keys
.shiftleft      = { 0,    0,  1,    1818584692 }    -- Shift + <-
    
keys.shiftright     = { 0,    0,  1,    1919379572 }    -- Shift + ->
    
keys.shiftup        = { 0,    0,  1,    30064 }         -- Shift + /\
    
keys.shiftdown      = { 0,    0,  1,    1685026670 }    -- Shift + \/
    
keys.deleteBlock    = { 0,    0,  1,    6579564 }       -- Shift Del
    keys
.resolutionUp   = { 0,    1,  1,    30064 }         -- SHIFT Alt Up
    keys
.resolutionDown = { 0,    1,  1,    1685026670 }    -- SHIFT Alt Down
    keys
.commit         = { 0,    1,  1,    13 }            -- SHIFT Alt Enter
    keys
.nextMIDI       = { 1,    0,  0,    1919379572.0 }  -- CTRL + ->
    
keys.prevMIDI       = { 1,    0,  0,    1818584692.0 }  -- CTRL + <-
    
keys.duplicate      = { 1,    0,  0,    }             -- CTRL D
    keys
.rename         = { 1,    0,  0,    14 }            -- CTRL N
    keys
.escape         = { 0,    0,  0,    27 }            -- Escape
    keys
.toggleRec      = { 1,    0,  0,    18 }            -- CTRL R
    keys
.showMore       = { 1,    0,  0,    11 }            -- CTRL + +
    
keys.showLess       = { 1,    0,  0,    13 }            -- CTRL + -
    
keys.addCol         = { 1,    0,  1,    11 }            -- CTRL Shift + +
    
keys.remCol         = { 1,    0,  1,    13 }            -- CTRL Shift + -
    
keys.addColAll      = { 1,    0,  1,    }             -- CTRL Shift A
    keys
.addPatchSelect = { 1,    0,  1,    16 }            -- CTRL Shift P
    keys
.tab            = { 0,    0,  0,    }             -- Tab
    keys
.shifttab       = { 0,    0,  1,    }             -- SHIFT Tab
    keys
.follow         = { 1,    0,  0,    }             -- CTRL F
    keys
.deleteRow      = { 1,    0,  0,    6579564 }       -- Ctrl Del
    keys
.closeTracker   = { 1,    0,  0,    6697266 }       -- Ctrl F12
    
    keys
.insertRow      = { 1,    0,  0,    6909555 }       -- Insert row CTRL+Ins
    keys
.removeRow      = { 1,    0,  0,    }             -- Remove Row CTRL+Backspace
    keys
.wrapDown       = { 1,    0,  1,    6909555 }       -- CTRL SHIFT Ins
    keys
.wrapUp         = { 1,    0,  1,    }             -- CTRL SHIFT Backspace    

    keys
.m0             = { 0,    0,  0,    26169.0 }       -- F9
    keys
.m25            = { 0,    0,  0,    6697264.0 }     -- F10
    keys
.m50            = { 0,    0,  0,    6697265.0 }     -- F11
    keys
.m75            = { 0,    0,  0,    6697266.0 }     -- F12

    
-- keys.m0             = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned
    
-- keys.m25            = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned
    
-- keys.m50            = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned
    
-- keys.m75            = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned
    keys
.off2           = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned    
    keys
.renoiseplay    = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned
    keys
.shpatdown      = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned
    keys
.shpatup        = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned
    keys
.shcoldown      = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned
    keys
.shcolup        = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned
    keys
.shblockdown    = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned
    keys
.shblockup      = { 0,    0,  0,    500000000000000000000000 }    -- Unassigned    
    
    keys
.cutPattern     = { 1,    0,  0,    500000000000000000000000 }
    
keys.cutColumn      = { 1,    0,  1,    500000000000000000000000 }
    
keys.cutBlock2      = { 1,    1,  0,    500000000000000000000000 }
    
keys.copyPattern    = { 1,    0,  0,    500000000000000000000000 }
    
keys.copyColumn     = { 1,    0,  1,    500000000000000000000000 }
    
keys.copyBlock2     = { 1,    1,  0,    500000000000000000000000 }
    
keys.pastePattern   = { 1,    0,  0,    500000000000000000000000 }
    
keys.pasteColumn    = { 1,    0,  1,    500000000000000000000000 }
    
keys.pasteBlock2    = { 1,    1,  0,    500000000000000000000000 }
    
keys.patternOctDown = { 1,    0,  0,    500000000000000000000000.0 }
    
keys.patternOctUp   = { 1,    0,  0,    500000000000000000000000.0 }
    
keys.colOctDown     = { 1,    0,  1,    500000000000000000000000.0 }
    
keys.colOctUp       = { 1,    0,  1,    500000000000000000000000.0 }
    
keys.blockOctDown   = { 1,    1,  0,    500000000000000000000000.0 }
    
keys.blockOctUp     = { 1,    1,  0,    500000000000000000000000.0 }
    
    
keys.shiftpgdn      = { 0,    0,  1,    1885824110 }    -- Shift PgDn
    keys
.shiftpgup      = { 0,    0,  1,    1885828464 }    -- Shift PgUp
    keys
.shifthome      = { 0,    0,  1,    1752132965 }    -- Shift Home
    keys
.shiftend       = { 0,    0,  1,    6647396 }       -- Shift End 
Made also these modifications:

PHP Code:
    keys.octaveup       = { 1,    0,  1,    1919379572.0 }  -- CTRL Shift + ->
    
keys.octavedown     = { 1,    0,  1,    1818584692.0 }  -- CTRL Shift + <-
    -- 
keys.nextTrack      = { 1,    0,  1,    1919379572.0 }  -- CTRL Shift + ->
    -- 
keys.prevTrack      = { 1,    0,  1,    1818584692.0 }  -- CTRL Shift + <-

    -- 
keys.octaveup       = { 1,    0,  0,    30064 }         -- CTRL + /\
    -- 
keys.octavedown     = { 1,    0,  0,    1685026670 }    -- CTRL + \/
    
keys.prevTrack      = { 1,    0,  0,    30064 }         -- CTRL + /\
    
keys.nextTrack      = { 1,    0,  0,    1685026670 }    -- CTRL + \/ 

Last edited by TonE; 07-12-2018 at 05:07 AM.
TonE 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 01:28 AM.


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