Wed Mar 7 17:14:37 EST 2007 Released sdr 0.21 2007-03-07 17:11 cananian * src/net/cscott/sdr/calls/transform/EvalPrim.java: New 'EvalPrim' class creates DancerPath objects from Prims and Positions. 2007-03-07 17:07 cananian * src/net/cscott/sdr/calls/: ExactRotation.java, Rotation.java: Add 'isExact()' method to Rotation objects; add a 'fromXY()' method to ExactRotation which is the rough equivalent of atan2() for 'rational' angles. 2007-03-07 17:06 cananian * src/net/cscott/sdr/calls/Position.java: Slight javadoc tweak. 2007-03-07 17:05 cananian * src/net/cscott/sdr/calls/DancerPath.java: Add javadoc & a straight-forward constructor. 2007-03-07 14:57 cananian * lib/jme/: jme-model.jar, jme-effects.jar, jme-scene.jar, jme-sound.jar, jme-terrain.jar, jme.jar, lwjgl_fmod3.jar, jme-awt.jar, jme-collada.jar, jme-editors.jar, jme-gamestates.jar, lwjgl.jar, update.sh, jme-font.jar, jnlp/jinput-linux.jar.MD5, jnlp/lwjgl-mac.jar, jnlp/jinput-linux.jar, jnlp/jinput-mac.jar, jnlp/jinput-mac.jar.MD5, jnlp/jinput-windows.jar, jnlp/jinput-windows.jar.MD5, jnlp/lwjgl-linux.jar, jnlp/lwjgl-linux.jar.MD5, jnlp/lwjgl-mac.jar.MD5, jnlp/lwjgl-windows.jar, jnlp/lwjgl-windows.jar.MD5, jnlp/openal-linux.jar, jnlp/openal-linux.jar.MD5, jnlp/openal-mac.jar, jnlp/openal-mac.jar.MD5, jnlp/openal-windows.jar, jnlp/openal-windows.jar.MD5: Update jME. 2007-03-07 14:56 cananian * src/net/cscott/sdr/: anim/MenuState.java, calls/ast/Prim.java: Javadoc fix. 2007-03-07 14:25 cananian * src/net/cscott/sdr/calls/: transform/CallFileBuilder.g, ast/Prim.java, transform/BuilderHelper.java, transform/CallFile.g: Add bits to grammar and AST to specify "pass left shoulder" and "force an arcing motion" on primitive path pieces. 2007-03-07 14:24 cananian * src/net/cscott/sdr/calls/DancerPath.java: Expand javadoc for DancerPath. 2007-03-07 14:17 cananian * src/net/cscott/sdr/anim/: MenuItem.java, MenuState.java, SdrFirstPersonHandler.java, VenueState.java, BaseState.java: Update to latest version of jME. 2007-03-06 16:29 cananian * build.xml, upload.sh, lib/jme/jinput-dx8.dll, lib/jme/jinput-raw.dll, lib/jme/jinput.jar, lib/jme/libjinput-osx.jnilib, lib/jme/liblwjgl.jnilib, lib/jme/liblwjgl.so, lib/jme/liblwjgl64.so, lib/jme/lwjgl.dll, lib/jme/lwjgl.jar, lib/jme/lwjgl_applet.jar, lib/jme/lwjgl_fmod3.jar, lib/jme/lwjgl_util.jar, lib/jme/lwjgl_util_applet.jar, lib/jme/mvn-lib-install, lib/jme/jnlp/jinput-linux.jar, lib/jme/jnlp/jinput-linux.jar.MD5, lib/jme/jnlp/jinput-mac.jar, lib/jme/jnlp/jinput-mac.jar.MD5, lib/jme/jnlp/jinput-windows.jar, lib/jme/jnlp/jinput-windows.jar.MD5, lib/jme/jnlp/lwjgl-linux.jar, lib/jme/jnlp/lwjgl-linux.jar.MD5, lib/jme/jnlp/lwjgl-mac.jar, lib/jme/jnlp/lwjgl-mac.jar.MD5, lib/jme/jnlp/lwjgl-windows.jar, lib/jme/jnlp/lwjgl-windows.jar.MD5, lib/jme/jnlp/openal-linux.jar, lib/jme/jnlp/openal-linux.jar.MD5, lib/jme/jnlp/openal-mac.jar, lib/jme/jnlp/openal-mac.jar.MD5, lib/jme/jnlp/openal-windows.jar, lib/jme/jnlp/openal-windows.jar.MD5, lib/sphinx/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar, lib/sphinx/sphinx4.jar, lib/sphinx/update.sh: Update sphinx4 and jME libraries; bump version # to 0.21. 2007-03-06 16:27 cananian * notes.txt: Add a note about Dave Wilson's "fix switched dancers" resolve technique. 2007-03-06 14:37 cananian * src/net/cscott/sdr/calls/SelectorList.java: Javadoc fix. 2006-11-28 01:48 cananian * src/net/cscott/sdr/calls/DancerPath.java: First draft of class which represents the result of a call (for a specific dancer in a particular formation). 2006-11-28 01:47 cananian * src/net/cscott/sdr/calls/SelectorList.java, notes.txt: Add 'OR' selection combination function. 2006-11-28 01:46 cananian * src/net/cscott/sdr/anim/MenuItem.java: Fix eclipse warning. 2006-11-28 00:04 cananian * src/net/cscott/sdr/anim/MenuItem.java: Suppress right arrow if there are no menu choices. 2006-11-27 23:57 cananian * lib/jme/: jme-model.jar, jme-effects.jar, jme-sound.jar, lwjgl.jar, lwjgl_fmod3.jar, jme-awt.jar, jme-gamestates.jar, jme-terrain.jar, jme.jar, jme-editors.jar, jme-font.jar, jme-scene.jar, jnlp/jinput-linux.jar, jnlp/jinput-mac.jar, jnlp/jinput-windows.jar, jnlp/lwjgl-linux.jar, jnlp/lwjgl-mac.jar, jnlp/lwjgl-windows.jar, jnlp/openal-linux.jar, jnlp/openal-mac.jar, jnlp/openal-windows.jar: Update jME to properly check render thread. 2006-11-22 15:58 cananian * src/net/cscott/sdr/sound/JavaSoundTest.java: Add a test class to print out information about the sound system, according to Java Sound. I'm pretty disappointed with the level of information provided; just a basic "select input device" dialog looks to be very complicated & platform dependent. 2006-11-22 15:57 cananian * notes.txt: Some notes about OpenAL for sound. 2006-11-22 15:56 cananian * src/net/cscott/sdr/anim/: MusicState.java, TextureText.java, TexturedQuad.java, VenueState.java: Thread-safety updates. I understand the jME threading model better now. 2006-11-22 15:52 cananian * src/net/cscott/sdr/anim/MenuItem.java: Update for latest CVS of jME. 2006-11-22 15:50 cananian * lib/jme/: jme-model.jar, jme-effects.jar, lwjgl.jar, jme-awt.jar, jme-sound.jar, jme-terrain.jar, jme.jar, lwjgl_fmod3.jar, update.sh, jme-editors.jar, jme-font.jar, jme-gamestates.jar, jme-scene.jar, jnlp/jinput-linux.jar, jnlp/jinput-mac.jar, jnlp/jinput-windows.jar, jnlp/lwjgl-linux.jar, jnlp/lwjgl-mac.jar, jnlp/lwjgl-windows.jar, jnlp/openal-linux.jar, jnlp/openal-mac.jar, jnlp/openal-windows.jar: Update jME to latest CVS. 2006-11-21 20:57 cananian * src/net/cscott/sdr/anim/Game.java: Work around an infelicity in LoadingState. 2006-11-14 13:08 cananian * build.xml, upload.sh: Use pack200 on the sdr-libs.jar file, which reduces download size by about 16%. (Reduces the size of sdr-libs.jar by 22%.) Probably not worth it, sigh. 2006-11-14 12:11 cananian * build.xml, lib/dev/README, lib/dev/deployment-ant-pack200-1.0beta.jar, lib/dev/pack200tasks.html: Add ANT task for pack200, but don't actually use it as it only saves about 17% of our space (4.3M out of 24.5M). 2006-11-14 11:20 cananian * build.xml, src/net/cscott/sdr/anim/package-info.java, src/net/cscott/sdr/calls/lists/BasicList.java, src/net/cscott/sdr/calls/lists/MainstreamList.java: Javadoc improvements: link call lists to List.java javadoc; fix javadoc dependency rule in build.xml; link to jME home page. 2006-11-14 11:12 cananian * src/net/cscott/sdr/calls/lists/: BasicList.java, MainstreamList.java: Add note re: "where are the rest of the calls?" 2006-11-14 03:00 cananian * build.xml, src/net/cscott/sdr/package-info.java, src/net/cscott/sdr/anim/TexturedQuad.java, src/net/cscott/sdr/anim/package-info.java, src/net/cscott/sdr/calls/package-info.java, src/net/cscott/sdr/calls/ast/package-info.java, src/net/cscott/sdr/calls/grm/package-info.java, src/net/cscott/sdr/calls/lists/.cvsignore, src/net/cscott/sdr/calls/lists/package-info.java, src/net/cscott/sdr/calls/transform/package-info.java, src/net/cscott/sdr/recog/package-info.java, src/net/cscott/sdr/sound/package-info.java, src/net/cscott/sdr/util/package-info.java: Add package description files; copy call lists to doc-files directory during javadoc build so that we can link to them. 2006-11-14 02:02 cananian * src/net/cscott/sdr/anim/: MenuItem.java, MenuState.java: Add mouse/keyboard input for menu. 2006-11-14 02:00 cananian * src/net/cscott/sdr/anim/GradientTriangle.java: Add method to check if a point is inside the GradientTriangle. 2006-11-13 00:07 cananian * src/net/cscott/sdr/anim/: MenuItem.java, MenuState.java: Factor out MenuItem, which takes care of state changes for a single menu item. 2006-11-13 00:06 cananian * src/net/cscott/sdr/anim/HUDState.java: Eliminate warnings; add public methods to update score and call text. 2006-11-13 00:05 cananian * src/net/cscott/sdr/anim/BaseState.java: Allow re-use of the mkText method without adding the TextureText to the rootNode. 2006-11-12 23:28 cananian * src/net/cscott/sdr/: App.java, anim/DebugState.java, anim/Game.java: Create a DebugState which displays memory usage and frames-per-second information.. and maybe other debugging information eventually, too. 2006-11-12 23:27 cananian * src/net/cscott/sdr/sound/: MidiDemo.java, MidiThread.java: Enable instrument loading. 2006-11-12 23:27 cananian * src/net/cscott/sdr/anim/: MenuArrow.java, MenuState.java: Scale various bits of the menu state properly: the location of the notes bar is always screen-size relative; it's just the height of the actual notes which are fixed. 2006-11-12 18:13 cananian * notes.txt, src/net/cscott/sdr/sound/MidiDemo.java, src/net/cscott/sdr/sound/MidiThread.java, src/net/cscott/sdr/sound/MidiTimer.java, src/net/cscott/sdr/sound/OldMidiTimer.java: Hook up BeatTimer to MidiThread, so that beats are synchronized with the music. Move the old MidiTimer (which has some calculations which may be useful later) to OldMidiTimer. 2006-11-12 17:54 cananian * src/net/cscott/sdr/: App.java, anim/Game.java, sound/MidiThread.java: Add MidiThread, with some Barriers and Queues to get the BeatTimer back from it once the music has started. 2006-11-12 16:57 cananian * src/net/cscott/sdr/anim/GradientTriangle.java, src/net/cscott/sdr/anim/MenuArrow.java, src/net/cscott/sdr/anim/MenuState.java, resources/net/cscott/sdr/anim/menu-arrow-sel.png, resources/net/cscott/sdr/anim/menu-arrow.png: Add 'MenuArrow' (a subclass of 'GradientTriangle') to display the scroll arrows on the menu bars. 2006-11-12 16:28 cananian * src/net/cscott/sdr/anim/RedOval.java: Optimize texture memory by sharing the background "red oval" texture. 2006-11-12 15:58 cananian * src/net/cscott/sdr/anim/: BaseState.java, HUDState.java, MenuState.java, MusicState.java: Factor out common HUD state functionality into new BaseState class. 2006-11-12 15:30 cananian * notes.txt: Various notes on DDR integration, etc. 2006-11-12 15:27 cananian * src/net/cscott/sdr/anim/HUDState.java: Tweak text item sizes to account for changes to TextureText. 2006-11-12 15:26 cananian * src/net/cscott/sdr/anim/TextureText.java: Update TextureText to use the ascent+descent for the height instead of the bounding box, so that text items don't change "size" when text containing descenders/ascenders is used. 2006-11-12 15:25 cananian * src/net/cscott/sdr/anim/MenuState.java: Add menu and option text to MenuState (only static at the moment). 2006-11-12 15:23 cananian * src/net/cscott/sdr/anim/Star.java: Clean up variable names. 2006-11-12 15:22 cananian * images/menu-oval.svg, resources/net/cscott/sdr/anim/menu-oval.png, src/net/cscott/sdr/anim/RedOval.java: Add 'RedOval' shape for menu option background. 2006-11-12 13:19 cananian * images/star-grad.xcf.bz2, resources/net/cscott/sdr/anim/star-grad.png, src/net/cscott/sdr/anim/MenuState.java: Add slowly rotating star in background on MenuState. 2006-11-12 13:18 cananian * src/net/cscott/sdr/anim/Star.java: Add 'Star' shape. 2006-11-11 15:50 cananian * images/menu.svg: Tweak menu mockup. 2006-11-11 15:39 cananian * images/menu.svg: Expanded the music/microphone and venue/dancers menus. 2006-11-11 15:10 cananian * images/menu.svg: First draft of setup screen layout. I think I need to split Microphone/Sound and Venue/Dancers. 2006-11-10 22:07 cananian * resources/net/cscott/sdr/icon128.png, resources/net/cscott/sdr/icon16.png, resources/net/cscott/sdr/icon32.png, src/net/cscott/sdr/anim/Game.java: Set application icon. 2006-11-10 22:06 cananian * src/net/cscott/sdr/App.java: Tweak loading message. 2006-11-10 20:21 cananian * src/net/cscott/sdr/anim/Game.java: Make the background pale green so that the loading screen shows up better. Add 'screen shot' key binding -- unfortunately, doesn't seem to grab all active GameStates yet. =( 2006-11-10 19:12 cananian * notes.txt: More notes. 2006-11-10 16:22 cananian * images/: hud-back.png, hud.svg: Added linked .png image for hud.svg. 2006-11-10 16:15 cananian * notes.txt: Additional ScoreAccumulator notes. 2006-11-10 10:24 cananian * src/net/cscott/sdr/: App.java, CommandInput.java, ScoreAccumulator.java, recog/RecogThread.java: Add raw user input and timings to the CommandInput; generate these in RecogThread, use these in App, and pass them to the ScoreAccumulator (to score the timing of the call). 2006-11-09 19:56 cananian * src/net/cscott/sdr/: App.java, recog/RecogThread.java: Add code to look through the 'n best' matches and send them to the CommandInput. We also get an appropriate timestamp, but that gets thrown away at the moment. 2006-11-09 19:56 cananian * src/net/cscott/sdr/ChoreoEngine.java: Comment out an 'assert false: "unimplemented"' so I can test the recognition frontend. 2006-11-09 19:55 cananian * src/net/cscott/sdr/recog/LevelMonitor.java: Note about thread-safety. 2006-11-09 16:01 cananian * src/net/cscott/sdr/: anim/MenuHandler.java, anim/VenueState.java, anim/MusicState.java, anim/TextureText.java, anim/TexturedQuad.java, calls/TaggedFormation.java, calls/transform/CallFileLoader.java, recog/RecogThread.java: Clean up import warnings. 2006-11-09 15:57 cananian * src/net/cscott/sdr/calls/Tagger.java: Notes about fixes to make in Tagger. 2006-11-09 15:56 cananian * notes.txt, src/net/cscott/sdr/anim/Gauge.java, src/net/cscott/sdr/anim/HUDState.java: Added 'reflected' property to gauge, so that the sequence length gauge looks reasonable on JDK1.5 platforms. 2006-11-09 15:13 cananian * notes.txt: More notes about javadoc & jdk 1.5 gradients. 2006-11-09 15:12 cananian * resources/net/cscott/sdr/recog/sdr.config.xml, src/net/cscott/sdr/App.java, src/net/cscott/sdr/anim/Game.java, src/net/cscott/sdr/anim/MusicState.java, src/net/cscott/sdr/recog/LevelMonitor.java, src/net/cscott/sdr/recog/RecogThread.java: Add LevelMonitor class, which keeps track of the maximum microphone level within the Sphinx front end. Use this in MusicState to draw the current audio level in the HUD. Add code to App and Game to integrate Sphinx via the new RecogThread class. 2006-11-09 15:10 cananian * src/net/cscott/sdr/anim/TexturedQuad.java: Add private _updateTextureNow() method, for when we know we're in the update thread, and don't want updates to lag behind a frame time. 2006-11-08 18:42 cananian * src/net/cscott/sdr/anim/: Game.java, HUDState.java, MenuState.java, MusicState.java: Factored 'MusicState' out of HUDState, so that we can display the music notes during the menu sequence. This way the user can see the microphone levels, etc, before starting the game. 2006-11-08 18:04 cananian * src/net/cscott/sdr/anim/: Game.java, HUDState.java, MenuHandler.java, MenuState.java: Now menu state doesn't include HUD; "press enter to start" actually does something! 2006-11-08 17:45 cananian * src/net/cscott/sdr/anim/: Gauge.java, HUDState.java: "Gauge" class added to display various meters at top of screen. 2006-11-08 16:20 cananian * src/net/cscott/sdr/anim/: TextureText.java, TexturedQuad.java: Factor out a 'TexturedQuad' class from TexureText, consisting of only the functionality to create a Quad with a texture from a BufferedImage. 2006-11-08 16:19 cananian * src/net/cscott/sdr/anim/: Game.java, HUDState.java, VenueState.java: Use GameTaskQueueManager.update() instead of GameTaskQueueManager.getQueue(foo).enqueue(). 2006-11-08 15:02 cananian * notes.txt: Update some old comments. 2006-11-08 14:57 cananian * notes.txt: Added additional notes on 'chase camera', HUD, play modes. 2006-11-08 14:56 cananian * images/measure-bang.svg, resources/net/cscott/sdr/anim/measure-bang.png, src/net/cscott/sdr/anim/HUDState.java: Highlight the "currently played" note as it passes the "now bar". 2006-11-08 14:04 cananian * src/net/cscott/sdr/: App.java, anim/Game.java, anim/SilentBeatTimer.java, anim/StubBeatTimer.java: Rename "StubBeatTimer" to "SilentBeatTimer" and allow specification of the bpm rate to the constructor. 2006-11-08 13:58 cananian * images/call-star.svg, images/hud.svg, images/measure-bar.svg, images/measure-now.svg, images/measure.svg, resources/net/cscott/sdr/anim/measure-now.png, resources/net/cscott/sdr/anim/measure.png, src/net/cscott/sdr/anim/HUDState.java: Add the glowing "now bar" to the display; the beat happens when the note moves past it. Resize measure images to 128x128. Add 'call star' and 'measure-bar' icons to images/ ; these are added to the notes bar at "deadline for the next call" and phrase boundaries, respectively -- no support in HUDState yet. 2006-11-08 13:53 cananian * src/net/cscott/sdr/anim/StubBeatTimer.java: Make it easier to change the BPM. 2006-11-08 12:16 cananian * resources/net/cscott/sdr/anim/measure.png, src/net/cscott/sdr/anim/HUDState.java: Add scrolling notes texture at bottom and "bonus" text at top-right. 2006-11-08 12:15 cananian * src/net/cscott/sdr/anim/TextureText.java: Make sure our renderState is updated. 2006-11-08 12:15 cananian * src/net/cscott/sdr/anim/Game.java: Only show WARNINGs, not INFO messages. 2006-11-08 00:18 cananian * src/net/cscott/sdr/: App.java, anim/Game.java, anim/StubBeatTimer.java, anim/VenueState.java: Pass in a shared BeatTimer for use by the Game, VenueState, and HUDState. Create a StubBeatTimer class for testing/debugging. 2006-11-07 18:49 cananian * src/net/cscott/sdr/anim/HUDState.java: Add shaded backgrounds, and add updateScore() and setNotice() methods. 2006-11-07 18:08 cananian * src/net/cscott/sdr/anim/: Game.java, HUD.java, HUDState.java: Add the first inklings of a HUD. Right now this is only the text elements. 2006-11-07 18:07 cananian * resources/net/cscott/sdr/fonts/READ_ME.TXT, resources/net/cscott/sdr/fonts/exprswy_free.ttf, src/net/cscott/sdr/anim/TextureText.java, resources/net/cscott/sdr/fonts/Typodermic Freeware EULA.html, resources/net/cscott/sdr/fonts/bluebold.ttf: Replace "Expressway" with Blue Highway. I don't care if Ray Larabie likes Expressway better, Blue Highway just *looks* better with our technology. Expressway is almost unreadable at small sizes, even if I derive a bold-face version. Sorry, Ray. 2006-11-07 15:49 cananian * src/net/cscott/sdr/anim/TextureText.java: Added better documentation; use a SoftReference for the BufferedImage to release the memory for slowly-changing TextureText objects. 2006-11-07 15:17 cananian * src/net/cscott/sdr/anim/TextTest.java: Don't need this development framework any more. 2006-11-07 15:13 cananian * src/net/cscott/sdr/anim/TextureText.java: Add color support. 2006-11-07 15:01 cananian * src/net/cscott/sdr/anim/TextureText.java: Add class which displays text in JME by rendering the complete string to a texture. 2006-11-07 13:11 cananian * src/net/cscott/sdr/anim/TextTest.java: Shear the text, so we can use a single quad with a y-wrapped texture to display. 2006-11-07 13:00 cananian * src/net/cscott/sdr/anim/TextTest.java: Simplify by writing directly to the destination image. 2006-11-07 11:42 cananian * src/net/cscott/sdr/anim/TextTest.java: Start writing code to generate text textures (Swing applet currently for debugging/development purposes). 2006-11-07 11:41 cananian * src/net/cscott/sdr/App.java: Use new GameState-based infrastructure. 2006-11-06 18:29 cananian * notes.txt: Added notes about text in jme. 2006-11-06 16:11 cananian * images/: call-star.svg, hud.svg, measure-bar.svg, measure.svg: Work on mockup images. 2006-11-06 15:20 cananian * src/net/cscott/sdr/anim/MenuState.java: Fix Javadoc. 2006-11-06 15:19 cananian * images/loading.svg, images/splash-start.svg, images/splash.svg, resources/net/cscott/sdr/anim/loading.png, resources/net/cscott/sdr/anim/splash-start.png, resources/net/cscott/sdr/anim/splash.png: According to Ray Larabie's suggestion for his 'Vanilla Whale' font, capitalized the last letter in 'Revolution' in the splash and loading screens. 2006-11-06 14:52 cananian * resources/net/cscott/sdr/fonts/: Typodermic Freeware EULA.html, exprswy_free.ttf: Use Larabie 'Expressway' as our display font: this is an updated version of 'Blue Highway', which we used in our mockup, but which the designer apparently no longer likes. (See http://bold.se/forum/showthread.php?p=59913 ). Note that our splash screen uses two other Larabie fonts: Vanilla Whale and Burnstown Dam. Expressway is distributed upstream at: http://www.typodermic.com/31.html. 2006-11-06 13:00 cananian * src/net/cscott/sdr/anim/Game.java: Additional thread-safety: move the GameState.setActive() execution to the update thread. 2006-11-06 02:06 cananian * images/hud.svg: Check in a mockup of the game HUD. 2006-11-06 00:08 cananian * images/loading.svg, resources/net/cscott/sdr/anim/loading.png, src/net/cscott/sdr/anim/Game.java: Tweaks to GameState version of code: better loading screen, steps for loading the formation and call list, etc. 2006-11-05 22:20 cananian * resources/net/cscott/sdr/anim/cursor1.png, resources/net/cscott/sdr/anim/splash-start.png, src/net/cscott/sdr/anim/Game.java, src/net/cscott/sdr/anim/MenuHandler.java, src/net/cscott/sdr/anim/MenuState.java, src/net/cscott/sdr/anim/VenueState.java: Refactor into GameStates. Add a 'loading' screen and a 'menu' screen. 2006-11-05 22:17 cananian * resources/net/cscott/sdr/anim/: 1.png, 2.png, 3.png, 4.png: Fix size of checker textures. 2006-11-05 15:39 cananian * notes.txt: Add note about speech level monitoring. 2006-11-05 15:35 cananian * images/: call-marker.svg, grad-hi-green.svg, grad-hi-red.svg, measure.svg, splash-start.svg: Added some more images for the game HUD. 2006-11-05 11:08 cananian * resources/net/cscott/sdr/anim/1.png, resources/net/cscott/sdr/anim/2.png, resources/net/cscott/sdr/anim/3.png, resources/net/cscott/sdr/anim/4.png, src/net/cscott/sdr/anim/CheckerDancer.java: Simplify CheckerDancer by combining the arrow and the number texture; multitexturing is no longer required. 2006-11-05 11:02 cananian * resources/net/cscott/sdr/anim/1.png, resources/net/cscott/sdr/anim/2.png, resources/net/cscott/sdr/anim/3.png, resources/net/cscott/sdr/anim/4.png, src/net/cscott/sdr/anim/CheckerDancer.java: Instead of creating multiple overlay quads, use multitexturing to overlay the arrow and the dancer number textures. 2006-11-04 14:59 cananian * src/net/cscott/sdr/calls/FormationList.java: Add means to disable the auto-tagger when creating canonical formations. 2006-11-04 14:57 cananian * lib/jme/jme-model.jar, lib/jme/jme.jar, src/net/cscott/sdr/anim/QTest.java: Added a quick test suite for Quaternion (in)accuracy; updated the JME libraries checked into CVS to fix some Quaternion conversion bugs. 2006-11-03 19:14 cananian * src/net/cscott/sdr/anim/SdrGame.java: Use Quaternions to perform camera rotation; this avoids gimbal lock problem (but requires bug-fixed version of JME which doesn't have rounding errors in Quaternion.fromRotationMatrix()). 2006-11-01 17:06 cananian * sdr.jnlp.in, upload.sh, resources/net/cscott/sdr/icon.gif, resources/net/cscott/sdr/icon.png: Java web start requires a .gif (not a .png) for the icon. 2006-11-01 16:51 cananian * build.xml: Distribute sdr.jnlp.in instead of sdr.jnlp. 2006-11-01 16:50 cananian * .cvsignore, build.xml, sdr.jnlp, sdr.jnlp.in, upload.sh: Get version # for sdr.jnlp and upload.sh from the ant build file -- now we keep our version number in exactly one place. Also update the jnlp file's icon/splash screen urls (and put these in the right place in upload.sh). 2006-11-01 16:45 cananian * images/icon.svg, resources/net/cscott/sdr/icon.png: Cleaned up icon. 2006-11-01 15:54 cananian * images/icon.svg: First draft of SDR icon -- too busy atm. 2006-11-01 01:34 cananian * build.xml, upload.sh: Don't rebuild javadoc or exported-jar unless something changes. Use -target 1.5 argument to javac so that our application is runnable on JDK1.5. Use rsync in upload.sh to save some time/bandwidth (these jars are huge!). 2006-11-01 01:04 cananian * src/net/cscott/sdr/calls/GeneralFormationMatcher.java: Two fixes for formation matcher: 1) when matching formations with inexact rotations, we need to use Rotation.includes() when evaluating symmetry with the #0 dancer. 2) when creating the result formations, use the exact rotations of the input dancer instead of the general rotation of the goal formation. 2006-11-01 01:01 cananian * src/net/cscott/sdr/calls/TaggedFormation.java: EnumSet.copyOf() only works when the set being copied is not empty. 2006-11-01 00:59 cananian * src/net/cscott/sdr/calls/FormationList.java: When building formations using xofy, transfer tags from the 'y' formations. 2006-11-01 00:58 cananian * src/net/cscott/sdr/.cvsignore: Whoops: wrong file ignored. 2006-11-01 00:43 cananian * build.xml: Add version number to the javadoc. Include ANTLR grammars in the distribution tarball. 2006-11-01 00:40 cananian * .classpath, build.xml, src/net/cscott/sdr/.cvsignore, src/net/cscott/sdr/Version.java, src/net/cscott/sdr/Version.java.in: Tweaks to build files and eclipse's classpath. Automatically generate Version.java with the version from the ant build file. 2006-10-31 19:30 cananian * .cvsignore, build.xml, sample.build.properties, sdr.jnlp, upload.sh, lib/junit-4.1.jar, lib/stringtemplate-2.3b9.jar, lib/dev/ant-contrib.jar, lib/dev/junit-4.1.jar, lib/dev/stringtemplate-2.3b9.jar, lib/jme/jme-awt.jar, lib/jme/jme-editors.jar, lib/jme/jme-effects.jar, lib/jme/jme-font.jar, lib/jme/jme-gamestates.jar, lib/jme/jme-model.jar, lib/jme/jme-scene.jar, lib/jme/jme-sound.jar, lib/jme/jme-terrain.jar, lib/jme/jme.jar, lib/jme/lwjgl.jar, lib/jme/lwjgl_fmod3.jar, lib/jme/update.sh, lib/jme/jnlp/jinput-linux.jar, lib/jme/jnlp/jinput-linux.jar.MD5, lib/jme/jnlp/jinput-mac.jar, lib/jme/jnlp/jinput-mac.jar.MD5, lib/jme/jnlp/jinput-windows.jar, lib/jme/jnlp/jinput-windows.jar.MD5, lib/jme/jnlp/lwjgl-linux.jar, lib/jme/jnlp/lwjgl-linux.jar.MD5, lib/jme/jnlp/lwjgl-mac.jar, lib/jme/jnlp/lwjgl-mac.jar.MD5, lib/jme/jnlp/lwjgl-windows.jar, lib/jme/jnlp/lwjgl-windows.jar.MD5, lib/jme/jnlp/openal-linux.jar, lib/jme/jnlp/openal-linux.jar.MD5, lib/jme/jnlp/openal-mac.jar, lib/jme/jnlp/openal-mac.jar.MD5, lib/jme/jnlp/openal-windows.jar, lib/jme/jnlp/openal-windows.jar.MD5: Build a java web start-able version of SDR. To this end, separate jar libraries which we need for development but not for running the game into lib/dev/. Also, check in the bundled-up versions of the native libraries needed for Java Web Start into lib/jme/jnlp. 2006-10-31 16:45 cananian * .cvsignore, AUTHORS, COPYING, NEWS, README, build.xml, upload.sh: Add 'dist' target, and script to upload new version to distribution site. 2006-10-31 16:25 cananian * sdr.Manifest: Add missing libraries to the Manifest's Class-Path. 2006-10-30 19:39 cananian * src/net/cscott/sdr/calls/Tagger.java: First draft of Tagger class, which just does 2-person formations. 2006-10-30 19:38 cananian * src/net/cscott/sdr/calls/TaggedFormation.java: Add TaggedFormation.tags(Dancer) to get the full set of tags of a given dancer. 2006-10-30 19:38 cananian * src/net/cscott/sdr/calls/Position.java: Make it easier to create integer-valued Positions. Also correct an obsolete javadoc comment. 2006-10-30 17:46 cananian * notes.txt: Transfer various notes from paper. 2006-10-30 17:36 cananian * resources/net/cscott/sdr/calls/lists/basic.calls, resources/net/cscott/sdr/calls/lists/plus.calls, src/net/cscott/sdr/calls/SelectorList.java: Add 'circle left' from squared set; update call lists to use proper Selector names; fix typo in SelectorList. 2006-10-30 17:12 cananian * lib/jutil.jar: Update jutil.jar (bug fix to MultiMap.toString()). 2006-10-30 17:09 cananian * src/net/cscott/sdr/calls/FormationMapper.java: Implement FormationMapper.compress(). 2006-10-30 16:42 cananian * src/net/cscott/sdr/calls/SelectorList.java: Update to match FormationList: 1/4 tag, 3/4 tag, and 1/4 line come in left-handed and right-handed varieties. 2006-10-30 16:40 cananian * src/net/cscott/sdr/calls/FormationList.java: Fixes & verification of FormationList. 2006-10-30 16:35 cananian * src/net/cscott/sdr/calls/Rotation.java: Use toProperString() when printing out the modulus of a Rotation. 2006-10-30 16:33 cananian * src/net/cscott/sdr/calls/ExactRotation.java: Add NORTH, EAST, SOUTH, and WEST as ExactRotation constants; override ExactRotation.toString() to suppress modulus info. 2006-10-30 16:32 cananian * src/net/cscott/sdr/calls/Formation.java: Add Formation.toStringDiagram() to pretty-print a formation. 2006-10-30 16:31 cananian * src/net/cscott/sdr/util/Box.java: Add Box.center() method to get the center of a Box. 2006-10-30 16:31 cananian * src/net/cscott/sdr/util/Fraction.java: Add -1 as a Fraction constant. 2006-10-30 16:31 cananian * notes.txt: Spelling fixes. 2006-10-30 15:20 cananian * lib/jutil.jar: Update to JUtil 1.3 (released version). 2006-10-29 23:50 cananian * src/net/cscott/sdr/calls/: FormationList.java, SelectorList.java: Add Selectors for new Formations. 2006-10-29 23:36 cananian * src/net/cscott/sdr/calls/FormationList.java: Added more formations from the "Callerlab Approved Formations" list from April 1980. 2006-10-29 22:58 cananian * src/net/cscott/sdr/calls/: FormationMapper.java, FormationMatch.java, GeneralFormationMatcher.java, TestSelectors.java, transform/Elaborate.java: Update GeneralFormationMatcher to return a meta formation along with the components (as a map from dancers in the meta formation to component formations). Also refactor GeneralFormationMatcher to "deoptimize" & enhance readability: use real (persistent) sets instead of silly hand-coded bitsets. The GeneralFormationMatcher ought to properly handle inexact rotations in goal formations now, too. 2006-10-29 22:54 cananian * src/net/cscott/sdr/calls/FormationList.java: Disable Tagger until we get it working & checked in. 2006-10-29 22:54 cananian * lib/jutil.jar: Update JUtil. 2006-10-29 22:30 cananian * src/net/cscott/sdr/calls/ExactRotation.java: Make the ExactRotation constructor public. 2006-10-29 22:30 cananian * src/net/cscott/sdr/calls/Formation.java: New Formation.onlySelected() method will create a new formation consisting of only the selected dancers. 2006-10-29 22:29 cananian * src/net/cscott/sdr/calls/PhantomDancer.java: Offset PhantomDancer.hashCode() so that hash codes don't overlap with those of StandardDancer. 2006-10-29 15:37 cananian * .cvsignore: Ignore some more local stuff. 2006-10-29 15:35 cananian * images/checkset.jpg: A picture of a checkers set I used as a basis for my checker models. 2006-10-29 15:22 cananian * lib/jutil.jar: Update to the latest beta of JUtil 1.3. 2006-10-28 16:51 cananian * src/net/cscott/sdr/calls/: SelectorList.java, FormationList.java: Rework selector list to use official names from Callerlab Approved Formations and to generate the formations by composition (instead of manually specifying every dancer's x,y location). Tags will be more-automatically assigned, too, saving us the trouble of manually picking out every BEAU, BELLE, LEADER, and TRAILER. 2006-10-28 16:50 cananian * src/net/cscott/sdr/calls/TaggedFormation.java: Refactor TaggedFormation to use a MultiMap instead of a Map>. 2006-10-28 00:07 cananian * lib/jutil.jar: Updated JUtil -- new version has factories for EnumSet and EnumMap. 2006-10-27 17:41 cananian * src/net/cscott/sdr/: anim/SdrGame.java, calls/FormationMapper.java: A little hack to help us test the FormationMapper -- the results look good! 2006-10-27 17:31 cananian * src/net/cscott/sdr/calls/FormationMapper.java: Complete FormationMapper.insert(). Casual inspection seems to indicate that this now does the Right Thing. 2006-10-27 17:31 cananian * src/net/cscott/sdr/calls/Formation.java: Use LinkedHashMap/LinkedHashSet, since we seem to be frequently iterating over the dancers in a formation. Also use the new Fraction.TWO constant. 2006-10-27 17:29 cananian * src/net/cscott/sdr/: util/Fraction.java, calls/lists/BasicList.java: Add constant Fraction.TWO, since we just it a lot. 2006-10-27 16:43 cananian * src/net/cscott/sdr/calls/FormationMapper.java: Continue work on FormationMapper, cleaning up & documenting the expansion code. Just need to do the final formation placement now. 2006-10-27 16:42 cananian * src/net/cscott/sdr/calls/: Formation.java, GeneralFormationMatcher.java, Position.java: Rename Position.rotate() to Position.turn() -- this turns in place. Add new Position.rotateAroundOrigin() method. Add Formation.rotate() method which rotates a given formation around the origin. Adjust the two Formation.bounds() methods to be consistent in adding a 1 unit "dancer allowance" to the returned bounds. Document better. 2006-10-27 16:39 cananian * src/net/cscott/sdr/calls/ExactRotation.java: Note the correspondence between toX(), toY() and the sin/cos functions. 2006-10-27 15:45 cananian * src/net/cscott/sdr/calls/Rotation.java: If we are to put Rotations in HashMaps (as the GeneralFormationMatcher does), we must compare them using *normalized* rotations. (It's arguable whether we even want to keep unnormalized values around, since we can always reconstruct the correct direction given that we never turn more than 90 degrees at a time.) 2006-10-27 15:43 cananian * src/net/cscott/sdr/calls/PhantomDancer.java: Give PhantomDancers repeatable hashcodes. There is a potential race when mutliple threads create PhantomDancers, but it's benign. 2006-10-27 14:00 cananian * resources/net/cscott/sdr/anim/bottom.jpg, resources/net/cscott/sdr/anim/east.jpg, resources/net/cscott/sdr/anim/north.jpg, resources/net/cscott/sdr/anim/south.jpg, resources/net/cscott/sdr/anim/top.jpg, resources/net/cscott/sdr/anim/west.jpg, src/net/cscott/sdr/anim/SdrGame.java: Add pretty skybox. 2006-10-27 12:30 cananian * src/net/cscott/sdr/calls/TestSelectors.java, .classpath, lib/junit-4.1.jar: Upgrade to JUnit 4.1. 2006-10-27 11:47 cananian * lib/jme/: jme-awt.jar, jme-editors.jar, jme-effects.jar, jme-font.jar, jme-gamestates.jar, jme-model.jar, jme-scene.jar, jme-sound.jar, jme-terrain.jar, jme.jar, update.sh: Update JME to CVS-latest. 2006-10-27 11:37 cananian * src/net/cscott/sdr/CommandInput.java: Fix javadoc typo. 2006-10-27 02:18 cananian * src/net/cscott/sdr/: anim/CheckerDancer.java, util/Bezier.java: Fix the dancer rotation issue by implementing our own, more efficient, bezier computation routines (in new class Bezier). Also randomize the footsteps slightly for a more natural look. 2006-10-27 02:17 cananian * src/net/cscott/sdr/anim/SdrGame.java: Quiet a warning by removing an unsed import. 2006-10-27 01:16 cananian * src/net/cscott/sdr/anim/: AnimDancer.java, CheckerDancer.java, SdrGame.java: Refactor CheckerDancer out of SdrGame. Now Dancers can actually move (although the interpolation is a little off: the dancers move around on their edges). 2006-10-27 01:14 cananian * src/net/cscott/sdr/calls/TimedPosition.java: TimedPosition now implements Comparable. 2006-10-27 01:14 cananian * src/net/cscott/sdr/calls/FormationMapper.java: A couple notes where FormationMapper is (still) broken. 2006-10-27 01:13 cananian * src/net/cscott/sdr/calls/Rotation.java: Bug fix in assertion: false should be true. 2006-10-27 01:12 cananian * src/net/cscott/sdr/calls/StandardDancer.java: A better StandardDancer.toString() method. 2006-10-26 15:22 cananian * src/net/cscott/sdr/: BeatTimer.java, anim/AnimDancer.java, anim/SdrGame.java: Add BeatTimer and AnimDancer frameworks. SdrGame now uses the SDR version in its window title. 2006-10-26 14:33 cananian * src/net/cscott/sdr/calls/: Action.java, TimedAction.java, TimedPosition.java: Add the beginnings of a framework for animation actions. The TimedFormation/TimedAction business might need to be revised: what is wanted is probably more like a TimedFormationOrAction list. 2006-10-26 13:33 cananian * src/net/cscott/sdr/: App.java, ChoreoEngine.java, CommandInput.java, ScoreAccumulator.java: Flesh out application interfaces: Add ChoreoEngine and ScoreAccumulator to define the interfaces to these bits. 2006-10-26 13:30 cananian * src/net/cscott/sdr/calls/TimedFormation.java: TimedFormations can be either relative or absolute. Relative TimedFormations are used during choreography (to ease retiming), and they are then changed to absolute TimedFormations for display. 2006-10-26 12:50 cananian * src/net/cscott/sdr/: Version.java, Version.java.in: Abandon the autoconf-generated Version.java -- make this a normal un-pre-processed class. Set the version at 0.1 for now (which might be generous). 2006-10-25 18:58 cananian * notes.txt: Notes about using Sphinx's RuleGrammar to parse input. 2006-10-25 18:55 cananian * src/net/cscott/sdr/: App.java, CommandInput.java: Create the CommandInput class, which synchronizes the various input methods with the choreography engine. 2006-10-25 18:53 cananian * src/net/cscott/sdr/recog/SphinxDemo.java: Add a comment telling how to get the 'n best' matches for the speech input. It's not really 'n best' -- there may be some good matches which are not included -- but it will do for now. The actual Lattice construction in Sphinx doesn't (yet?) support arbitrary grammars (it just uses n-gram probabilities). 2006-10-25 17:49 cananian * src/net/cscott/sdr/recog/SphinxDemo.java: Dump some random strings from the grammar so that we can verify that it only generates reasonable calls. 2006-10-25 17:48 cananian * resources/net/cscott/sdr/calls/: grm/antlr-v3.skel, lists/basic.calls, lists/mainstream.calls: Refine grammar: use 'fraction' instead of 'number' for cast,touch,etc. "Cast off 1 1/2" doesn't make sense. 2006-10-25 16:50 cananian * src/net/cscott/sdr/util/Fraction.java: Javadoc fix. 2006-10-25 16:43 cananian * src/net/cscott/sdr/calls/: FormationList.java, TestParser.java, grm/Rule.java, lists/BasicList.java, lists/MainstreamList.java, transform/BuilderHelper.java, transform/Elaborate.java, transform/ValueVisitor.java: Remove Eclipse warnings (mostly about unused imports). 2006-10-25 16:39 cananian * src/net/cscott/sdr/calls/: GeneralFormationMatcher.java, Position.java, SelectorList.java, Warp.java, ast/Prim.java: Change Position.facing from an ExactRotation to a Rotation. This allows us to create formations with inexact facing directions. A few other calls need to require that their Positions be exact, now. 2006-10-25 16:37 cananian * src/net/cscott/sdr/calls/: DanceState.java, PredicateList.java: Add a getter method for DanceState.program, in case we decide to make the DanceState mutable later. (I think it needs to be mutable, to let us change Programs during the game, but maybe we'll just tear down everything and create new threads with a new immutable DanceState instead.) 2006-10-25 16:34 cananian * .settings/org.eclipse.jdt.core.prefs: Suppress warnings about serialVersionUID. 2006-10-25 16:33 cananian * src/net/cscott/sdr/calls/: TimedFormation.java, TimedPosition.java: Add TimedFormation and TImedPosition classes to associate timestamps with a given formation/position. Evaluating a call should result in an ordered list of TimedFormations, with the last one indicating the final result formation. 2006-10-25 13:46 cananian * sdr.Manifest, src/net/cscott/sdr/anim/SdrBaseGame.java: Added JDK1.6 splash screen functionality (to Jar manifest; also explicitly turn off the splash screen when app comes up). Moved the call to display.setTitle() so that we don't have 'Game' display in the titlebar for several seconds. 2006-10-25 13:30 cananian * resources/net/cscott/sdr/recog/.cvsignore, src/net/cscott/sdr/calls/lists/.cvsignore: Add generated 'natural language' grammars to .cvsignore. 2006-10-25 13:26 cananian * src/net/cscott/sdr/calls/ExactRotation.java: Fix infinite recursion in ExactRotation caused by forgetting to add 'super.' to the invocations of the superclass methods. 2006-10-24 19:11 cananian * src/net/cscott/sdr/calls/Rotation.java: Use proper mathematical term: modulus, not modulo. 2006-10-24 19:04 cananian * src/net/cscott/sdr/calls/FormationMapper.java: Use the inner boundaries of the formations. Formation expansion is not yet correct. 2006-10-24 19:03 cananian * src/net/cscott/sdr/calls/Formation.java: Add Formation.isCentered() method, primarily for use in assertions. 2006-10-24 19:02 cananian * notes.txt, src/net/cscott/sdr/calls/ExactRotation.java, src/net/cscott/sdr/calls/Formation.java, src/net/cscott/sdr/calls/FormationList.java, src/net/cscott/sdr/calls/GeneralFormationMatcher.java, src/net/cscott/sdr/calls/Position.java, src/net/cscott/sdr/calls/Rotation.java, src/net/cscott/sdr/calls/Warp.java, src/net/cscott/sdr/calls/ast/Prim.java, src/net/cscott/sdr/calls/transform/BuilderHelper.java, src/net/cscott/sdr/calls/transform/CallFileBuilder.g: Split an ExactRotation class away from Rotation, and add a 'modulo' field to general rotations. Now we can express inexact facing directions, like "east or west" in addition to exact rotations. Update notes where this idea was discussed. 2006-10-24 18:59 cananian * src/net/cscott/sdr/util/Fraction.java: Add static fields for eighths. 2006-10-24 16:05 cananian * notes.txt: Note that pythagoras.html has a 5-degree rational approximation to a circle. 2006-10-24 15:57 cananian * pythagoras.html: Compute rational approximation to circle using pythagorean triples. 2006-10-24 15:08 cananian * notes.txt: Notes on formation assembly, elaboration, and evaluation. 2006-10-24 14:15 cananian * build.xml: Remove net.cscott.sdr.call.* from the 'excludes' list of the build target. 2006-10-24 14:14 cananian * lib/jutil.jar: Compile jutil with JDK version 1.5, so that SDR as a whole doesn't require JDK 1.6 in order to be built. 2006-10-23 13:35 cananian * src/net/cscott/sdr/calls/FormationMapper.java: Rewrite onlyShared to consider actual edges when deciding whether a boundary is shared. Still problems with diamonds; trying to figure out how to fix. 2006-10-23 13:33 cananian * src/net/cscott/sdr/calls/: FormationList.java, SelectorList.java: Add right- and left- hand diamonds. 2006-10-23 13:32 cananian * src/net/cscott/sdr/calls/Formation.java: Add method to get the bounding box of an individual dancer. 2006-10-23 13:31 cananian * resources/net/cscott/sdr/calls/lists/basic.calls: Fix typo in formation name. 2006-10-23 12:54 cananian * src/net/cscott/sdr/calls/FormationMapper.java: Recenter result formation: don't try to adjust expansion array. 2006-10-23 12:54 cananian * src/net/cscott/sdr/util/Interval.java: Improve javadoc. 2006-10-23 12:51 cananian * src/net/cscott/sdr/util/Interval.java: Add an Interval class (to be used by FormationMapper). 2006-10-23 12:50 cananian * src/net/cscott/sdr/util/LongFraction.java: LongFraction is unused, and probably buggy. Remove. 2006-10-23 12:49 cananian * src/net/cscott/sdr/util/: Fraction.java, LongFraction.java: Parameterize Fraction's implementation of Comparable. 2006-10-23 00:40 cananian * src/net/cscott/sdr/calls/Formation.java: Add methods to Formation to get the bounds of the formation, and to recenter it. 2006-10-23 00:39 cananian * src/net/cscott/sdr/util/: Box.java, Point.java: Add some simple geometric primitives (Box, Point) where the coordinates are Fractions. 2006-10-22 23:27 cananian * src/net/cscott/sdr/calls/FormationMapper.java: First draft of Formation.insert() method, which takes a number of subformations (tandems/miniwaves/etc) and inserts them into a meta formation. Still buggy in various ways. 2006-10-22 23:25 cananian * src/net/cscott/sdr/calls/: FormationList.java, SelectorList.java: Add RH_WAVE and LH_WAVE formations/selectors. 2006-10-22 23:24 cananian * src/net/cscott/sdr/calls/Position.java: Don't divide positions by half -- use a "dancers are two units tall/wide" grid which puts most locations on integer grid lines. 2006-10-22 23:19 cananian * src/net/cscott/sdr/calls/Formation.java: Add a method to create a formation based on a map from Dancers to Positions. 2006-10-22 18:58 cananian * src/net/cscott/sdr/calls/CallDB.java: Rewrite parser to invoke "natural language" parser dynamically. This prevents a dependency, allowing an easier build. 2006-10-22 18:37 cananian * resources/net/cscott/sdr/recog/sdr.config.xml, src/net/cscott/sdr/calls/grm/BuildGrammars.java: Use automatically-generated grammar for recognition (in the future, should dynamically select grammar given the Program to be recognized). 2006-10-22 18:30 cananian * .classpath, build.xml, lib/antlr-2.7.6.jar, lib/antlr-3.0b4.jar, lib/antlr.jar, lib/stringtemplate-2.3b9.jar, src/net/cscott/sdr/calls/CallDB.java, src/net/cscott/sdr/calls/Test.java, src/net/cscott/sdr/calls/lists/.cvsignore: Integrate ANTLRv3 grammar generation. Add CallDB.parse() method to invoke the new grammars to parse natural-language strings. 2006-10-22 18:28 cananian * resources/net/cscott/sdr/calls/grm/antlr-v3.skel, src/net/cscott/sdr/calls/grm/EmitANTLRv3.java, src/net/cscott/sdr/calls/grm/BuildGrammars.java: Add an emitter for ANTLR v3 parsers. ANTLR v2 doesn't have sufficient look-ahead. 2006-10-22 15:30 cananian * src/net/cscott/sdr/calls/lists/.cvsignore: Add an appropriate .cvsignore file (ignore generated parsers/lexers). 2006-10-22 15:28 cananian * resources/net/cscott/sdr/calls/grm/antlr.skel, resources/net/cscott/sdr/calls/grm/jsapi.skel, src/net/cscott/sdr/calls/grm/EmitANTLR.java: Bug fixes to grammars. 2006-10-22 15:27 cananian * src/net/cscott/sdr/calls/grm/BuildGrammars.java: Write the generated grammars to the proper files. 2006-10-22 15:27 cananian * src/net/cscott/sdr/calls/Program.java: Add a method to convert the program name to title case. 2006-10-22 15:25 cananian * src/net/cscott/sdr/calls/lists/BasicList.java: Temporarily disable some problematic grammar rules which involve left recursion. 2006-10-22 12:18 cananian * notes.txt, resources/net/cscott/sdr/calls/grm/antlr.skel, resources/net/cscott/sdr/calls/grm/jsapi.skel, resources/net/cscott/sdr/calls/lists/basic.calls, resources/net/cscott/sdr/calls/lists/mainstream.calls, src/net/cscott/sdr/calls/lists/BasicList.java: Tweak precedences; add some more grammar rules. 2006-10-22 11:46 cananian * src/net/cscott/sdr/calls/: grm/Grm.java, transform/CallFile.g, transform/CallFileBuilder.g: Add ability to parse grammar rules from strings (to make it easier to define custom calls). 2006-10-22 01:15 cananian * resources/net/cscott/sdr/calls/grm/antlr.skel, resources/net/cscott/sdr/calls/grm/jsapi.skel, src/net/cscott/sdr/calls/grm/AbstractEmit.java, src/net/cscott/sdr/calls/grm/BuildGrammars.java, src/net/cscott/sdr/calls/grm/EmitANTLR.java, src/net/cscott/sdr/calls/grm/EmitJSAPI.java: Refactor emitters: separate out a common superclass. Implement ANTLR/JSAPI skeletons, into which the computed rule grammars are put. 2006-10-21 18:31 cananian * src/net/cscott/sdr/calls/grm/: BuildGrammars.java, EmitANTLR.java, EmitJSAPI.java, NumberParams.java: Factor NumberParams into its own class. Implement EmitANTLR and EmitJSAPI to generate ANTLR/JSAPI-format grammars. 2006-10-21 18:30 cananian * src/net/cscott/sdr/calls/grm/ToStringVisitor.java: Whoops: ToStringVisitor was creating new instances of the Visitor for each level in the tree. Fixed. 2006-10-21 17:31 cananian * src/net/cscott/sdr/calls/grm/: BuildGrammars.java, RuleAndAction.java: Factor out a RuleAndAction pair to keep rules associated with Actions; build Actions for our rules. 2006-10-21 17:30 cananian * src/net/cscott/sdr/calls/: transform/CallFileBuilder.g, grm/SimplifyGrm.java: Create SimplifyGrm class to deal with one-element Seq and Alt, so that this is decoupled from grammar-parsing code. 2006-10-21 11:54 cananian * natural-v2.g, natural-v3.g: Check in the 'prototype' ANTLR v2 and v3 grammars, for reference. 2006-10-21 11:49 cananian * src/net/cscott/sdr/calls/grm/BuildGrammars.java: Start writing code to generate the ANTLR and JSSAPI grammars from the grammar information in the call list. 2006-10-21 11:47 cananian * src/net/cscott/sdr/calls/grm/: Grm.java, GrmVisitor.java, ToStringVisitor.java: Move toString() method out into its own visitor (so that we can override this for custom formats -- eg, JSSAPI and ANTLR). 2006-10-21 11:46 cananian * src/net/cscott/sdr/calls/grm/Rule.java: Precedence field can be null (after we perform precedence transformations on the grammar). 2006-10-21 11:46 cananian * src/net/cscott/sdr/calls/CallDB.java: Allow access to master list of calls (for grammar-building purposes, eg). 2006-10-21 11:45 cananian * notes.txt: Some notes on what a precedence grammar for natural-language calls should look like. 2006-10-20 20:54 cananian * src/net/cscott/sdr/calls/: Call.java, TestParser.java, grm/Rule.java, lists/BasicList.java, transform/BuilderHelper.java, transform/CallFileBuilder.g: Put Rules in CallDB. 2006-10-20 20:11 cananian * src/net/cscott/sdr/calls/: TestParser.java, grm/Grm.java, grm/Rule.java, transform/CallFileBuilder.g: Create AST for grammar rules. 2006-10-20 18:50 cananian * resources/net/cscott/sdr/calls/lists/basic.calls, resources/net/cscott/sdr/calls/lists/mainstream.calls, resources/net/cscott/sdr/calls/lists/plus.calls, src/net/cscott/sdr/calls/transform/CallFile.g, src/net/cscott/sdr/calls/transform/CallFileBuilder.g: Add 'optional' and 'spoken' tags to call lists. The 'optional' information allows us to mark calls which can be LEFT or REVERSE. The 'spoken' tag lets us attach a 'natural language' grammar for the call or concept. We don't do anything with these yet, but we will do some automated munging on these (removing left recursion, adding precedence for disambiguation) and then turn these into an ANTLR grammar for parsing plain-text input strings, and a Java Speech grammar for the Sphinx speech recognition engine. In fact, we can automatically generate several grammars, one for each different square dance program we support. Anyway, we don't do anything with the information yet -- not even build an AST. That will be in the next commits. 2006-10-19 23:14 cananian * notes.txt: Update notes (get rid of stuff we've already done/decided to do differently). 2006-10-19 18:59 cananian * resources/net/cscott/sdr/calls/lists/basic.calls, src/net/cscott/sdr/calls/SelectorList.java, src/net/cscott/sdr/calls/Test.java, src/net/cscott/sdr/calls/transform/BuilderHelper.java, src/net/cscott/sdr/calls/transform/CallFile.g, src/net/cscott/sdr/calls/transform/CallFileBuilder.g: Allow parameters in SELECT statements; this allows us to define 'run', 'cross run', 'fold', 'cross fold', 'walk others dodge', and how to apply a tagging call. 2006-10-19 17:00 cananian * resources/net/cscott/sdr/calls/lists/basic.calls, src/net/cscott/sdr/calls/PredicateList.java, src/net/cscott/sdr/calls/ast/Apply.java, src/net/cscott/sdr/calls/lists/BasicList.java, src/net/cscott/sdr/calls/transform/CallFile.g, src/net/cscott/sdr/calls/transform/CallFileBuilder.g: Allow parameters in CONDITION expressions. This (along with a kludge to allow us to do arithemetic in Calls) allows us to define Square Thru in the call list file, instead of with custom code. 2006-10-19 16:17 cananian * resources/net/cscott/sdr/calls/lists/basic.calls, resources/net/cscott/sdr/calls/lists/mainstream.calls, src/net/cscott/sdr/calls/Call.java, src/net/cscott/sdr/calls/Test.java, src/net/cscott/sdr/calls/TestParser.java, src/net/cscott/sdr/calls/lists/BasicList.java, src/net/cscott/sdr/calls/lists/MainstreamList.java, src/net/cscott/sdr/calls/transform/BuilderHelper.java, src/net/cscott/sdr/calls/transform/CallFile.g, src/net/cscott/sdr/calls/transform/CallFileBuilder.g: Allow simple parameters in the call definition list. Parameters can currently be used only in the argument to a 'call:' item -- but even so, this capability is pretty powerful. 2006-10-19 16:16 cananian * src/net/cscott/sdr/calls/Dancer.java: Fix javadoc. 2006-10-19 14:53 cananian * build.xml: Remove unused ANTLR targets. 2006-10-19 14:46 cananian * src/net/cscott/sdr/calls/transform/: BuilderHelper.java, CallFileBuilder.g: CallFileBuilder now generates an AST "builder function" instead of the AST directly. This refactoring paves the way for us to introduce limited parameterization into the call list file. For example: def: cast([n]) call: fractional([n], _cast 4/4) 2006-10-19 14:44 cananian * src/net/cscott/sdr/calls/ast/: Opt.java, OptCall.java, ParCall.java: Regularize constructors for Opt/OptCall/ParCall a bit. 2006-10-19 14:31 cananian * notes.txt: Notes about collisions. 2006-10-18 17:15 cananian * resources/net/cscott/sdr/calls/lists/: a1.calls, basic.calls, mainstream.calls, plus.calls: Tweak all the definitions to use 'in'/'out'. This simplifies a lot of calls and unifies the right-hand and left-hand cases. 2006-10-18 17:14 cananian * src/net/cscott/sdr/calls/: ast/Prim.java, transform/AstTokenTypes.java, transform/CallFile.g, transform/CallFileBuilder.g, transform/Elaborate.java, transform/RemoveIn.java, transform/TransformVisitor.java: Add 'in' and 'out' as primitive translation/rotation directions. Extend parser/ast/etc to handle this. A few other minor Prim improvements while we're at it. Minor tweak to Elaborate to not generate Warp nodes unless we're fully elaborating. 2006-10-18 17:12 cananian * src/net/cscott/sdr/calls/SelectorList.java: Add a 'toString' method to the STUB selector, for debugging purposes. 2006-10-18 17:12 cananian * notes.txt: More implementation notes: parameterized call definitions, adding 'in'/'out' as primitive directions, technique for doing formation breathing, formation match should include a 'meta formation' showing how the component formations are arranged. 2006-10-17 22:00 cananian * src/net/cscott/sdr/calls/transform/Elaborate.java: Fix elaboration of Opt/OptCall, resulting in a valid tree. Still to do: Seq/SeqCall and a proper Warp (which should warp the formation). 2006-10-17 21:59 cananian * src/net/cscott/sdr/calls/Warp.java: Some optimizations for Warp operations: basically notice Warp.NONE as a special case. 2006-10-17 21:57 cananian * src/net/cscott/sdr/calls/: PhantomDancer.java, StandardDancer.java, TaggedFormation.java, ast/ParCall.java: Add new primitive tag 'ALL' which matches all dancers (real & phantom). 2006-10-17 21:55 cananian * src/net/cscott/sdr/calls/ast/Warped.java: Narrow type of Warped.build(). 2006-10-17 20:09 cananian * .classpath: Add JUnit to the classpath. 2006-10-17 17:45 cananian * src/net/cscott/sdr/calls/: SelectorList.java, TestSelectors.java: Move testing code from SelectorList to JUnit test suite in TestSelectors. 2006-10-17 17:32 cananian * src/net/cscott/sdr/calls/Test.java: Add test of elaboration. 2006-10-17 17:31 cananian * src/net/cscott/sdr/calls/Position.java: Improve javadoc. 2006-10-17 17:31 cananian * src/net/cscott/sdr/calls/GeneralFormationMatcher.java: Fixed bug in GeneralFormationMatcher that causes multiple reporting of symmetric matches. We should be properly using the 'eq0' information now. 2006-10-17 16:04 cananian * src/net/cscott/sdr/calls/: Test.java, transform/Elaborate.java: Implement (and write a test for) 'Elaborate' class, which uses formation information to evaluate OPT/PAR/IF/etc. Doesn't quite work yet -- I think the GeneralFormationMatcher has a bug somewhere. 2006-10-17 16:03 cananian * src/net/cscott/sdr/calls/: GeneralFormationMatcher.java, NoMatchException.java, SelectorList.java: Make NoMatchException a subclass of BadCallException. In GeneralFormationMatcher, ensure that all the matched dancers are 'selected' in the formation. 2006-10-17 15:58 cananian * src/net/cscott/sdr/calls/ast/Par.java: Add a constructor which takes a list in addition to the varargs constructor. 2006-10-17 15:53 cananian * src/net/cscott/sdr/calls/transform/TransformVisitor.java: Optimize to remove unnecessary SEQ(PART(x)) subtrees. 2006-10-17 15:53 cananian * src/net/cscott/sdr/calls/: Formation.java, TaggedFormation.java: Add more primitive tags; add some extra factory methods. 2006-10-17 15:52 cananian * src/net/cscott/sdr/calls/: Dancer.java, PhantomDancer.java, StandardDancer.java: Certain tags are inherent to the Dancer, not the Formation. Handle these properly (via a method on Dancer). 2006-10-17 12:55 cananian * src/net/cscott/sdr/calls/: Test.java, ast/Apply.java, transform/Fractional.java: Be more conservative when fractionalizing: avoid expanding subcalls when we don't have to. (Tweak Test class, as one of the tests is no longer valid.) Add another helper Apply.makeApply method. 2006-10-17 12:42 cananian * src/net/cscott/sdr/calls/: transform/Fractional.java, lists/BasicList.java: Optimize away useless SEQ(PART(x)) -> x. 2006-10-17 12:41 cananian * src/net/cscott/sdr/calls/transform/BeatCounter.java: Bug fix: OptCall wasn't recursing into child properly. 2006-10-17 12:29 cananian * src/net/cscott/sdr/calls/: Call.java, Predicate.java, PredicateList.java, Test.java, TestParser.java, ast/Apply.java, ast/AstNode.java, ast/Comp.java, ast/Condition.java, ast/If.java, ast/In.java, ast/Opt.java, ast/OptCall.java, ast/Par.java, ast/ParCall.java, ast/Part.java, ast/Prim.java, ast/Seq.java, ast/SeqCall.java, ast/Warped.java, lists/BasicList.java, lists/MainstreamList.java, transform/.cvsignore, transform/BeatCounter.g, transform/BeatCounter.java, transform/CallFileBuilder.g, transform/Fractional.java, transform/RemoveIn.g, transform/RemoveIn.java, transform/TransformVisitor.java, transform/ValueVisitor.java, transform/Walker.g, transform/apply.g: Replace ANTLR child/sibling ast classes and tree walkers with custom parent/child ast classes. This allows us to do functional updates of the immutable nodes; the ANTLR classes are inherently mutable and don't support reuse of child pieces (unless the siblings are also identical). This fixes the infinite loop bug in the Fractional class. Introduce new ValueVisitor pattern to support BeatCounter, as well. 2006-10-17 12:27 cananian * src/net/cscott/sdr/calls/GeneralFormationMatcher.java: Better toString() method for GeneralFormationMatcher. 2006-10-17 12:26 cananian * src/net/cscott/sdr/calls/FormationList.java: Give names to defined formations. 2006-10-16 21:53 cananian * src/net/cscott/sdr/calls/: ast/Apply.java, ast/Comp.java, ast/Condition.java, ast/If.java, ast/In.java, ast/Opt.java, ast/OptCall.java, ast/Par.java, ast/ParCall.java, ast/Part.java, ast/Prim.java, ast/Seq.java, ast/SeqCall.java, ast/Warped.java, transform/TransformVisitor.java: Replace the antlr tree visitor with a new custom Visitor-pattern-based infrastructure. 2006-10-16 20:42 cananian * src/net/cscott/sdr/calls/transform/: Fractional.g, Transformer.g: Bail on ANTLR for doing tree transforms. v2 needs to support parameterization of the super class in order to avoid duplicating the basic tree building stuff, and v3 seems to be wildly unstable (as in, I can't get it to work). Let's just use a standard visitor pattern instead. 2006-10-15 15:06 cananian * resources/net/cscott/sdr/calls/lists/basic.calls, src/net/cscott/sdr/calls/lists/BasicList.java: Add complex call _touch to the Basic list. 2006-10-15 15:05 cananian * src/net/cscott/sdr/calls/ast/In.java: Utility constructor: take an int, rather than a Fraction. 2006-10-15 15:03 cananian * src/net/cscott/sdr/util/Fraction.java: Add a 'valueOf' method to create a Fraction from an integer. 2006-10-15 10:24 cananian * resources/net/cscott/sdr/calls/lists/a1.calls, resources/net/cscott/sdr/calls/lists/a2.calls, resources/net/cscott/sdr/calls/lists/basic.calls, resources/net/cscott/sdr/calls/lists/mainstream.calls, resources/net/cscott/sdr/calls/lists/plus.calls, src/net/cscott/sdr/calls/CallDB.java, src/net/cscott/sdr/calls/lists/BasicList.java, src/net/cscott/sdr/calls/lists/MainstreamList.java: Add timing to call list; in the process split out the basic list into mainstream/plus/a1/a2 as appropriate. 2006-10-15 10:23 cananian * .antlr-eclipse: Add 'Fractional.g', which depends on Transformer. 2006-10-15 10:22 cananian * notes.txt: Note about adding parameters to the call lists. 2006-10-14 23:17 cananian * src/net/cscott/sdr/calls/transform/: .cvsignore, Fractional.g, Transformer.g: Add 'Transformer' superclass to make it easier to write Tree transformations. Start working on Fractional, using Transformer. 2006-10-14 23:15 cananian * src/net/cscott/sdr/calls/BadCallException.java: Comment out no-arg constructor for BadCallException, as we'd prefer some explanation string for every place this is used. 2006-10-14 23:15 cananian * src/net/cscott/sdr/calls/ast/: Apply.java, Condition.java, If.java, In.java, Opt.java, OptCall.java, Prim.java: Add build() methods to AST classes, to make transformations easier to write. 2006-10-14 23:10 cananian * src/net/cscott/sdr/calls/TaggedFormation.java: Add a few new dancer tags. 2006-10-14 23:09 cananian * src/net/cscott/sdr/calls/SelectorList.java: Make stubs for a number of formation selectors which are used in our basic/mainstream call definitions. 2006-10-14 23:08 cananian * src/net/cscott/sdr/calls/Selector.java: Allow '-' in names of formation selectors. 2006-10-14 23:07 cananian * resources/net/cscott/sdr/calls/lists/basic.calls: Add definitions of most of our mainstream calls, although many depend on concepts or calls which are not yet defined. (Did this on the greyhound to/from NYC.) 2006-10-14 23:06 cananian * src/net/cscott/sdr/calls/ast/ParCall.java: Make formation tags case-insensitive, and allow ' ' and '-' in their names (which become '_' when translated to java field names). 2006-10-14 23:05 cananian * src/net/cscott/sdr/calls/lists/BasicList.java: Add explanation text to BadCallException creation sites. 2006-10-14 23:05 cananian * src/net/cscott/sdr/calls/transform/CallFile.g: Don't parse keywords after a colon on a line. (So that QUARTER IN isn't parsed as a token.) 2006-10-14 23:04 cananian * src/net/cscott/sdr/calls/transform/CallFileBuilder.g: Use Fraction.toProperString() so that 3-and-1 lines don't become 3/1-and-1/1 lines. 2006-10-14 23:03 cananian * src/net/cscott/sdr/calls/transform/Walker.g: Update: CONDITION token became IF. 2006-10-12 09:45 cananian * src/net/cscott/sdr/calls/: ast/Par.java, ast/ParCall.java, ast/Seq.java, transform/RemoveIn.g: Refactor 'build' methods out into AST classes, to facilitate reuse across transformations. 2006-10-12 09:45 cananian * src/net/cscott/sdr/calls/lists/BasicList.java: Whoops: fix typo. 2006-10-12 09:29 cananian * resources/net/cscott/sdr/calls/lists/basic.calls, src/net/cscott/sdr/calls/ast/Apply.java, src/net/cscott/sdr/calls/ast/Part.java, src/net/cscott/sdr/calls/lists/BasicList.java, src/net/cscott/sdr/calls/transform/CallFile.g, src/net/cscott/sdr/calls/transform/CallFileBuilder.g, src/net/cscott/sdr/calls/transform/RemoveIn.g: Work on _fractional. Split IPART and PART for indivisible and divisible parts, respectively. 2006-10-12 09:28 cananian * src/net/cscott/sdr/calls/BadCallException.java: Add BadCallException. 2006-10-12 09:28 cananian * src/net/cscott/sdr/calls/transform/Walker.g: Restrict vocabulary. 2006-10-12 09:27 cananian * src/net/cscott/sdr/calls/: CallDB.java, lists/MainstreamList.java: Start a list of mainstream calls (starting with cast 3/4). 2006-10-12 09:26 cananian * notes.txt: More notes to self, and a to-do list. 2006-10-11 15:15 cananian * src/net/cscott/sdr/calls/PredicateList.java: Add 'and' and 'or' short-circuit operators. 2006-10-11 15:07 cananian * src/net/cscott/sdr/calls/PredicateList.java: Start a list of useful predicates. 2006-10-11 15:06 cananian * src/net/cscott/sdr/calls/: Predicate.java, ast/Condition.java: Rename 'condition' field to 'predicate'. 2006-10-11 14:50 cananian * src/net/cscott/sdr/calls/: DanceState.java, Predicate.java, ast/Condition.java: Add Predicate class, which contains the executable information about a condition application. 2006-10-11 14:50 cananian * src/net/cscott/sdr/calls/Call.java: Update javadoc. 2006-10-11 14:48 cananian * src/net/cscott/sdr/calls/DanceState.java: Encapsulate the information about a dance which a Predicate might need to know. 2006-10-11 14:46 cananian * src/net/cscott/sdr/calls/: Sample.java, Sample.txt: Rename Sample.java to Sample.txt so we don't keep trying to compile/javadoc it. 2006-10-11 14:27 cananian * resources/net/cscott/sdr/calls/lists/basic.calls, src/net/cscott/sdr/calls/ast/Condition.java, src/net/cscott/sdr/calls/ast/If.java, src/net/cscott/sdr/calls/transform/CallFile.g, src/net/cscott/sdr/calls/transform/CallFileBuilder.g: Parse conditions (similar to calls, these are applications of condition "functions" to a list of arguments). 2006-10-11 13:58 cananian * build.xml: Improve ant build script -- javadoc target links to more APIs, build target correctly invokes ANTLR. 2006-10-11 13:58 cananian * .classpath: Include more API doc locations. 2006-10-11 13:57 cananian * src/net/cscott/sdr/calls/ast/Apply.java: Improve javadoc for Apply. 2006-10-11 12:30 cananian * src/net/cscott/sdr/calls/transform/CallFileBuilder.g: Add some comments; use (.)* rule instead of call_args in lookahead so we don't actually have to traverse all the subtrees. 2006-10-11 12:29 cananian * src/net/cscott/sdr/calls/transform/: BeatCounter.g, RemoveIn.g: Use AST vocabulary, not full parser vocabulary. 2006-10-11 12:29 cananian * src/net/cscott/sdr/calls/lists/CallList.java: This stub code is no longer needed. 2006-10-11 11:39 cananian * src/net/cscott/sdr/calls/: ast/If.java, ast/TokenTypes.java, ast/Warped.java, transform/AstTokenTypes.java, transform/AstTokenTypes.txt, transform/CallFile.g: Split off AST token vocabulary. 2006-10-11 11:02 cananian * src/net/cscott/sdr/calls/Program.java: Implement a method to give Program ordering. 2006-10-11 10:48 cananian * src/net/cscott/sdr/calls/: Call.java, Program.java, lists/BasicList.java, transform/CallFileBuilder.g: Make Program into an enumeration. 2006-10-11 10:42 cananian * notes.txt: More notes on implementation. 2006-10-11 01:28 cananian * src/net/cscott/sdr/calls/: ast/Warped.java, lists/BasicList.java, transform/CallFile.g: Add 'warped' tree node, to record results of formation match/concept modifiers (like 'left') in the call component tree. 2006-10-11 01:26 cananian * resources/net/cscott/sdr/calls/lists/basic.calls: Add pull by. 2006-10-11 01:26 cananian * src/net/cscott/sdr/calls/TaggedFormation.java: Add 'primitive' dancer tags: these are the only tags allowed in a 'simplified' tree. 2006-10-11 00:29 cananian * src/net/cscott/sdr/calls/: CallDB.java, Test.java, lists/BasicList.java: Added BasicList with non-simple basic calls -- for now just "square thru" and the "and" concept, to prove the idea. CallDB can now take a class name and add all the calls defined as static fields in that class. Test tries out "square thru 3 1/2". 2006-10-11 00:27 cananian * src/net/cscott/sdr/calls/ast/Apply.java: Make arg accessor functions public (no one's going to subclass Apply). 2006-10-10 23:34 cananian * src/net/cscott/sdr/calls/: CallDB.java, Test.java, TestParser.java, transform/CallFileBuilder.g, transform/CallFileLoader.java: Add central CallDB class, and split call file loading stuff into new CallFileLoader class. New 'Test' class to start doing integration testing of call evaluation. 2006-10-10 23:33 cananian * src/net/cscott/sdr/calls/Call.java: Add toString(), equals(), hashCode() methods, and @Override annotations. 2006-10-10 21:44 cananian * src/net/cscott/sdr/calls/: Call.java, ast/Apply.java, ast/Sub.java, transform/CallFile.g, transform/CallFileBuilder.g: Add Call/Apply classes: Call encapsulates the definition of a call or a concept (name, program, and a method to apply arguments to get a component tree); and Apply structures the arguments to a Call. Tweak grammar to generate Apply nodes in the graph (remove old 'Sub' name). Special case two things: call sequences become applications of the 'and' concept, and 1/2(foo) becomes fractional(1/2, foo). 2006-10-10 16:40 cananian * resources/net/cscott/sdr/calls/lists/basic.calls, src/net/cscott/sdr/calls/transform/CallFile.g, src/net/cscott/sdr/calls/transform/CallFileBuilder.g: Add 'program' declaration to call file syntax. Also disable the default error handler, which lets us remove a lot of ugly stuff in the tree walker. 2006-10-10 16:39 cananian * src/net/cscott/sdr/calls/Warp.java: Add Warp.compose(); add javadoc. 2006-10-10 15:31 cananian * src/net/cscott/sdr/calls/ast/Prim.java: Finished implementing Prim.warp(). Also implemented equals() and hashCode(), and enforced leaf constraint by overriding addChild and setFirstChild. 2006-10-10 15:29 cananian * src/net/cscott/sdr/calls/: Position.java, Rotation.java: Add @Override annotations. 2006-10-10 14:57 cananian * .antlr-eclipse, src/net/cscott/sdr/calls/.cvsignore, src/net/cscott/sdr/calls/TestParser.java, src/net/cscott/sdr/calls/apply.g, src/net/cscott/sdr/calls/callfile.g, src/net/cscott/sdr/calls/callfileb.g, src/net/cscott/sdr/calls/ast/If.java, src/net/cscott/sdr/calls/ast/In.java, src/net/cscott/sdr/calls/ast/Opt.java, src/net/cscott/sdr/calls/ast/OptCall.java, src/net/cscott/sdr/calls/ast/Par.java, src/net/cscott/sdr/calls/ast/ParCall.java, src/net/cscott/sdr/calls/ast/Part.java, src/net/cscott/sdr/calls/ast/Prim.java, src/net/cscott/sdr/calls/ast/Seq.java, src/net/cscott/sdr/calls/ast/Sub.java, src/net/cscott/sdr/calls/ast/TokenTypes.java, src/net/cscott/sdr/calls/transform/.cvsignore, src/net/cscott/sdr/calls/transform/BeatCounter.g, src/net/cscott/sdr/calls/transform/CallFile.g, src/net/cscott/sdr/calls/transform/CallFileBuilder.g, src/net/cscott/sdr/calls/transform/RemoveIn.g, src/net/cscott/sdr/calls/transform/Walker.g, src/net/cscott/sdr/calls/transform/apply.g: Moved parser/lexers/tree walkers to net.cscott.sdr.calls.transform class, to keep the 'representation of calls and positions' code separate from the munging of the representation. Split off TestParser into a separate class, instead of including a main routine in CallFileParser() -- this also removes a circular dependency between CallFileParser and CallFileBuilder which prevented the project from being built cleanly from scratch. Renamed *.g files to more closely match the names of the generated java classes. Started a Prim.warp() method to apply Warps to movement primitives. Added BeatCounter/RemoveIn to re-time primitives in order to remove 'In' nodes from the Call representation. Works on low-level asts, with all the formation-selection and call-expansion already applied. Added basic Walker class to walk the AST: idea is that it should be easy to create derived AST walkers from this. 2006-10-10 14:48 cananian * src/net/cscott/sdr/calls/Rotation.java: Add Rotation.subtract() method to go along with Rotation.add(). 2006-10-10 14:48 cananian * src/net/cscott/sdr/calls/CallList.java, resources/net/cscott/sdr/calls/basic.calls, resources/net/cscott/sdr/calls/lists/basic.calls, src/net/cscott/sdr/calls/lists/CallList.java: Make new net.cscott.sdr.calls.lists package, and move the call list files in there. Eventually this will have concept definitions & etc. 2006-10-10 14:03 cananian * src/net/cscott/sdr/calls/ast/ParCall.java: Broaden type on constructor. 2006-10-10 14:03 cananian * src/net/cscott/sdr/calls/ast/Prim.java: Add a method to scale the duration of a Prim. 2006-10-10 11:38 cananian * src/net/cscott/sdr/calls/ast/ParCall.java: Parse the tags given to ParCall. 2006-10-10 00:51 cananian * resources/net/cscott/sdr/calls/basic.calls, src/net/cscott/sdr/calls/FormationList.java, src/net/cscott/sdr/calls/SelectorList.java: Enough formations and selectors to match our initial set of calls. (We commented out 'trade down the line' because matching a GENERAL LINE is a little beyond us at the moment.) 2006-10-10 00:34 cananian * src/net/cscott/sdr/calls/: FormationMatch.java, GeneralFormationMatcher.java, SelectorList.java: First working version of GeneralFormationMatcher; add a self-test in SelectorList, along with a use of the GeneralFormationMatcher to create a COUPLE selector. Matched formations include a Warp for each matched formation, so that matching twin diamonds (say) yields two diamonds in canonical position (that is, centered at 0,0) along with Warp objects to move the canonical diamonds to their location in the setup. 2006-10-10 00:32 cananian * src/net/cscott/sdr/calls/Warp.java: Add a simple Warp factory to rotate and translate a formation. 2006-10-10 00:32 cananian * src/net/cscott/sdr/calls/: Formation.java, TaggedFormation.java: Add constructors to allow you to create a new Formation from an existing (goal) formation and a map from Dancer to Dancer. 2006-10-10 00:31 cananian * src/net/cscott/sdr/calls/Rotation.java: Make Rotation.add() and Rotation.negate() public. 2006-10-10 00:30 cananian * src/net/cscott/sdr/calls/FormationList.java: Comment out most of the formations, since we haven't really figured out 'general' formations yet. Add the basic 2-person formation: COUPLE. 2006-10-10 00:29 cananian * resources/net/cscott/sdr/calls/basic.calls: Move 'TWO SELECTED' from 'from' clause to a 'condition' clause. 2006-10-09 21:12 cananian * src/net/cscott/sdr/calls/GeneralFormationMatcher.java: Start work on a general formation matcher that will attempt to find maximal tilings of a given target formation against the input. 2006-10-09 21:11 cananian * src/net/cscott/sdr/calls/Position.java: Optimize hashCode(); add normalize() call to normalize the Rotation. 2006-10-09 21:11 cananian * .classpath: Add javadoc for apache commons lang; also resurrect SelectorList. 2006-10-09 17:41 cananian * src/net/cscott/sdr/calls/ast/OptCall.java: Actually attempt to parse the given formations. 2006-10-09 17:41 cananian * src/net/cscott/sdr/calls/: Formation.java, FormationList.java, FormationMatch.java, NoMatchException.java, Selector.java, SelectorList.java, TaggedFormation.java, Warp.java: Split Formation into Formation and TaggedFormation. Add Selector interface and SelectorList -- these select create a FormationMatch from a Formation. Create NoMatchException and Warp classes, which are also involved in this process. 2006-10-09 17:40 cananian * src/net/cscott/sdr/calls/callfile.g: Update to match the new name of the CallFileBuilder. 2006-10-09 15:57 cananian * src/net/cscott/sdr/calls/: .cvsignore, callfileb.g, ast/Comp.java, ast/If.java, ast/In.java, ast/Opt.java, ast/OptCall.java, ast/Par.java, ast/ParCall.java, ast/Part.java, ast/Prim.java, ast/Seq.java, ast/SeqCall.java, ast/Sub.java: Add a 'real' AST class for call definitions, and a TreeWalker to build it. 2006-10-09 15:51 cananian * src/net/cscott/sdr/calls/: callfile.g, calls.g: Rename the call file grammar: we will eventually have separate grammars for "calls as spoken by humans" and an unambiguous version of the same with explicit grouping. The call file grammar is for call *definitions*, not the calls themselves. 2006-10-09 15:50 cananian * src/net/cscott/sdr/calls/: FormationList.java, Position.java, Rotation.java: There are two ways to view a rotation: as an absolute orientation (north, east, south, west) or as a relative rotation (face right, left, etc). Split the valueOf() and toString() operators to reflect these different views. 2006-10-09 15:48 cananian * src/net/cscott/sdr/util/: Fraction.java, LongFraction.java: Fix bug in Fraction/LongFraction that caused '-1' to print out as '-1/1'. 2006-10-09 15:46 cananian * .classpath: Point eclipse at the Antlr javadoc. 2006-10-09 07:38 cananian * notes.txt: Notes about IN and call application. 2006-10-09 07:32 cananian * src/net/cscott/sdr/calls/DancerActions.java: Rough out a class to bundle up DancerActions. 2006-10-09 07:32 cananian * src/net/cscott/sdr/calls/Formation.java: Add accessor methods for dancer tag information. 2006-10-09 07:31 cananian * src/net/cscott/sdr/calls/: .cvsignore, apply.g: Start a tree-walker class to perform a call based on its definition. 2006-10-09 07:29 cananian * src/net/cscott/sdr/calls/calls.g: Parse numbers better. Add GUI to view parse AST results. 2006-10-08 23:01 cananian * src/net/cscott/sdr/calls/Position.java: Add a 'sashay step' function to Position mutators. 2006-10-08 22:53 cananian * src/net/cscott/sdr/calls/: Formation.java, FormationList.java: Add dancer tags (BELLE,BEAU,LEADER,FOLLOWER) to Formation. 2006-10-08 16:22 cananian * src/net/cscott/sdr/calls/Formation.java: Formations also have dancer tags, such as BELLE, BEAU, LEADER, TRAILER, etc. 2006-10-08 16:22 cananian * build.xml: Update the description of the 'run' target. 2006-10-08 16:22 cananian * .classpath, lib/antlr.jar, lib/jutil.jar: Add antlr and jutil libraries to project. 2006-10-08 15:19 cananian * src/net/cscott/sdr/calls/calls.g: Generate reasonable AST trees from the call file grammar. 2006-10-08 13:52 cananian * resources/net/cscott/sdr/calls/basic.calls, src/net/cscott/sdr/calls/calls.g: Implement token filter, fix typo in call list; basic parser is working now. 2006-10-08 09:05 cananian * src/net/cscott/sdr/calls/calls.g: Working lexer. Still need a token filter to turn the INITIAL_WS tokens into INDENT/DEDENT tokens. 2006-10-07 21:53 cananian * src/net/cscott/sdr/calls/CallList.java: Add some more experiments; comment the whole mess out so Eclipse is not unhappy. 2006-10-07 21:52 cananian * src/net/cscott/sdr/anim/SdrGame.java: Quiet Eclipse import warning. 2006-10-07 21:40 cananian * notes.txt: Add some more notes. 2006-10-07 21:39 cananian * .antlr-eclipse, .classpath, .project, src/net/cscott/sdr/calls/.cvsignore, src/net/cscott/sdr/calls/calls.g: Start the call list parser. (The lexer is still bogus, but the parser is pretty much there.) 2006-10-07 21:38 cananian * resources/net/cscott/sdr/calls/basic.calls: Add the beginnings of a call list. 2006-10-06 17:29 cananian * src/net/cscott/sdr/anim/: SdrBaseGame.java, SdrFirstPersonHandler.java, SdrGame.java: Implement better camera tracking: use acceleration profile to smoothly move from the point last commanded by the user to the camera target. Use SdrGame's timer class so that the slew rate is not tempo or frame-rate dependent. 2006-10-06 17:27 cananian * lib/jme/update.sh, .classpath: Add javadoc locations for most of the libraries. Remove unneeded test libraries from the build path and that jme update script. 2006-10-06 17:25 cananian * src/net/cscott/sdr/calls/Formation.java: Allow Eclipse to clean up imports. 2006-10-06 15:21 cananian * lib/jme/: jmetest-data.jar, jmetest.jar, lwjgl_test.jar: Remove unused 'test' libraries. 2006-10-06 15:05 cananian * .settings/org.eclipse.jdt.core.prefs, .settings/org.eclipse.jdt.ui.prefs, src/net/cscott/sdr/anim/SdrBaseGame.java, src/net/cscott/sdr/anim/SdrGame.java: Reformat with 4-space indents; tell eclipse that tabs are 8 spaces and not to use them. 2006-10-06 14:14 cananian * sdr.Manifest, src/net/cscott/sdr/App.java, src/net/cscott/sdr/anim/SdrGame.java: Split off a net.cscott.sdr.App class, which will contain the 'real' startup code for the game. Move some initialization stuff from SdrGame.main() into the SdrGame constructor. 2006-10-06 14:13 cananian * src/net/cscott/sdr/util/LongFraction.java: Add a serialization version ID, which Eclipse warns we are missing. 2006-10-06 14:13 cananian * src/net/cscott/sdr/calls/: Formation.java, FormationList.java, Sample.java, Selector.java, StandardDancer.java: Fix Eclipse errors/warning in source files. Also rename the dancers to COUPLE_1_BOY/GIRL instead of BEAU/BELLE. 2006-10-06 14:11 cananian * .classpath, .cvsignore, build.xml: Make ant and eclipse agree about the location of built classes: in bin/. Also teach eclipse about resource files: it will copy these to bin now, I believe. 2006-10-06 14:10 cananian * resources/net/cscott/sdr/recog/sdr.gram: Add 'centers/ends' selectors to voice recognition grammar. 2006-10-06 11:58 cananian * .classpath, build.xml, lib/commons-lang.jar: Add Apache Commons 'lang' library to lib/ and classpath; this is used by some of the stuff in net.cscott.sdr.calls. 2006-10-05 21:59 cananian * src/net/cscott/sdr/sound/MidiTimer.java: Add a method to get time in beats. 2006-10-05 21:58 cananian * src/net/cscott/sdr/anim/: JmeDemo.java, SdrBaseGame.java, SdrGame.java: Rename SdrGame to SdrBaseGame; copy JmeDemo to SdrGame -- this is now the 'real' main class. 2006-10-05 21:57 cananian * src/net/cscott/sdr/util/LongFraction.java: Add a LongFraction class, similar to Fraction but using 'long' for the numerator and denominator. 2006-10-05 18:21 cananian * notes.txt: More notes. 2006-10-05 17:04 cananian * src/net/cscott/sdr/anim/: JmeDemo.java, SdrGame.java: Find & fix an extremely annoying bug which caused the boy checkers (but only the boy checkers) to render all wrong. =( It turns out that Camera.setFrame was not copying its input parameters, and as a result I was horking the system UNIT_Y vector. Sigh. 2006-10-05 16:56 cananian * .classpath, .project, .settings/org.eclipse.jdt.core.prefs, .settings/org.eclipse.jdt.ui.prefs: Add Eclipse magic. 2006-10-05 16:55 cananian * src/net/cscott/sdr/: util/Fraction.java, sound/MidiDemo.java, sound/MidiTimer.java: Fix Eclipse warnings. 2006-10-05 15:05 cananian * sdr.Manifest, src/net/cscott/sdr/anim/JmeDemo.java, src/net/cscott/sdr/anim/SdrGame.java: Check in our own 'SimpleGame' class that inherits from FixedFramerateGame. 2006-10-05 14:39 cananian * notes.txt: Notes about MIDI sequencing. 2006-10-05 13:30 cananian * notes.txt: Add a bunch of new notes. 2006-10-05 09:25 cananian * notes.txt: Miscellaneous notes. 2006-10-05 04:12 cananian * src/net/cscott/sdr/sound/MidiTimer.java: Make MidiTimer thread-safe. 2006-10-05 04:10 cananian * resources/net/cscott/sdr/1.png, resources/net/cscott/sdr/2.png, resources/net/cscott/sdr/3.png, resources/net/cscott/sdr/4.png, resources/net/cscott/sdr/arrow.png, resources/net/cscott/sdr/floor.png, resources/net/cscott/sdr/splash.png, resources/net/cscott/sdr/anim/1.png, resources/net/cscott/sdr/anim/2.png, resources/net/cscott/sdr/anim/3.png, resources/net/cscott/sdr/anim/4.png, resources/net/cscott/sdr/anim/arrow.png, resources/net/cscott/sdr/anim/floor.png, resources/net/cscott/sdr/anim/splash.png, src/net/cscott/sdr/anim/JmeDemo.java: Move graphic resources from net.cscott.sdr to net.cscott.sdr.anim. 2006-10-05 04:06 cananian * resources/net/cscott/sdr/sound/saturday-night.midi, src/net/cscott/sdr/sound/MidiDemo.java: Workaround Sun's off-by-one bug which dropped the note-off message in the final tick of the song when looping. Restore original version of saturday-night, as shortening the duration of the final notes doesn't help: it just makes the song a 32nd-note shorter, but the off-by-one bug remains. 2006-10-05 03:30 cananian * sdr.Manifest, resources/net/cscott/sdr/sound/miss-sawyer.midi, resources/net/cscott/sdr/sound/saturday-night.midi, resources/net/cscott/sdr/sound/soundbank-deluxe.gm, src/net/cscott/sdr/sound/MidiDemo.java, src/net/cscott/sdr/sound/MidiTimer.java: Move resources from net/cscott/sdr/audio to net/cscott/sdr/sound. Add MidiTimer class, which implements jME's Timer class using timing information from the MIDI Sequencer. Tweak MidiDemo to demonstrate the MidiTimer. Run MidiDemo for 'ant run'. 2006-10-05 02:30 cananian * src/net/cscott/sdr/sound/MidiDemo.java: Put midi file in resources, along with "high quality" sound bank. 2006-10-05 01:59 cananian * src/net/cscott/sdr/sound/MidiDemo.java: Add a simple example of playing a MIDI file with Java. 2006-10-05 00:51 cananian * src/net/cscott/sdr/anim/JmeDemo.java: Allow camera selection. 2006-10-05 00:44 cananian * src/net/cscott/sdr/anim/JmeDemo.java: Drift camera back to target position/direction when moved. 2006-10-04 18:36 cananian * resources/net/cscott/sdr/1.png, resources/net/cscott/sdr/1boy.png, resources/net/cscott/sdr/1girl.png, resources/net/cscott/sdr/2.png, resources/net/cscott/sdr/3.png, resources/net/cscott/sdr/4.png, resources/net/cscott/sdr/arrow.png, src/net/cscott/sdr/anim/JmeDemo.java: Complete checkers scene, with colors, arrows, and labels. 2006-10-04 16:33 cananian * resources/net/cscott/sdr/1boy.png, resources/net/cscott/sdr/1girl.png, resources/net/cscott/sdr/floor.png, src/net/cscott/sdr/anim/JmeDemo.java: First attempts at making checkers. 2006-10-04 15:15 cananian * sdr.Manifest, images/checkers.svg, images/splash.svg, resources/net/cscott/sdr/splash.png, src/net/cscott/sdr/anim/JmeDemo.java: Added simple jME demo. 2006-10-04 13:16 cananian * .cvsignore: A few more directories to ignore. 2006-10-04 13:12 cananian * build.xml, sdr.Manifest, lib/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar, lib/jsapi.jar, lib/sphinx4.jar, lib/jme/OpenAL32.dll, lib/jme/jinput-dx8.dll, lib/jme/jinput-dxplugin.dll, lib/jme/jinput-raw.dll, lib/jme/jinput.jar, lib/jme/jme-awt.jar, lib/jme/jme-editors.jar, lib/jme/jme-effects.jar, lib/jme/jme-font.jar, lib/jme/jme-gamestates.jar, lib/jme/jme-model.jar, lib/jme/jme-scene.jar, lib/jme/jme-sound.jar, lib/jme/jme-terrain.jar, lib/jme/jme.jar, lib/jme/jmetest-data.jar, lib/jme/jmetest.jar, lib/jme/jogg-0.0.5.jar, lib/jme/jorbis-0.0.12.jar, lib/jme/libjinput-linux.so, lib/jme/libjinput-osx.jnilib, lib/jme/libjinput.jnilib, lib/jme/liblwjgl-fmod3.jnilib, lib/jme/liblwjgl-fmod3.so, lib/jme/liblwjgl.jnilib, lib/jme/liblwjgl.so, lib/jme/liblwjgl64.so, lib/jme/libopenal.so, lib/jme/lwjgl-fmod3.dll, lib/jme/lwjgl.dll, lib/jme/lwjgl.jar, lib/jme/lwjgl_applet.jar, lib/jme/lwjgl_fmod3.jar, lib/jme/lwjgl_test.jar, lib/jme/lwjgl_util.jar, lib/jme/lwjgl_util_applet.jar, lib/jme/mvn-lib-install, lib/jme/native-mac.jar, lib/jme/openal.dylib, lib/jme/update.sh, lib/sphinx/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar, lib/sphinx/jsapi.jar, lib/sphinx/sphinx4.jar, lib/sphinx/update.sh: Split lib directory into lib/sphinx and lib/jme, since jme is very untidy. 2006-10-04 13:10 cananian * images/checkers.svg: Add a simple diagram for checkers. 2006-10-01 22:38 cananian * src/net/cscott/sdr/calls/: CallList.java, Dancer.java, Formation.java, FormationList.java, PhantomDancer.java, Position.java, Rotation.java, Sample.java, Selector.java, SelectorList.java, StandardDancer.java: Imported half-done source files from Asdic project. Not being compiled at the moment. 2006-10-01 22:37 cananian * build.xml, sdr.Manifest, resources/net/cscott/sdr/cmudict.0.6d, resources/net/cscott/sdr/sdr.config.xml, resources/net/cscott/sdr/sdr.gram, resources/net/cscott/sdr/recog/cmudict.0.6d, resources/net/cscott/sdr/recog/extradict, resources/net/cscott/sdr/recog/sdr.config.xml, resources/net/cscott/sdr/recog/sdr.gram, src/net/cscott/sdr/SphinxDemo.java, src/net/cscott/sdr/recog/SphinxDemo.java, src/net/cscott/sdr/util/Fraction.java: Moved sphinx stuff into net.cscott.sdr.recog. Added net.cscott.sdr.util.Fraction. 2006-10-01 22:10 cananian * lib/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar, lib/sphinx4.jar, resources/net/cscott/sdr/sdr.config.xml: Update sphinx to svn 6114. 2006-10-01 18:43 cananian * .cvsignore, build.xml, sdr.Manifest, lib/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar, lib/jsapi.jar, lib/sphinx4.jar, resources/net/cscott/sdr/cmudict.0.6d, resources/net/cscott/sdr/sdr.config.xml, resources/net/cscott/sdr/sdr.gram, src/net/cscott/sdr/SphinxDemo.java, src/net/cscott/sdr/Version.java.in: Set up project skeleton, based on the CMU Sphinx 'Hello, World' demo.