Comments (22)
The "go to region x" part sounds like a candidate for a new ReaLearn target. Doing it via an action doesn't give you feedback, but if there would be a dedicated target for this, feedback would be possible. That's not so difficult to implement.
The "when cursor reaches the next region marker" parts sounds more like a source - an incoming event to trigger a target change. That could be implemented but would require some more thought because it would be the first non-MIDI source. It's very different in nature.
from realearn.
Implementing "go to region" as a trigger instead of an action was exactly my thought in order to allow midi feedback.
As for the "when cursor reaches the next region marker", I was thinking about it as part of the trigger itself, instead of an additional source. I think that sources for ReaLearn are fine as midi events only and adding this kind of non-midi source could make things a ton more complicated.
What I did as a custom action to make this work is
- Regions: go to region 01 after current region finishes playing
- Time Selection: copy loop points to time selection
- (optional) SWS: set transport repeat state
So I was thinking that this two or three actions could be a target as a whole. But I have no clue if the first part can be difficult to implement.
Does this make sense to you?
from realearn.
I renamed this to "Play region target" because there's no such term "trigger" in ReaLearn's wording (at least not as a noun).
I'm not sure if ReaLearn is suitable or should be suitable for a use case like that. Making "when cursor reaches the next region marker" a part of the target itself sounds too specialized. Doesn't really fit into ReaLearn's philosophy (which is to have generic sources that emit events which trigger something and generic targets that change a parameter within REAPER). Wouldn't it be possible to have this "when cursor reaches ..." logic outside of ReaLearn and just let ReaLearn deal with delivering the correct feedback value for the currently playing region?
from realearn.
Sorry for the "trigger", I just got confused with terms.
It definitely makes sense to me. If "feedback based on current region" is possible to implement then I think that there would be everything one needs, at least for the use cases I am thinking about.
from realearn.
I'm thinking about 2 targets:
- One to jump to a specific region (e.g. for use with a single button) - identified by its ID, independent from its position. Feedback would be ON if REAPER is currently playing this region, otherwise OFF.
- Another one to navigate between all available regions (e.g. for use with encoders, faders, prev/next buttons): Feedback value would correspond to the position within the project. This could turn any motor fader into a seek slider.
from realearn.
Having the first one available would be huge.
As for the second, I'm having a hard time figuring out how the feedback could be used except if you have a display on your device that can show the actual region number. Controlling and "reading/interpreting" a fader this way would be kinda tough IMO. The target could be very useful anyway.
A delicate thing to take into account would be also the jump timing. There are a few possibilities:
- jump when triggered (immediately)
- jump "when current region finishes playing
- jump with smooth seek (next bar)
Imo the first of the the three is useless, the second is ideal, the third is usable but only barely.
Thank you for looking into this
from realearn.
This will be fun :) Works already, just needs a bit polishing.
from realearn.
Great news, can't wait to test it!
from realearn.
I implemented the first target I've talked about for markers and regions. Regions use smooth seek.
from realearn.
@DLongoni Already gave it a spin? 2.6.0 still contained a known issue related to this feature but 2.7.1 fixes it.
from realearn.
Well... what can I say, it works like a charm!! Tested it in a few use cases, it works perfectly with both regions and markers!! Feedback tested on Behringer x touch compact, maybe later I'll try with the novation pad X. This is huge imo, a feature that could be cool to really a number of people...
A few minor remarks:
- user guide "marger" instead of "marker" typo
- user guide "...as the currently playing region or measure has finished playing..." for me nothing happens at the end of measure, the jump will happen at the end of the region. Thank god also, because having the cursor jump at end of measure would be really undesirable. I think this is just a minor mistake in the user guide, but if not maybe I didn't understand it properly
- I would mention in the user guide that all of this does not work in Record mode (I really think there is no way to make it work. Even sws and reaper action do not work in record mode)
Thank you so much, really awesome.
from realearn.
Glad it works well. Always good to not just test myself.
- user guide "marger" instead of "marker" typo
Thanks, fixed.
- user guide "...as the currently playing region or measure has finished playing..." for me nothing happens at the end of measure, the jump will happen at the end of the region. Thank god also, because having the cursor jump at end of measure would be really undesirable. I think this is just a minor mistake in the user guide, but if not maybe I didn't understand it properly
I just changed this into "If the project is playing, playback will continue with the given region as soon as the currently playing region (or measure if not in a region) has finished playing.".
- I would mention in the user guide that all of this does not work in Record mode (I really think there is no way to make it work. Even sws and reaper action do not work in record mode)
Good point, will add that as a note.
from realearn.
Awesome, thanks!
Tried with Launchpad X. Actions triggered perfectly, feedback is problematic, but it's a unit design issue, nothing to do with ReaLearn.
A final remark that I think would be important... When targeting regions, it would be great to have a "select region" flag, or even to do it by default. One can do it using two mappings on the same source and using the second mapping to trigger sws action "select region x", but it's not very elegant and in the spirit of ReaLearn, imho.
The reason why this is important is that there are plenty of actions (or generic reaper features) that work on selected areas, and if one has just pushed a button to go to a certain region, then it makes sense to perform your actions on that region. For instance if I realize that I have recorded a bad part on that region I might want to delete it, or to delete it for a specific track, or to mute it, and so on.. all things that are easy/better designed to do if the area is selected.
If you want I can open a new issue for this if this makes sense to you.
Thanks again!
from realearn.
I'm interested in what's the problem with Launchpad X. LED colors?
Yes, makes sense, please open an issue!
from realearn.
I'll try to make it short (=
- One can configure custom modes on the unit. Factory default is note velocity for each button, default led = off, turns green when pushed.
- I wanted CCs instead of Note Velocity, and I wanted them coloured by default. So I edited the custom modes to my liking.
- Now I want feedback to be sent to the unit, but there is no way I can make it work
- Reset to default state, tested with midi tools, the leds are lighting as explained in the reference manual
- I guess then that they failed to mention in the guide that you can send damn feedback only if you leave the custom modes in default state (I tried even just changing the default color of 1 button, then no feedback works for any button)
- I have to throw away the custom modes I developed
- Thank god (and you really) I can replicate them more or less by setting the "Source Min" value to the desired off color, and max to the desired On color.
So, after resetting to factory state the unit custom modes (the only ones that accept feedback at all) also regions are working! Yay!
from realearn.
Before you throw your custom modes away, you could also have a look at https://d2xhy469pqj8rc.cloudfront.net/sites/default/files/novation/downloads/4080/launchpad-programmers-reference.pdf. I didn't read it thoroughly but it looks like it can be programmed also in non-MIDI mode.
from realearn.
Thanks for pointing me towards that (= That guide is for the LP 1st edition, while the unit I have here now it the Launchpad X, which guide is here:
https://d2xhy469pqj8rc.cloudfront.net/sites/default/files/novation/downloads/4080/launchpad-programmers-reference.pdf
I have read it many times, and this version also looks like it could work, but in reality it does not, or at lease I haven't even come close to making it work (= If there is any testing needed though I can try that!
from realearn.
@DLongoni #223 could be a nice addition to your "feedback story". With that you can easily visualize in realtime how long the current region will still be playing ... provided you have a controller that has either circular LEDs or motor faders (with their position indicating the progress within the region).
from realearn.
That sounds awesome really!! Can you imagine any easy way to have the same thing displayed on the pc screen?
from realearn.
Either use a desktop OSC software (such as OSC Pilot) to build a kind of user interface and couple it with ReaLearn or wait for #235.
from realearn.
All good considerations, thanks (=
from realearn.
#235 is implemented, check it out
from realearn.
Related Issues (20)
- Add preset metadata capabilities HOT 1
- Add extension menu
- Dynamic Track Control FX targets only work with one 1 fx HOT 3
- Add Luau type definitions
- Future: Improve Luau type checking
- target focused FX’s
- Bug - Relative value issue when moving cc controler without selected track
- Midi Fighter set pan on selected track defaults to 0.8%R on center (in Reaper) HOT 3
- Slow OSC processing on high load
- Improve input/output pickers in ReaLearn header panel
- Don't participate in REAPER's undo
- Use colors to make ReaLearn GUI visually easier to understand
- Auto Load using FX Name not working
- FX Parameters not available if FX is inside a Container
- Send Param To Midi
- Send OSC on Program Change MIDI item HOT 2
- Playtime 2 - Early Access - Feedback HOT 6
- Fallback to initial preset when using auto-load HOT 4
- Realearn not showing up after following install instruction HOT 10
- Preset Crawler Error: "Failure while crawling, couldn't get preset name"
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from realearn.