Timecode reader software
PCTimecode v3.0.2
Microsoft® DirectSound®

You can import the timecode directly to MS Excel or Word.
*System Requirements
Windows 10,8.1,8,7
DirectX
Audio input device that can be recorded in 48000Hz, 8bit, mono or 96000Hz,8bit, mono.
MS Excel or Word, If you want to logging.
*New functions
New minimum mode
[Menuless and TC-characters only.]
Topmost function
[PCTimecode are always displayed at the highest point in the z-order of the windows on the desktop.]
Keep last timecode when lost signal.
[Last timecode and "no signal" are dispalyed alternately.

Microsoft DirectSound system
7-segment display font (Font "DSEG" by keshikan)

Installation and starting


PCTimecode.msi
Installation package
Installation:
Unzip "PCTimecode.zip".
To start the installation, click "PCTimecode.msi".
There is no problem if there are warning of unknown publisher leaves during the installation

Application folder to be created 5.2MB or less.

PCTimecode
Shortcut
Starting:
You can icon on the desktop, double click it to start.
(or Start -> Programs -> PCTimecode)

If you want to logging a timecode to start the MS Excel.
Mechanism of PCTimecode:
diaglam
App class name
/*Form->PCTimecode*/
/*Timecode->Eidt*/
You can get the timecode text on PCTimecode using "FindWindowEX" of WindowsAPI.
system

How to use PCTimecode

Application form

1.Timecode
2.User Bits
3.Waveform
4.Status
5.Decode button
6.Stop button
7.Status bar_1
8.Status bar_2
9.Analysis
When you press the decode button.
(Signal not found.)

Case
1.You do not input LTC or audio device is stoped.
Pulg in and restart PCTimecode.
2.You did not select audio device.
Menu -> Config -> Audio device
3.Recording device volume down or mute.
Can you please make sure to operate the recording device. (not output, not playback)
When you press the decode button.
(Decode succeeded.)

If decording false.
1.Value of the signal is low.
2.Not SMPTE LTC
3.Not 23.98~60fps or reverse.

If displayis distorted.
1.Graphics performance is not enough

Jam Sync

Jam Sync Enable
Menu -> Config -> Jam Sync
External
State signal comming.
Internal
Signal is interrupted or You disconnect a cable.
When you disconnect a cable.

Please disconnect from the in synchronism with 30 seconds or more.

X Switch of the audio device has a built-into the audio input receptacle on the computer.
Audio device will stop.
Caution Crystal of the computer is not a high accuracy.
It does not completely synchronized.
Slip of 2~3frames per hour will occur.

New minimum

New minimum mode
Menu -> View -> Minimum
Return nomal window
[app active] -> Alt + N or Double Click

Decode Start
[app active] -> Alt + D

Decode Stop
[app active] -> Alt + S

Draggable and Resizable

Topmost

Topmost Enable
Menu -> View -> Topmost
Topmost window overlaps all other windows, regardless of whether it is the active or foreground window.

Analysis

Bit 10, 11, 27, 43, 58, 59 Value of the flag bits.
Frame Rate Frame rate of the received LTC.
Threshold Threshold to distinguish between 0 and 1.(Automatically)
Audio Device Audio device app using.
Sampling Rate Sampling rate of decoding 48000Hz or 96000Hz

How to input a timecode in to a computer.

Important:Level of the timecode signal must not exceed absolute maximum input of the computer.
/*Please input at your own risk of the user.*/
/*Author of this application is not responsible.*/
Ideal input circuit
Simple input cable
BNC-J to 3.5mm stereo mini plug (without attenuator) cable.
Important : Input max 2Vp-p
If more than 2Vp-p, please always use an attenuator.(-12.5dB ~ -30dB)

Excel macro function


Excel sample
with macro
This sample program imports time code text from PCTimecode by double clicking E or F on Excel sheet.
Contents of the macro function is written below.
Please rewrite to make it as easy to use you.
'Macro Sample

'Sheet1TOF
'/////////////////////////////////////////////
Private Sub PCTimecode()

Columns("A:E").ColumnWidth = 6
Columns("E:F").ColumnWidth = 9
Columns("G:G").ColumnWidth = 37

With Range("A1", "G1")
.HorizontalAlignment = xlCenter
End With

Range("A1") = "OK/NG"
Range("B1") = "S#"
Range("C1") = "Cut"
Range("D1") = "Take"
Range("E1") = "In"
Range("F1") = "Out"
Range("G1") = "Note"

Range("A1:G1").Select
With Selection.Interior
.ColorIndex = 8
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With

Range("A2").Select
ActiveWindow.FreezePanes = True

End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Output only "E:F"(Put out this line if you do not need.)
If Target.Column = 5 Or Target.Column = 6 Then Exit Sub
Call OutputTimecode(Target)

End Sub
'/////////////////////////////////////////////
'Sheet1EOF



'Module1TOF
'/////////////////////////////////////////////
'######################################################
'VBA source code to receive Timecode from "PCTimecode"
'Albert Garden
'######################################################
Option Explicit

Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ( _
ByVal hwndParent As Long, _
ByVal hwndChildAfter As Long, _
ByVal lpClassName As String, _
ByVal lpWindowName As String _
) As Long

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hWnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Any _
) As Long

Private Const WM_GETTEXT = &HD

Public Sub OutputTimecode(ByVal Target As Range)
'The source below this should not renew it.
Dim hWindow As Long
Dim rl As Long
Dim buf As String * 12

'get app window hwnd
hWindow = FindWindowEx(0, 0, "PCTimecode", vbNullString)

If hWindow <> 0 Then

'get app text box hwnd
hWindow = FindWindowEx(hWindow, 0, "edit", vbNullString)

If hWindow <> 0 Then

rl = SendMessage(hWindow, WM_GETTEXT, Len(buf), ByVal buf)
Target.Value = Left(buf, 11) 'xx:xx:xx:xx

Else

MsgBox "PCTimecode error. orz"

End If

Else

MsgBox "PCTimecode is not found. orz"

End If

End Sub
'/////////////////////////////////////////////
'Module1EOF 

Word macro function


Word sample
with macro
This sample program imports time code text from PCTimecode by F1 key.
Contents of the macro function is written below.
Please rewrite to make it as easy to use you.
'Macro Sample

'This Document TOF
'/////////////////////////////////////////////
Option Explicit

Private Sub Document_Open()

'Set F1 key to macro "OutputTimecode"
Application.CustomizationContext = NormalTemplate
Application.KeyBindings.Add KeyCode:=Application.BuildKeyCode(wdKeyF1), _
KeyCategory:=wdKeyCategoryCommand, Command:="OutputTimecode"

End Sub

Private Sub Document_Close()

'Return F1 key to "help"
Application.CustomizationContext = NormalTemplate
Application.KeyBindings.Add KeyCode:=Application.BuildKeyCode(wdKeyF1), _
KeyCategory:=wdKeyCategoryCommand, Command:="Help"

End Sub
'This Document EOF


'Module1TOF
'Word VBA source code to receive timecode from "PCTimecode"
'Albert Garden
'Version 1.0
Option Explicit

Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ( _
ByVal hwndParent As Long, _
ByVal hwndChildAfter As Long, _
ByVal lpClassName As String, _
ByVal lpWindowName As String _
) As Long

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hWnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Any _
) As Long

Private Const WM_GETTEXT = &HD

Public Sub OutputTimecode()

Dim hWindow As Long
Dim rl As Long
Dim buf As String * 12 'xx:xx:xx:xx + null

'//get app window hwnd
hWindow = FindWindowEx(0, 0, "PCTimecode", vbNullString)

If hWindow <> 0 Then

'//get app text box hwnd
hWindow = FindWindowEx(hWindow, 0, "edit", vbNullString)

If hWindow <> 0 Then

'//get TC
rl = SendMessage(hWindow, WM_GETTEXT, Len(buf), ByVal buf)

If rl = 11 Then 'xx:xx:xx:xx

'//insert TC
Selection.TypeText Left(buf, rl)

Else

MsgBox "PCTimecode error_2. orz"

End If

Else

MsgBox "PCTimecode error_1. orz"

End If

Else

MsgBox "PCTimecode not found. orz"

End If

End Sub
'Module1EOF