Old 01-31-2014, 02:30 PM   #41
Argitoth
Human being with feelings
 
Argitoth's Avatar
 
Join Date: Feb 2008
Location: Mesa, AZ
Posts: 2,057
Default

Quote:
Originally Posted by Argitoth View Post
WOAH HOLD UP!

Does this mean we may have integrated spectral view for media items?

How do you use the .eel?
Quote:
Originally Posted by Justin View Post
No, it's just a sample script.
but... but... BUT!!! Couldn't you create a script that creates a spectrogram view window for all items in view kinda like a "spectral view screenshot"? Edit: something like Analysis/gfxspectrograph js except you don't have to hit "play" to get the spectrograph

What about an oscilloscope? That spectral graph you created is VERY nice. No jitter, no graphic stuttering, perfect! I REALLY want an oscillscope like this! How about an X/Y plot? How about multichannel oscilloscope! Multichannel spectrograph! HOW ABOUT IT!?!?!? AHHH!!!! *explodes*
__________________
Soundemote - Home of the chaosfly and pretty oscilloscope.
MyReaperPlugin - Easy-to-use cross-platform C++ REAPER extension template

Last edited by Argitoth; 01-31-2014 at 02:35 PM.
Argitoth is offline   Reply With Quote
Old 01-31-2014, 03:10 PM   #42
groovemaster
Human being with feelings
 
Join Date: Mar 2010
Posts: 449
Default

Quote:
Originally Posted by Argitoth View Post
How about multichannel oscilloscope! Multichannel spectrograph!
That would be so cool!
groovemaster is offline   Reply With Quote
Old 01-31-2014, 03:33 PM   #43
Argitoth
Human being with feelings
 
Argitoth's Avatar
 
Join Date: Feb 2008
Location: Mesa, AZ
Posts: 2,057
Default

well, a multichannel spectrograph/oscilloscope could be created via js

What I want to know is... is eel the only way to capture the audio and display it graphically without having to play the project? That's the main hangup with gfxspectrograph.
__________________
Soundemote - Home of the chaosfly and pretty oscilloscope.
MyReaperPlugin - Easy-to-use cross-platform C++ REAPER extension template
Argitoth is offline   Reply With Quote
Old 01-31-2014, 03:43 PM   #44
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

Quote:
Originally Posted by Argitoth View Post
well, a multichannel spectrograph/oscilloscope could be created via js

What I want to know is... is eel the only way to capture the audio and display it graphically without having to play the project? That's the main hangup with gfxspectrograph.
Not the only way, the same could be done with Python ReaScripts (*) as well as C++ extension plugins.

(*) My current experiments with Python ReaScripts with a GUI are not going very well, though. But please, let's continue this discussion in the other thread I started. http://forum.cockos.com/showthread.php?t=134653
__________________
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 01-31-2014, 04:34 PM   #45
Breeder
Human being with feelings
 
Breeder's Avatar
 
Join Date: Nov 2010
Posts: 2,436
Default

Quote:
Originally Posted by IXix View Post
To elaborate, I don't think you'd need to do much. All the TrackFX functions take a MediaTrack* argument, so if you pass a null pointer then logically that means no track, which suggests the monitor FX chain since that doesn't belong to a track. No?

Definitely not - it could break existing stuff where passing NULL you got no behavior (no track selected - nothing happens)

A better implementation would be to have special MediaTrack* pointer that represents monitoring FX

edit: while on the subject of FX - it would be really nice to have a function that accepts TrackEnvelope* and returns track, fx id and param id that belong to it (built-in stuff like volume, pan, playrate, tempo...don't have to work since we can already control those)
Breeder is offline   Reply With Quote
Old 02-01-2014, 02:19 AM   #46
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

Can't load ".eel" scripts if scandic letters (äöå) in filename:

spk77 is offline   Reply With Quote
Old 02-01-2014, 08:57 AM   #47
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
Default

Quote:
Originally Posted by Breeder View Post
Definitely not - it could break existing stuff where passing NULL you got no behavior (no track selected - nothing happens)
Spoilsport!
IXix is offline   Reply With Quote
Old 02-01-2014, 09:23 AM   #48
James HE
Human being with feelings
 
James HE's Avatar
 
Join Date: Mar 2007
Location: I'm in a barn
Posts: 4,467
Default

from the pre2 ? thread


Quote:
Originally Posted by Justin View Post
They belong to the global/root namespace, but not the _global namespace... Thinking it might be good to add a globals(_builtins_) option so that you can access any registered variable (gfx_*, srate, slider1, etc).


This would be helpful...

or at least if gfx_*, mouse_*, etc, would work like _global*

also #* to access all strings.

Maybe something like globals(_system_, _strings_) ?

and it seems your function cannot access spl(x) if any globals() are specified, even if you specify it in globals.
James HE is offline   Reply With Quote
Old 02-01-2014, 11:15 AM   #49
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,737
Default

Quote:
Originally Posted by James HE View Post
and it seems your function cannot access spl(x) if any globals() are specified, even if you specify it in globals.
spl() is a function and should be accessible everywhere... and spl0-splX would require global(spl0 spl1) etc.
Justin is online now   Reply With Quote
Old 02-01-2014, 11:18 AM   #50
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
Default

Quote:
Originally Posted by James HE View Post
from the pre2 ? thread...
Thanks for that, I missed Justin's reply to my question!

Quote:
Originally Posted by Tale View Post
To me it would make more sense if the registered variables would be available implicitly, i.e. without specifying _builtins_. Else I guess I'd quickly end up not using global() at all, or mindlessly adding global(_builtins_) all the time. I understand why you'd want to encourage functions to not pollute the root namespace, but this obviously doesn't apply to registered variables.
^^ What Tale said ^^
IXix is offline   Reply With Quote
Old 02-01-2014, 11:47 AM   #51
James HE
Human being with feelings
 
James HE's Avatar
 
Join Date: Mar 2007
Location: I'm in a barn
Posts: 4,467
Default

Quote:
Originally Posted by Justin View Post
spl() is a function and should be accessible everywhere... and spl0-splX would require global(spl0 spl1) etc.
i must have made a typo. works fine.
James HE is offline   Reply With Quote
Old 02-01-2014, 12:08 PM   #52
jnif
Human being with feelings
 
jnif's Avatar
 
Join Date: Dec 2008
Posts: 2,111
Default

JS FX mouse_cap behavior seems to be different in 4.60pre10 compared to 4.591.

The mouse modifier keys (ctrl, alt, shift) will change mouse mouse_cap even when mouse button has not been clicked.
Is this change intentional?

For example note velocity editing in Sequencer_baby_v2_jnif is now a bit broken because of this change.

EDIT:

Looks like there is an easy fix to make Sequencer_baby_v2_jnif (version 046) work with Reaper 4.60pre10.

Change line 3257 from this:
Code:
mouse_cap==0 ? (
to this:
Code:
!(mouse_cap&1 || mouse_cap&2) ? (
jnif

Last edited by jnif; 02-01-2014 at 12:46 PM.
jnif is offline   Reply With Quote
Old 02-01-2014, 02:38 PM   #53
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,737
Default

Quote:
Originally Posted by jnif View Post
JS FX mouse_cap behavior seems to be different in 4.60pre10 compared to 4.591.

The mouse modifier keys (ctrl, alt, shift) will change mouse mouse_cap even when mouse button has not been clicked.
Is this change intentional?

For example note velocity editing in Sequencer_baby_v2_jnif is now a bit broken because of this change.

EDIT:

Looks like there is an easy fix to make Sequencer_baby_v2_jnif (version 046) work with Reaper 4.60pre10.

Change line 3257 from this:
Code:
mouse_cap==0 ? (
to this:
Code:
!(mouse_cap&1 || mouse_cap&2) ? (
jnif
Ah yeah, it changed so that you can detect keyboard modifiers when getting keys. Oops. You could also write that as !(mouse_cap&3) too.
Justin is online now   Reply With Quote
Old 02-01-2014, 03:07 PM   #54
James HE
Human being with feelings
 
James HE's Avatar
 
Join Date: Mar 2007
Location: I'm in a barn
Posts: 4,467
Default

Quote:
Originally Posted by Justin View Post
Ah yeah, it changed so that you can detect keyboard modifiers when getting keys.

no oops!

i love this "feature"!

gives you an extra set of mouse modifiers for your GUI.
James HE is offline   Reply With Quote
Old 02-01-2014, 03:10 PM   #55
Susan G
Human being with feelings
 
Susan G's Avatar
 
Join Date: Jul 2008
Location: Putnam County, NY, USA
Posts: 3,950
Default

Quote:
# Regions: fixed incorrect duplicate region ID error message
I was just about to post about this. Thanks for the quick fix!

-Susan
Susan G is offline   Reply With Quote
Old 02-02-2014, 08:43 AM   #56
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

I ran into a bit of an issue with RPR_MIDIEditor_GetTake(void* midieditor) combined with the new possibility to have an empty MIDI editor:

It seems that the function returns a take pointer, even if the project doesn't contain any MIDI take.

What I tried was tweaking spk77 note velocity example to use MIDI_EnumSelNotes.

Like this:
Code:
newVelocity = 127
take = RPR_MIDIEditor_GetTake(RPR_MIDIEditor_GetActive())
sel = RPR_MIDI_EnumSelNotes(take, -1)
while sel != -1:
	ok, take, i, isSelected, isMuted, startPpqPos, endPpqPos, channel, pitch, velocity = RPR_MIDI_GetNote(take, sel, 0, 0, 0.0, 0.0, 0, 0, 0)
	RPR_MIDI_SetNote(take, sel, isSelected, isMuted, startPpqPos, endPpqPos, channel, pitch, newVelocity)
	sel = RPR_MIDI_EnumSelNotes(take, sel)
(I was happy to see that RPR_MIDI_EnumSelNotes(take, -1) gives me the index of the first selected note )
It seems to work until the script encounters an empty MIDI editor, where it would fall into an infinite loop.

Troubleshooting revealed that GetTake gave a pointer pointing to a non-existing take and for some reason the Enum function always returned 0 for that take.

I can get around it easily, but I figure this inexistent take pointer shouldn't happen in the first place.

Last edited by gofer; 02-02-2014 at 08:50 AM. Reason: added newVelocity line to the example so it makes sense on it's own
gofer is offline   Reply With Quote
Old 02-02-2014, 09:04 AM   #57
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,680
Default

Quote:
Originally Posted by Justin View Post
Ah yeah, it changed so that you can detect keyboard modifiers when getting keys. Oops. You could also write that as !(mouse_cap&3) too.
So, I could detect / process Ctrl+c, Ctrl+v, Alt+x etc ?
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is online now   Reply With Quote
Old 02-02-2014, 03:02 PM   #58
LugNut
Human being with feelings
 
Join Date: Jun 2013
Location: So Florida
Posts: 1,435
Default

Hi,

Quote:
Originally Posted by LugNut View Post
Hi,


OOOOOhhhhhhhh CCRrrrrrappppppppppppp...its coming.....thank u thank u thank u JCS!!!!

plz b4 everyone decides on implementation of these "u know whats coming features" ..plz plz plz look at the way logic handles this.....and a real time version also..i beg u..my mac is old and i cant do screenies from it... unless i get them from a manual...would that be legal to post here? Gofer plz can u help?^^

Guido
Ive started a thread about this here..

http://forum.cockos.com/showthread.php?t=134752

guido
LugNut is online now   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 10:31 AM.


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