Difference between revisions of "TotalRecall Development"

From Computational Memory Lab
Jump to: navigation, search
Line 13: Line 13:
 
[Please note that at present we have one non-free dependency, so the resulting binaries are not fully free and open source. We are working to produce a completely free and open source version in the near future.]
 
[Please note that at present we have one non-free dependency, so the resulting binaries are not fully free and open source. We are working to produce a completely free and open source version in the near future.]
  
= Development Goals =
+
= User interface goals =
  
== Zero Dependencies ==
+
= Development goals =
 +
 
 +
== Zero dependencies ==
 
This is not really achievable given the poor quality of Oracle's Java Sound implementation and the lack of signal processing in the standard libraries. Introducing dependencies makes build automation, installation, and maintenance vastly more difficult.  
 
This is not really achievable given the poor quality of Oracle's Java Sound implementation and the lack of signal processing in the standard libraries. Introducing dependencies makes build automation, installation, and maintenance vastly more difficult.  
  
Line 22: Line 24:
 
At this point there are only two dependencies that can potentially break: the FMOD Sound System and the Java Native Access jar used to bind FMOD to the JVM. Both were selected because they are extremely high-quality and unlikely to stop working in the forseeable future. However, just to be safe, the sound system (edu.upenn.psych.memory.precisionplayer and edu.upenn.psych.memory.nativestatelessplayer) are designed in a pluggable way that allows re-implementation of the audio system without changing the program. If JNA ceases to work we can always fall back to JNI.
 
At this point there are only two dependencies that can potentially break: the FMOD Sound System and the Java Native Access jar used to bind FMOD to the JVM. Both were selected because they are extremely high-quality and unlikely to stop working in the forseeable future. However, just to be safe, the sound system (edu.upenn.psych.memory.precisionplayer and edu.upenn.psych.memory.nativestatelessplayer) are designed in a pluggable way that allows re-implementation of the audio system without changing the program. If JNA ceases to work we can always fall back to JNI.
  
= Dependencies and Borrowed Code =
+
= Dependencies and borrowed code =
  
 
* [http://fmod.org/ FMOD Sound System], copyright © Firelight Technologies Pty, Ltd., 1994-2010. (FMOD non-commercial license).
 
* [http://fmod.org/ FMOD Sound System], copyright © Firelight Technologies Pty, Ltd., 1994-2010. (FMOD non-commercial license).
Line 28: Line 30:
 
* Drag and drop support thanks to [http://iharder.sourceforge.net/current/java/filedrop/ FileDrop] (Public Domain).
 
* Drag and drop support thanks to [http://iharder.sourceforge.net/current/java/filedrop/ FileDrop] (Public Domain).
  
= Supported Configurations =
+
= Supported configurations =
  
 
{| border="1" cellpadding="2" cellspacing="0"
 
{| border="1" cellpadding="2" cellspacing="0"

Revision as of 15:28, 29 March 2010


<<html(

Penn TotalRecall Development

)>>

<<TableOfContents(3)>>

Open-source software is a collaborative effort. PLEASE inform us if anything on this page is incorrect or out of date.

License

TotalRecall is free and open-source software, released under the GNU General Public License, version 3. We encourage other groups to modify and improve the program. Please drop us a line if you're interested in developing TotalRecall or borrowing its code.

[Please note that at present we have one non-free dependency, so the resulting binaries are not fully free and open source. We are working to produce a completely free and open source version in the near future.]

User interface goals

Development goals

Zero dependencies

This is not really achievable given the poor quality of Oracle's Java Sound implementation and the lack of signal processing in the standard libraries. Introducing dependencies makes build automation, installation, and maintenance vastly more difficult.

When dependencies must be introduced they should be pure Java packaged nicely into jars. Since Java is strongly committed to reverse-compatibility we don't have to worry about the program breaking because of an obscure update to gcc or the release of a new operating system.

At this point there are only two dependencies that can potentially break: the FMOD Sound System and the Java Native Access jar used to bind FMOD to the JVM. Both were selected because they are extremely high-quality and unlikely to stop working in the forseeable future. However, just to be safe, the sound system (edu.upenn.psych.memory.precisionplayer and edu.upenn.psych.memory.nativestatelessplayer) are designed in a pluggable way that allows re-implementation of the audio system without changing the program. If JNA ceases to work we can always fall back to JNI.

Dependencies and borrowed code

  • FMOD Sound System, copyright © Firelight Technologies Pty, Ltd., 1994-2010. (FMOD non-commercial license).
  • OpenMary TTS's signal processing library (BSD-like).
  • Drag and drop support thanks to FileDrop (Public Domain).

Supported configurations

Operating System Java versions
Mac OS 10.6 (64-bit) Java 6
Mac OS 10.5 (32/64-bit) Java 5, 6
Ubuntu/Kubuntu Linux 10.11 (32/64-bit) Java 6
Windows 7 (32/64-bit) Java 6
Windows Vista (32/64-bit) Java 5, 6
Windows XP (32-bit) Java 5, 6

Note: Mac PowerPC is not officially supported, but the program is known to work on it.