Time Based Text
by Jaromil & Jodi
Our objective here is to carry more information in written text.
The solution we propose is: save performance time in text and vehicle it as additional information.
Saving and reproducing every single action during the compisition of a text let us vehicle emphasis in written communication.
This is a very simple concept and the implementation is very minimal, programmers are encouraged to use it to add features to their communication applications.
The implementation is written in thread-safe POSIX C++ and can be ported to most platforms.
The header file source:tbt/trunk/tbt.h provides the interface to save and play realtime the keys
The source file source:tbt/trunk/tbt.cpp implements all functionalities
.tbt file format
In the .tbt format, text is saved with a timestamp for each letter:
_________ ___________
| u-int | u-int |
| 64bit | 64bit | m-seconds = 1/1000 of a second
--------- -----------
.... | char | m-seconds | .... char = ASCII or higher bit char code
--------- -----------
| Total: 128bit |
---------------------
The saved file is just a binary sequence of this data.
Each timestamp is a delta on the time of the previous stroke, so this implementation waits the amount of time for each entry before providing the data.
This is done semi-asynchronously to the caller application: when getkey() is called, it will wait before returning until that time is expired, or just return immediately if the caller is being late.
However export to different formats is planned including generation of web-ready code in HTML and Javascript, a daemon to provide timed input thru a socket on the network (TCP/IP) and what not.
Input is captured from the console, but can be extended to intercept any application using some h4x0r keylogging technique on different OS ;)
tbt php class
A specific php class called TBT_JSRender can be used by web masters, web designers, and so on, to decode binary .tbt files, and to obtain the data into a format to be passed to a Javascript typewriter.
Information about this class reading the code:
http://dev.dyne.org/trac.cgi/browser/tbt/trunk/tbt-php.php
Reference implementation
A cross-platform reference implementation is provided on ftp://ftp.dyne.org/tbt
Authors
TBT is Copyleft 2006 by Jaromil & Jodi commissioned by the Impakt.nl festival
This source code is free software; you can redistribute it and/or modify it under the terms of the GNU Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This source code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Please refer to the GNU Public License for more details.
