David Peterson Posted August 15, 2018 Posted August 15, 2018 Started a new thread for this, as it is an area (timecode!) in which the sound department overlaps with the camera department thus it might interest the camera geeks here as well. Because I got to try out the NanoLockit for the first time, was impressed with its feature in how it can autodetect FPS But Ultrasync ONEs remain my favorite! And the Tentacle Syncs are still handy for DSLR/mirrorless shoots that lack a TC input on the camera.
Premium Member Phil Rhodes Posted August 15, 2018 Premium Member Posted August 15, 2018 I'm not sure why it's considered new or interesting to automatically detect the frame rate of incoming code. I've written software that does that in an afternoon!
David Peterson Posted August 15, 2018 Author Posted August 15, 2018 I guess, and I suppose more of them will offer this with time, for instance I think the new Tentacle Sync E does this as well?
Premium Member Phil Rhodes Posted August 15, 2018 Premium Member Posted August 15, 2018 Here it is, for anyone who's interested! void ltc_init_calibrated(uint32_t calibratedClockSpeed){ ltc_bitperiod_longest = ((((calibratedClockSpeed/1000L)*1001L)/24L)/80L) + ltc_legal_period_wiggle; ltc_bitperiod_shortest = ((calibratedClockSpeed/60L)/160L) - ltc_legal_period_wiggle; ltc_fr_23976_min = (((calibratedClockSpeed/1000L)*1001L)/24L) - (uint32_t)ltc_frame_duration_wiggle; ltc_fr_23976_max = (((calibratedClockSpeed/1000L)*1001L)/24L) + (uint32_t)ltc_frame_duration_wiggle; ltc_fr_24_min = (calibratedClockSpeed/24) - ltc_frame_duration_wiggle; ltc_fr_24_max = (calibratedClockSpeed/24) + ltc_frame_duration_wiggle; ltc_fr_25_min = (calibratedClockSpeed/25) - ltc_frame_duration_wiggle; ltc_fr_25_max = (calibratedClockSpeed/25) + ltc_frame_duration_wiggle; ltc_fr_2997_min = (((calibratedClockSpeed/1000L)*1001L)/30L) - (uint32_t)ltc_frame_duration_wiggle; ltc_fr_2997_max = (((calibratedClockSpeed/1000L)*1001L)/30L) + (uint32_t)ltc_frame_duration_wiggle; ltc_fr_30_min = (calibratedClockSpeed/30) - ltc_frame_duration_wiggle; ltc_fr_30_max = (calibratedClockSpeed/30) + ltc_frame_duration_wiggle; ltc_fr_50_min = (calibratedClockSpeed/50) - ltc_frame_duration_wiggle; ltc_fr_50_max = (calibratedClockSpeed/50) + ltc_frame_duration_wiggle; ltc_fr_5994_min = (((calibratedClockSpeed/1000L)*1001L)/60L) - (uint32_t)ltc_frame_duration_wiggle; ltc_fr_5994_max = (((calibratedClockSpeed/1000L)*1001L)/60L) + (uint32_t)ltc_frame_duration_wiggle; ltc_fr_60_min = (calibratedClockSpeed/60) - ltc_frame_duration_wiggle; ltc_fr_60_max = (calibratedClockSpeed/60) + ltc_frame_duration_wiggle; } smpte_framerate ltc_get_framerate(uint32_t frame_duration){ if(frame_duration > ltc_fr_23976_min && frame_duration < ltc_fr_23976_max){ return R23976; } else if(frame_duration > ltc_fr_24_min && frame_duration < ltc_fr_24_max){ return R24; } else if(frame_duration > ltc_fr_25_min && frame_duration < ltc_fr_25_max){ return R25; } else if(frame_duration > ltc_fr_2997_min && frame_duration < ltc_fr_2997_max){ return R2997; } else if(frame_duration > ltc_fr_30_min && frame_duration < ltc_fr_30_max){ return R30; } else if(frame_duration > ltc_fr_50_min && frame_duration < ltc_fr_50_max){ return R50; } else if(frame_duration > ltc_fr_5994_min && frame_duration < ltc_fr_5994_max){ return R5994; } else if(frame_duration > ltc_fr_60_min && frame_duration < ltc_fr_60_max){ return R60; } else { return UNKNOWN; } } 1
David Peterson Posted September 5, 2018 Author Posted September 5, 2018 Just got the new Tentacle Sync E:
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now