e_d_
Engaged
e_d_
Engaged
Activity
‎May 10, 2018
06:53 AM
2 Upvotes
Please use Samples/PProPanel ​as a real life example. For your specific question, please refer to Line1433 onward.
... View more
‎Apr 15, 2018
10:42 PM
I'm a bit suspicious about the type being used (time2.seconds += 2). Usually JS performs implicit type conversion, but you might want to make sure you're really using floats and not getting int or even string by accident. Always perform explicit type conversions...
... View more
‎Apr 15, 2018
10:32 PM
Just to double check: With the change proposed by Trevor_Asq, you're now getting the desired result; but when you close and re-open the sequence, (project is kept open and not saved) the marker's positions are back to their old values? What changes if a) you save the project before closing the sequence? b) you close the sequence, save the project, and re-open the sequence? c) you close the project (keep sequence open) -- are you being prompted to save changes? What happens when you re-open the project?
... View more
‎Apr 15, 2018
10:26 PM
1 Upvote
Hi, AFAIK Premiere's HTML/JS capabilities do not yet provide any means to analyze audio levels, which means you would have to leverage C++ to do what you want to accomplish. Inserting clips on the timeline is entirely possible though.
... View more
‎Apr 15, 2018
10:23 PM
Hi, please verify your script against the method proposed at https://github.com/Adobe-CEP/Samples/blob/a64797c6308c6c336f125c48615ceafc9636058d/PProPanel/jsx/PPRO/Premiere.jsx#L601 , most importantly making sure you're initializing the ExternalObject, otherwise XMP metadata won't work at all.
... View more
‎Feb 05, 2018
06:10 AM
Hi Aecorn, this sounds to the following: Re: Create sequence inside a bin Does this resolve you issue?
... View more
‎Dec 21, 2017
12:08 AM
Hi Anoop, my guess is Premiere does a different frame rate interpretation from MediaInfo and FCP. If you look at the "frame rate" info in MediaInfo, it's 23.976/1000, which could be the root cause of the issue because it indicates NDF (non-drop-frame time code). Usually 23.976 is displayed as 24.000/1001 (DF, drop frame timecode). The question is if changing the clip's time code settings (changing from 23.976 interpretation to 24, or vice versa) has any effect, because it doesn't tell you precisely about the frame rate and its divider being applied in order to calculate time code. Edit: Just performed a quick check here with some footage I set to your source TC at 24fps in Premiere, then switched from 24 to 23.976, and then I have the same value as you do in Premiere. So changing the TC display back to 24 fps should do the trick (Modify Clip/Time code...) Best, Erik
... View more
‎Dec 13, 2017
02:55 AM
Hi maximus1105​, have you tried my proposed solution? Follow-up is always appreciated... Best, e.d.
... View more
‎Dec 10, 2017
03:41 AM
Another question would be, if the log TC difference to the clip is NOT deterministic, but arbitrary. It sounds quite cumbersome to locate the first matching frame manually, and only then have the remaining markers be applied correctly. The tool generating the logs should either always start its log at zero, or as a workaround, the operators would have to add the first marker at the start of the clip. Just thinking in terms of taking a different approach to the problem.
... View more
‎Dec 08, 2017
12:51 AM
Hi, sound like you want to do the inverse of what I did here, How to get source clip times? , more or less...
... View more
‎Dec 08, 2017
12:47 AM
2 Upvotes
Here's some proof of concept code. Please bear in mind though the QE DOM is not officially supported. This assumes Your CTI is placed somewhere on the first clip which is placed on the first video track of your timeline. The caveat here is this currently won't work with frame based file sequences. var CTI_ticks = app.project.activeSequence.getPlayerPosition().ticks; var clip = app.project.activeSequence.videoTracks[0].clips[0]; if ((parseInt(clip.start.ticks) <= parseInt(CTI_ticks)) && parseInt(CTI_ticks) < parseInt(clip.end.ticks)) { var offset = parseInt(CTI_ticks) - parseInt(clip.start.ticks); // ticks property is a string thus needs conversion var frame = parseInt(clip.inPoint.ticks)+offset; var ftime = frame/254016000000; app.enableQE(); qe.source.openFilePath(clip.projectItem.getMediaPath()); if (ExternalObject.AdobeXMPScript === undefined) { ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript'); } if (ExternalObject.AdobeXMPScript !== undefined) { var info = new XMPMeta(clip.projectItem.getProjectMetadata()); var theNS = "http://ns.adobe.com/premierePrivateProjectMetaData/1.0/"; var timebase = info.getProperty(theNS,"Column.Intrinsic.MediaTimebase"); timebaseF = parseFloat (timebase.value.replace (" fps","").replace(",",".")); // should a comma be used instead of a decimal point var frames = timebaseF * (ftime-Math.floor(ftime)); var timeFormat = ""+Math.floor(ftime)+"."+frames; qe.source.player.startScrubbing(); qe.source.player.scrubTo(timeFormat); // will take either TC or seconds.frames, not seconds.milliseconds! qe.source.player.endScrubbing(); // or use qe.source.player.setInPoint(timeFormat) // will take either TC or seconds.frames, not seconds.milliseconds! } }
... View more
‎Dec 04, 2017
11:06 AM
When performing a "Save-As" on my system, then re-opening the source file as second project, both ID and path are identical in app.projects . 😞
... View more
‎Dec 04, 2017
08:20 AM
Hi Bruce, of course you can't open the same project (read: file on disk) twice. But if you generate a copy by "Save as..." as described above, this applies. This is what this is all about. Best, Erik
... View more
‎Dec 03, 2017
11:07 PM
Thanks for clarifying. So basically you want to perform a "match frame" operation. Well, PrPro gives you the start time for a clip on a track, and when you subtract this from the current playhead position in the timeline, and add the result to the clip's inPoint, you're pretty much there, aren't you?
... View more
‎Dec 03, 2017
09:32 AM
This is a problem with precision when converting between floats and integers. When you enter 4.004, this should be passed to Premiere as 1,017,080,064,000 ticks. But when this integer is converted to a float, the actual value being stored is 1,017,080,053,760 which when converted back to seconds gives you 4.003999959687.... This is what happens when using single-precicion floats, so the effect should not be as dramatic when using double precision, but that's just guessing...
... View more
‎Dec 03, 2017
09:08 AM
How do you mean, exactly? app.project.activeSequence.getPlayerposition() will give you either a seconds value or ticks value. Both values are calculated by multiplication of the timecode with the inverse of the frame rate divider.
... View more
‎Dec 03, 2017
07:49 AM
Neat!
... View more
‎Dec 03, 2017
07:47 AM
1 Upvote
Ah. So you want an event listener which in this specific case is listening to a "bin created" event. Well if you create a function in your panel which creates a bin and emits a catchable event, that's feasible, but if a user created the bin from the PrPro UI there'd be no event (please somebody correct me if I'm wrong here...). Polling (through a timer or timeout) is bad practice in general...
... View more
‎Dec 03, 2017
07:42 AM
Let me rephrase to make sure this is understood correctly: You have a sequence A containing some clips, which you duplicate (or create a nested sequence from) to sequence B, and you then change the starting time(code) of sequence B. Now you want to iterate through sequence B, but you need to have the in and out values of the respective clips in sequence A, is this correct? In that case, I would tend to think if sequence B is a "clip" in sequence A, and you know the in-point of sequence B (in sequence A), it's pretty straightforward, isn't it?
... View more
‎Dec 03, 2017
07:35 AM
There is no programmatic way of distinguishing between a "pure" user interaction (point&click) and an "automated" Panel action.
... View more
‎Dec 03, 2017
07:33 AM
Because the object itself is a wrong duplicate, so every property of this object instance is identical to its neighbor and no use for disambiguation.
... View more
‎Dec 02, 2017
08:52 AM
I confirm, it seems to be broken in 12.0 (tested on Win7-64).
... View more
‎Dec 01, 2017
03:07 AM
1 Upvote
Hi Meet, okay, now it's as you have described! When inspecting the documentID, you'll find it's the same for both projects, so there's definitely a bug here. PrPro should create a new documentID when "Save as.." is being used. Bruce Bullis​, can you please confirm and file a bug report? Steps to reproduce: Create two projects as described above. Run for (i = 0; i < app.projects.numProjects; i++) { $.writeln(app.projects.name); $.writeln(app.projects.documentID); } Result: test_2018_01.prproj a55f772b-9100-44e7-b749-7f1bfc89e7f9 test_2018_01.prproj a55f772b-9100-44e7-b749-7f1bfc89e7f9 Close the second project and re-open, re-run script. Result: test_2018_02.prproj a55f772b-9100-44e7-b749-7f1bfc89e7f9 test_2018_02.prproj a55f772b-9100-44e7-b749-7f1bfc89e7f9 Best, Erik
... View more
‎Dec 01, 2017
02:05 AM
2 Upvotes
Hi Meet, I guess it's because they're fundamentally different. For the lack of better knowledge iI would assume it works like this: app.project = an object with a set of properties and methods, so if you compare two of those their properties and methods are being checked for equality. app.projects = an array of "some references". When compared, there is no drilldown (recursion) to check if the reference is identical, it's just "some reference". So you would always need to check for a specific property (like documentID) to check for equality. if (app.project.documentID === app.project.documentID) { $.writeln ("Project equal"); } else { $.writeln ("Project NOT equal"); } if (app.projects[0].documentID === app.project.documentID) { $.writeln ("Project equal"); } else { $.writeln ("Project NOT equal"); } if (app.projects[0].documentID === app.projects[0].documentID) { $.writeln ("Project equal"); } else { $.writeln ("Project NOT equal"); } Best, Erik
... View more
‎Dec 01, 2017
01:46 AM
2 Upvotes
Hi Meet, you mean like typing "String." in ExtendScript Toolkit CC, revealing the String methods? You could use .substr with a negative offset (ex.: substr(-8,8) returning the last 8 characters of the string), or .match and use a regular expression like /[.]*edit/ , returning true if the string ends with "edit". Best, Erik
... View more
‎Dec 01, 2017
01:35 AM
Hi Meet, my assumption is documentID is intended to be a UUID, so it should fulfil you requirement. Best, Erik
... View more
‎Dec 01, 2017
01:32 AM
Hi Meet, just did a quick test in ExtendScript Toolkit CC, and it's working for me. What's worth noting is the order is "reverse", so the project opened last is being pushed to the beginning of the array, not appended at the end. Best, Erik
... View more
‎Dec 01, 2017
01:21 AM
Hi, this rounding issue seems to have the same background as mentioned here: Clip Marker: Different start/end time in seconds So the solution might be the same.
... View more
‎Nov 24, 2017
10:35 AM
Hi Bruce Bullis, thanks for adding some more granularity to transition items. And yet... my humble opinion is using the local language for the name is not a good choice. I suggest this be modified to either remain in english, or better, use a UUID, or use the SMPTE code if the transition is also one standardized by SMPTE (which many of the standard ones are) as an ID. Also, these improvements have not (yet) found their way into the FCP XML export, this one is still exported as a cross dissolve no matter what the actual transition is. Thoughts? Best regards, Erik
... View more