Old 03-23-2010, 07:30 AM   #1
Padre_PC
Human being with feelings
 
Join Date: Sep 2009
Posts: 262
Default Fancy an envelope LFO generator?

So I've been working on this little toy lately...

Check out the "PADRE: Generate LFO in Time Selection for Selected Envelope" action and tell me what you think! Couple of bugs here and there I suppose but nothing too dangerous. This action is "object state"-based so be careful.

Source code coming soon if anyone's interested (damn I should wake up and join the SWS svn/google server!)
Attached Files
File Type: zip reaper_PadresExtension.zip (61.7 KB, 1072 views)
Padre_PC is offline   Reply With Quote
Old 03-23-2010, 10:29 AM   #2
denmla
Human being with feelings
 
Join Date: Jul 2009
Posts: 121
Default

Really great idea Padre, thanks a lot for your work!

Does it work for item envelopes (vol,pan,mute)as well? I`d def. use it for that purpose but cant get it here......is it me or?

Keep it on
denmla is offline   Reply With Quote
Old 03-23-2010, 10:40 AM   #3
sws
Code Monkey
 
sws's Avatar
 
Join Date: Sep 2007
Location: Madison, WI
Posts: 857
Default

Quote:
Originally Posted by Padre_PC View Post
Source code coming soon if anyone's interested (damn I should wake up and join the SWS svn/google server!)
Yes, you should! PM me your google login and I'll add you as a developer.
sws is offline   Reply With Quote
Old 03-23-2010, 10:47 AM   #4
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

YEAH!!

Tim's putting together a new "A-TEAM" lol

the only thing is the one who hasn't joined yet has the best "A-TEAM" name..

..FINGERS!!!!
musicbynumbers is offline   Reply With Quote
Old 03-23-2010, 10:47 AM   #5
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Forgot to say!

YES PADRE!!!

this sounds great! will try it soon!
musicbynumbers is offline   Reply With Quote
Old 03-23-2010, 11:49 AM   #6
NAS
Human being with feelings
 
NAS's Avatar
 
Join Date: Dec 2007
Location: In church, burning it down
Posts: 1,345
Default

Completely kick ass and more proof we need automation items so badly
Brilliant stuff Padre

NAS
__________________
Not Gods or Saints but HUMAN be
NAS is offline   Reply With Quote
Old 03-23-2010, 01:40 PM   #7
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Just tried it and it works nice so far, very accurate even at 128

You really should join the guys, the knowledge between the 3 of you is awe inspiring and would surely come up with some very very useful things (on top of all we have already been given!)
musicbynumbers is offline   Reply With Quote
Old 03-23-2010, 04:33 PM   #8
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

Excellent! This is something I've been wanting for Reaper for some time, and I never found the energy to do it properly myself. I greatly prefer generating automation shapes in this way over the overly complicated realtime parameter modulation system in Reaper...

There seems to be something funky happening with undo/redo but I am sure that can be sorted out if you release your source code...
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
Xenakios is offline   Reply With Quote
Old 03-23-2010, 05:21 PM   #9
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

I can confirm the funky undo thing, seems to miss steps sometimes, I got this with finger's extension too but not all the time.

Is it something inherent in the extension access.
musicbynumbers is offline   Reply With Quote
Old 03-24-2010, 12:37 AM   #10
Padre_PC
Human being with feelings
 
Join Date: Sep 2009
Posts: 262
Default

Thanks for the feedback guys, I appreciate it.

The plugin still needs some tweaking here and there: proper undo, timing (end of time selection points not removed or not added), new shapes, etc.

@denmla: you mean the same action but within item start/end positions instead of time selection? Can be done. I had a similar idea for MIDI items too (CC envelopes).

@Tim: I don't have a Google Code login at this time. I (svn-)checked out the SWS project but it wouldn't compile out of the box with my Visual Studio 2008 Express setup: stdafx.h missing and stuff like that. I'm pretty sure installing the Windows Platform SDK would fix this but for some reason I'm allergic to its installation (remember I'm a MinGw/GCC guy!) Well, I guess in the end I will probably install the damn thing...

@musicbynumbers: glad you like it. Now wait for the latest Automap Csurf build: I've added an "increase/decrease Bezier tension" encoder. Works nicely with new Bezier triangle/square/saw envelope shapes I've added yesterday: you can use the encoder to deform the waveforms!
Padre_PC is offline   Reply With Quote
Old 03-24-2010, 04:29 AM   #11
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Very very cool padre!

Would this system be able to be converted to work on midi notes for weird arpeggios? not that i use arps just thought it was a cool idea! Lol
musicbynumbers is offline   Reply With Quote
Old 03-24-2010, 04:40 AM   #12
Pembo
Human being with feelings
 
Pembo's Avatar
 
Join Date: Mar 2007
Location: Wollongong, Australia
Posts: 139
Default

Amazing!

Really smooth implementation. I've been wanting to play around with something like this for a while.

Thanks for the effort!

-Pembo.
Pembo is offline   Reply With Quote
Old 03-24-2010, 06:22 AM   #13
denmla
Human being with feelings
 
Join Date: Jul 2009
Posts: 121
Default

Quote:
Originally Posted by Padre_PC View Post
Thanks for the feedback guys, I appreciate it.

The plugin still needs some tweaking here and there: proper undo, timing (end of time selection points not removed or not added), new shapes, etc.

@denmla: you mean the same action but within item start/end positions instead of time selection? Can be done. I had a similar idea for MIDI items too (CC envelopes).

Yeah, kind of....basically I`d like to be able to write an envelope for an item within time selection (or whole item anyways..)

Think of it as: I wanna make gate effect on thid pad in this time selection not using full lane but jut item env.


cheers
denmla is offline   Reply With Quote
Old 03-24-2010, 11:45 AM   #14
NAS
Human being with feelings
 
NAS's Avatar
 
Join Date: Dec 2007
Location: In church, burning it down
Posts: 1,345
Default

Quote:
Originally Posted by Padre_PC View Post
new Bezier triangle/square/saw envelope shapes I've added yesterday
OMFG
Padre any chance you can do the same thing with item vol env please
Then it can be used with THIS

Cheers
NAS
__________________
Not Gods or Saints but HUMAN be
NAS is offline   Reply With Quote
Old 03-24-2010, 04:10 PM   #15
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by NAS View Post
OMFG
Padre any chance you can do the same thing with item vol env please
Then it can be used with THIS

Cheers
NAS
That would be very cool too!
musicbynumbers is offline   Reply With Quote
Old 03-24-2010, 04:51 PM   #16
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

Yeah, that would be a perfect fit .
In the meantime we can generate the curves on a track envelope and copy/paste them onto a take volume envelope

And we should also beg fingers to make his awesome track envelope actions work on take envelopes. I love his compress and tilt actions.

No problems so far with your curve generator. Had a cool automation playday today, thanks NAS and Padre.
gofer is offline   Reply With Quote
Old 03-24-2010, 07:57 PM   #17
fingers
Human being with feelings
 
fingers's Avatar
 
Join Date: Dec 2009
Location: Wellington, NZ
Posts: 300
Default

Quote:
Originally Posted by gofer View Post
Yeah, that would be a perfect fit .
In the meantime we can generate the curves on a track envelope and copy/paste them onto a take volume envelope

And we should also beg fingers to make his awesome track envelope actions work on take envelopes. I love his compress and tilt actions.

No problems so far with your curve generator. Had a cool automation playday today, thanks NAS and Padre.
Shouldn't be too hard to get them working with take envelopes. There is a function in the API GetTakeEnvelopeByName which hopefully returns the same format data as track envelopes. It wouldn't be too hard to detect whether you have a track or take envelope selected.

I'm keen to try this extension when I get back home. Also Padre, I am not sure if this url helps in any way, I updated it when I worked on my envelope functions. You may have things to add or have missed some things. http://www1.cockos.com/wiki/index.ph...tEnvelopeState
fingers is offline   Reply With Quote
Old 03-25-2010, 12:12 AM   #18
Padre_PC
Human being with feelings
 
Join Date: Sep 2009
Posts: 262
Default

I'll try to take a look at the item env thing. At this time I'm trying to get the delay work the way it should. Also I've been struggling with the undo thingie yesterday, it's still buggy.

@fingers: sure I know about the GetSetEnvelopeState() wiki! Saved me a lot of time, thank you for that! I've been using GetSetObjectState() though (saves me the blind alloc with 'int maxlen')
Padre_PC is offline   Reply With Quote
Old 03-25-2010, 06:14 AM   #19
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

Quote:
Originally Posted by Padre_PC View Post
Also I've been struggling with the undo thingie yesterday, it's still buggy.
How are you currently doing the undo? I don't remember myself having any particular problems with it when coding extensions, it was relatively straight forward to make work mostly correctly.
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
Xenakios is offline   Reply With Quote
Old 03-26-2010, 12:22 AM   #20
Padre_PC
Human being with feelings
 
Join Date: Sep 2009
Posts: 262
Default

Quote:
Originally Posted by Xenakios View Post
How are you currently doing the undo?
Well in the currently posted version I simply don't, so obviously it won't work. Now I'm using Undo_OnStateChangeEx(*, UNDO_STATE_ALL, -1) combined with an undo block (I'm triggering actions in the process). It works but I've noticed a few bugs when generating LFOs, undoing, regenerating and re-undoing: at one point for some reason it just removes the envelope.

Well... just a quick test anyway. I'll investigate later! Item envelopes: on their way!
Padre_PC is offline   Reply With Quote
Old 03-26-2010, 11:16 AM   #21
Padre_PC
Human being with feelings
 
Join Date: Sep 2009
Posts: 262
Default

New version with proper delay, Bezier shapes, Item and MIDI CC envelopes. Didn't spend much time on the undo question... I have to make music too!
Attached Files
File Type: zip reaper_PadresExtension.zip (65.3 KB, 417 views)
Padre_PC is offline   Reply With Quote
Old 03-26-2010, 11:23 AM   #22
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

hi padre! got to give it a try!
undo: I also saw such weirdities. I think you should try Undo_OnStateChangeEx or a block but not a mix of both (so if you trigger actions surround the whole stuff with Undo_BeginBlock/Undo_EndBlock)
sws os: padre.. c'mon.. VS 08 express here too.. no issue.. I can help..
Jeffos is offline   Reply With Quote
Old 03-26-2010, 11:54 AM   #23
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Thanks Padre! will try it

when you and fingers going to get on in the sws "a-team" van and kick some ass! lol

or are you like "I ain't going in no plane"
musicbynumbers is offline   Reply With Quote
Old 03-26-2010, 12:24 PM   #24
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default Reporting in..

Just tried it on win 7 64 bit BUT with reaper 32bit. most works great here's what went weird on me

-some of the quantizes don't seem to work (mostly the triplet settings, they seem to get longer rather than shorter as you go up)
-item based stuff didn't work on mine but midi did (could be a win 7 thing)
-env based always had a delay in it at the beginning of one cycle (guess this is to make merging with current automation cleaner)

these can wait.. get some music done!
musicbynumbers is offline   Reply With Quote
Old 03-27-2010, 01:55 AM   #25
denmla
Human being with feelings
 
Join Date: Jul 2009
Posts: 121
Default

Thanks for item envelope LFOs Padre!

@musicbynumbers, it works but you firstly have to add item envelope you want to use
denmla is offline   Reply With Quote
Old 03-27-2010, 02:02 AM   #26
Padre_PC
Human being with feelings
 
Join Date: Sep 2009
Posts: 262
Default

Quick news:

- Svn-checked out the last version of sws. Problem was not 'stdafx.h' but 'afxres.h' related, my mistake. Managed to retrieve the damn file... now works like a charm, no need to install the WinSDK!

- Added my code to the project (locally). TODO: register to GoogleCode, get write permissions from Tim, commit the finest "SWS/PADRE" actions ASAP!

- Triplet issues: fixed

@musicbynumbers: got out, got my cap, and got my brown-leather pilot jacket! Now flying both over the cuckoo's and cockos' nest
Padre_PC is offline   Reply With Quote
Old 03-27-2010, 02:07 AM   #27
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

yeah!! welcome padre!
hope I didn't bug you: it's just that I have some ideas around your midi processor code and that will be easiest now (licensing, etc..)
Jeffos is offline   Reply With Quote
Old 03-27-2010, 03:11 AM   #28
Mercado_Negro
Moderator
 
Mercado_Negro's Avatar
 
Join Date: Aug 2007
Location: Caracas, Venezuela
Posts: 8,676
Default

Whoa!!!!!!!!!!! How did I miss this awesomeness?!

Thanks PADRE_PC!!!!
__________________
Pressure is what turns coal into diamonds - Michael a.k.a. Runaway
Mercado_Negro is offline   Reply With Quote
Old 03-27-2010, 03:25 AM   #29
NAS
Human being with feelings
 
NAS's Avatar
 
Join Date: Dec 2007
Location: In church, burning it down
Posts: 1,345
Default

Great work
Any chance of a bezier Sine ?
That would be awesome

Managed to crash it but probably not a situation you had catered for
If i apply MIDI generator (CC)
Then apply Audio generator to same MIDI item (Vol env) i can get iot to crash
Interesting to note that if you don't use the MIDI generator first that audio genertaor works fine on MIDI items

NAS
__________________
Not Gods or Saints but HUMAN be
NAS is offline   Reply With Quote
Old 03-27-2010, 03:59 AM   #30
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

Cool, CC LFO as well, that's amazing.

Take audio envelopes have a little offset problem:
- they are inserted properly when the item starts as 1.1.00.
- When item starts at measure 2, the envelope will be inserted starting at measure 3.
- When item starts at measure 3, the envelope will start at measure 5. And so forth.

=>
The offset seems to be the same length as the time from start of project to item start.

I had a "Reaper encountered a problem" at one point, didn't undo, but have done a lot of deleting and generating take audio envelopes. Try to get more info if it happens again.

Many thanks for your efforts.
gofer is offline   Reply With Quote
Old 03-27-2010, 05:52 AM   #31
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by Padre_PC View Post
Quick news:

- Svn-checked out the last version of sws. Problem was not 'stdafx.h' but 'afxres.h' related, my mistake. Managed to retrieve the damn file... now works like a charm, no need to install the WinSDK!

- Added my code to the project (locally). TODO: register to GoogleCode, get write permissions from Tim, commit the finest "SWS/PADRE" actions ASAP!

- Triplet issues: fixed

@musicbynumbers: got out, got my cap, and got my brown-leather pilot jacket! Now flying both over the cuckoo's and cockos' nest
Now just got to get you guys your own theme tune!!
musicbynumbers is offline   Reply With Quote
Old 03-28-2010, 06:29 AM   #32
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Padre / anybody, whenever possible, please also try to compile a version for Reaper on OS X. Of course I'm willing to try and help out to do so myself, too (I'm not much of a coder at all, but I do have the OS X SDK stuff installed such as GCC, Xcode).
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-28-2010, 08:06 AM   #33
strunkdts
Human being with feelings
 
Join Date: Jun 2009
Posts: 2,565
Default

WOW! just discovered this now.
Exciting stuff.
I came a bit late to the extension party but im so glad i bothered to turn up.
You guys should be working for Cockos so all this awesomeness gets installed native!
DL and will give it a crack >>>
Cheers Padre_PC, so too SWS Xenakios Jeffos NAS Fingers and anyone else who has helped make a few things easier, opened up ways of working thats made a few things harder...then easier and for installing more faith into me and my relationship with REAPER as being the most potentially amazing DAW that i need ever work with, regardless of any shortcomings now, the talent and direction inherit within these forums is insane.
strunkdts is offline   Reply With Quote
Old 03-28-2010, 11:54 PM   #34
Padre_PC
Human being with feelings
 
Join Date: Sep 2009
Posts: 262
Default

1- Commited to sws this morning!

2- Forgot to comment my commit log!

3- I've got the feeling that Jeffos will be going after me for that one!

@NAS:

Bezier sine: I've edited the sinewave properties before committing to sws. It is based on Bezier points now. Not sure about precision vs CPU ratio (I guess Bezier curves are more CPU consuming than linear?)

MIDI then Audio crash: I can't reproduce. Can you wait for the next sws and tell me if the crash still occurs?

@gofer:

Offset problem: shameful bug on my side. Fixed in sws version.

@Banned: I can't build an OSX version myself but the actions will be in the next sws extension version so you're all set!
Padre_PC is offline   Reply With Quote
Old 03-29-2010, 09:56 AM   #35
sws
Code Monkey
 
sws's Avatar
 
Join Date: Sep 2007
Location: Madison, WI
Posts: 857
Default

Thanks so much Padre, your stuff is now merged as of v1.7.0 #1.
sws is offline   Reply With Quote
Old 03-29-2010, 10:15 AM   #36
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

You people are all crazy!


I love you guys In the most platonic way, of course!
EvilDragon is offline   Reply With Quote
Old 03-29-2010, 10:51 AM   #37
Mercado_Negro
Moderator
 
Mercado_Negro's Avatar
 
Join Date: Aug 2007
Location: Caracas, Venezuela
Posts: 8,676
Default

Hello Padre. Thanks again for your effort, this LFO Generator is time saver

I'm having a hard time trying to figure out how to preserve my previous and next envelope shapes/points. When I generate an LFO the points/shapes before the time selection and after it are modified too. Is there a way to preserve them?

Before:



After:



Expected:

__________________
Pressure is what turns coal into diamonds - Michael a.k.a. Runaway
Mercado_Negro is offline   Reply With Quote
Old 03-29-2010, 10:54 PM   #38
Padre_PC
Human being with feelings
 
Join Date: Sep 2009
Posts: 262
Default

The start/stop init value question is still open. At this time I use values of the LFO carrier. Obviously using current envelope values would a natural choice. I'll try to figure out something with the "generate 4 points envelope" action.

In the meantime, maybe this problem can be solved with a macro and time selection actions? ("nudge left edge right/left", etc)

BTW people don't forget to combine the LFO gen with "increase/decrease Bezier tension" actions: lots of fun!
Padre_PC is offline   Reply With Quote
Old 03-29-2010, 11:42 PM   #39
Mercado_Negro
Moderator
 
Mercado_Negro's Avatar
 
Join Date: Aug 2007
Location: Caracas, Venezuela
Posts: 8,676
Default

Quote:
Originally Posted by Padre_PC View Post
The start/stop init value question is still open. At this time I use values of the LFO carrier. Obviously using current envelope values would a natural choice. I'll try to figure out something with the "generate 4 points envelope" action.

In the meantime, maybe this problem can be solved with a macro and time selection actions? ("nudge left edge right/left", etc)

BTW people don't forget to combine the LFO gen with "increase/decrease Bezier tension" actions: lots of fun!
Thanks for your response Padre.

I tried using the action to generate 4 points but it didn't work. I also tried the nudge left/right edge left/right actions but it didn't work either. Like you said it should use the current envelope value, it makes sense.
__________________
Pressure is what turns coal into diamonds - Michael a.k.a. Runaway
Mercado_Negro is offline   Reply With Quote
Old 03-30-2010, 01:18 AM   #40
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

Quote:
Originally Posted by Padre_PC View Post
BTW people don't forget to combine the LFO gen with "increase/decrease Bezier tension" actions: lots of fun!
Also finger's 'shift selected envelope points...' are cool complementary actions to be used with the lfo generator. Magic.
gofer 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 06:02 PM.


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