It is currently Wed Apr 30, 2025 10:06 pm

All times are UTC - 8 hours [ DST ]




Post new topic Reply to topic  [ 45 posts ]  Go to page Previous  1, 2, 3  Next
Author Message
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #21 Posted: Mon Jun 28, 2010 9:42 am 
Lives in gote
User avatar

Posts: 643
Location: Munich, Germany
Liked others: 115
Was liked: 102
Rank: KGS 3k
KGS: LiKao / Loki
FrankdeGroot wrote:
Moyo Go Studio has the ability to record audio (using speex). The advantage is that the audio is included as standard SGF. Moyo Go can be freely downloaded.

Adding an audio comment to individual nodes and recording a whole teaching game with jumps in the sgf and continuous audio is a pretty different use-case. So I don't think these functions can replace each other.

_________________
Sanity is for the weak.

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #22 Posted: Tue Jul 13, 2010 3:54 am 
Lives in gote
User avatar

Posts: 643
Location: Munich, Germany
Liked others: 115
Was liked: 102
Rank: KGS 3k
KGS: LiKao / Loki
Sourcecode is available at github:
http://github.com/CodeInChaos

_________________
Sanity is for the weak.

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #23 Posted: Thu Jul 15, 2010 4:41 am 
Lives in gote
User avatar

Posts: 643
Location: Munich, Germany
Liked others: 115
Was liked: 102
Rank: KGS 3k
KGS: LiKao / Loki
New Release:
Download Alpha 1

New Features:
* Can use image recognition to record games from other programs
* Basic SGF-Importer
* Support for multiple board-sizes

_________________
Sanity is for the weak.

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #24 Posted: Thu Jul 15, 2010 5:17 am 
Tengen
User avatar

Posts: 4511
Location: Chatteris, UK
Liked others: 1589
Was liked: 656
Rank: Nebulous
GD Posts: 918
KGS: topazg
Does anyone have a game they'd like me to review to test this? I'm keen to give it a go ...

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #25 Posted: Thu Jul 15, 2010 5:39 am 
Lives in gote
User avatar

Posts: 643
Location: Munich, Germany
Liked others: 115
Was liked: 102
Rank: KGS 3k
KGS: LiKao / Loki
I'm not sure if it's stable enough to risk a full game review. The current versions are mainly for technical testing and bug searching.

_________________
Sanity is for the weak.

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #26 Posted: Thu Jul 15, 2010 6:23 am 
Tengen
User avatar

Posts: 4511
Location: Chatteris, UK
Liked others: 1589
Was liked: 656
Rank: Nebulous
GD Posts: 918
KGS: topazg
When I try to import an .sgf file I get the following:

Code:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.ThrowHelper.ThrowKeyNotFoundException()
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Model.GraphicalGameTree.PositionOfNode(Int32 node)
   at GoClient.GameForm.RenderField()
   at GoClient.GameForm.timer1_Tick(Object sender, EventArgs e)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3607 (GDR.050727-3600)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
GoClient
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/grahamp/Desktop/GAL/GoClient.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3614 (GDR.050727-3600)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Core
    Assembly Version: 3.5.0.0
    Win32 Version: 3.5.30729.1 built by: SP
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
CommonGui
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/grahamp/Desktop/GAL/CommonGui.DLL
----------------------------------------
Model
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/grahamp/Desktop/GAL/Model.DLL
----------------------------------------
ChaosUtil
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/grahamp/Desktop/GAL/ChaosUtil.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #27 Posted: Thu Jul 15, 2010 3:19 pm 
Lives in gote
User avatar

Posts: 643
Location: Munich, Germany
Liked others: 115
Was liked: 102
Rank: KGS 3k
KGS: LiKao / Loki
Added a few bugfixes
Download Alpha 2
Fixed the exception in the sgf importer and a few more bugs.

_________________
Sanity is for the weak.

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #28 Posted: Thu Jul 15, 2010 5:45 pm 
Lives in gote
User avatar

Posts: 450
Location: Portland, OR USA
Liked others: 257
Was liked: 287
KGS: wms
For the KGS lectures and Guo Juan's teaching site, I used an XML format that embeds changes to an SGF file. Something like this:

<addproperty nodeid="10" sgf="W[ae]"/>
<pause time="63943">
<addnode parentid="10" nodeid="11"/>
<addproperty nodeid="11" sgf="B[cj]TR[cj]"/>
<speex>98g74293p40231940923490 (imagine that this is a chunk of base64 data) oqeuth233dtoe</speex>

etc...the "speex" tags delimit base64 encoded speex data. Then I take the whole big XML file and zip it up. The sizes end up pretty tolerable, because zip gets rid of most of the overhead from XML and speex is very low bit rate.

But of course for a new project, do whatever seems best. :)

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #29 Posted: Thu Jul 15, 2010 6:06 pm 
Gosei
User avatar

Posts: 1435
Location: California
Liked others: 53
Was liked: 171
Rank: Out of practice
GD Posts: 1104
KGS: fwiffo
I thought about writing a programming blog named <xml verbosity="verbosity">XML Verbosity</xml>. :-)

_________________
KGS 4 kyu - Game Archive - Keyboard Otaku


This post by fwiffo was liked by: Harleqin
Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #30 Posted: Thu Jul 15, 2010 11:43 pm 
Lives in gote
User avatar

Posts: 429
Location: Sweden
Liked others: 101
Was liked: 73
Rank: SDK
KGS: CarlJung
wms wrote:
For the KGS lectures and Guo Juan's teaching site, I used an XML format that embeds changes to an SGF file. Something like this:

<addproperty nodeid="10" sgf="W[ae]"/>
<pause time="63943">
<addnode parentid="10" nodeid="11"/>
<addproperty nodeid="11" sgf="B[cj]TR[cj]"/>
<speex>98g74293p40231940923490 (imagine that this is a chunk of base64 data) oqeuth233dtoe</speex>

etc...the "speex" tags delimit base64 encoded speex data. Then I take the whole big XML file and zip it up. The sizes end up pretty tolerable, because zip gets rid of most of the overhead from XML and speex is very low bit rate.

But of course for a new project, do whatever seems best. :)


Simple and elegant. You use xml in all it's glory and reuse your sgf parser from kgs. Now if we only could get rid of sgf completely...

_________________
FusekiLibrary, an opening library.
SGF converter tools: Wbaduk NGF to SGF | 440 go problems | Fuseki made easy | Tesuji made easy | Elementary training & Dan level testing | Dan Tutor Shortcut To Dan

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #31 Posted: Fri Jul 16, 2010 1:28 am 
Lives in gote
User avatar

Posts: 429
Location: Sweden
Liked others: 101
Was liked: 73
Rank: SDK
KGS: CarlJung
  • Import an sgf.
  • Close the program without saving changes.
  • The file Current.Replay.gor has been created in the folder where you imported the sgf from. This is wrong for two reasons:
    • It saves the file in a folder where I don't want it.
    • It doesn't delete the file when the program is closed.

What I was really looking for was a way to break your sgf parser. But I couldn't. Good job :)

_________________
FusekiLibrary, an opening library.
SGF converter tools: Wbaduk NGF to SGF | 440 go problems | Fuseki made easy | Tesuji made easy | Elementary training & Dan level testing | Dan Tutor Shortcut To Dan

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #32 Posted: Fri Jul 16, 2010 2:24 am 
Lives in gote
User avatar

Posts: 643
Location: Munich, Germany
Liked others: 115
Was liked: 102
Rank: KGS 3k
KGS: LiKao / Loki
The differences between wms's format and my format are interesting.
In his format a node is a central concept, probably both on disk, and in memory.
Whereas in my case a node is pretty unimportant. A node is just a bookmark in the graphical representation. And my replay is inspired by starcraft replays and is a sequence of actions the user performed, and not a sequence of modifications to a sgf tree.
I'll have to think about the role of a node. It might be good to promote it to better interact with other programs and with sgf. But really promoting it requires changing the file and memory format to something similar to what wms uses.

Breaking the current SGF parser shouldn't be too hard. It doesn't know what a node is and translates the properties from left to right. So superfluous nodes are probably automatically combined. And strange ordering of properties inside a node might break it too. Teaching it about nodes is somewhere on my todo list.

Where to save logs, autosaves, etc is an interesting question. Using the working directory is stupid of course.
As a fan of portable apps I'd like to use the app directory or a subdirectory of it. But that causes problems for unprivileged users since they often have no write-access to the directory where the application is installed.
Since I hate programs which write the MyDocuments without permission I won't do that either.
So for non portable installs the user appdata directory is the correct choice probably. But how do I distinguish portable installations from non portable ones?

_________________
Sanity is for the weak.

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #33 Posted: Fri Jul 16, 2010 2:59 am 
Lives in gote
User avatar

Posts: 429
Location: Sweden
Liked others: 101
Was liked: 73
Rank: SDK
KGS: CarlJung
Li Kao wrote:
So for non portable installs the user appdata directory is the correct choice probably. But how do I distinguish portable installations from non portable ones?


Good question. I don't know if there is a "proper" way. Perhaps one can hack something together with the types in the Environment.SpecialFolder namespace.

I believe if you just solve where to save temporary data on an unsaved project the portability aspect would sort of solve itself. It would be up to the user where to store the program and his projects.

_________________
FusekiLibrary, an opening library.
SGF converter tools: Wbaduk NGF to SGF | 440 go problems | Fuseki made easy | Tesuji made easy | Elementary training & Dan level testing | Dan Tutor Shortcut To Dan

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #34 Posted: Sat Jul 17, 2010 4:39 am 
Lives in gote
User avatar

Posts: 643
Location: Munich, Germany
Liked others: 115
Was liked: 102
Rank: KGS 3k
KGS: LiKao / Loki
Download Alpha 3

* Added Navigation so you can now move around using the keyboard instead of clicking the game-tree
* Fade inactive variations
* Highlight current move and next moves on the board
* When playing an already played move again it doesn't create a new node

For now I'm saving temp files in the app directory but I'll need to change that later.

_________________
Sanity is for the weak.

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #35 Posted: Tue Jul 20, 2010 3:46 pm 
Lives in gote
User avatar

Posts: 450
Location: Portland, OR USA
Liked others: 257
Was liked: 287
KGS: wms
Li Kao wrote:
The differences between wms's format and my format are interesting.
In his format a node is a central concept, probably both on disk, and in memory.
Whereas in my case a node is pretty unimportant. A node is just a bookmark in the graphical representation.
I have mixed feelings about nodes and SGF. I did it the way I did because (as you point out), if you want to interoperate cleanly with SGF, you need to care about nodes. But nodes can be a real pain in the neck sometimes, and just having a "stop here" bookmark (as you do) would make some things a lot easier. But whenever I think about leaving SGF behind, well, there's so much weight behind the SGF standard, and it works decently enough that it doesn't need to be replaced, so I keep on using SGF (both in file formats, and as an in-program data representation).

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #36 Posted: Wed Jul 21, 2010 12:51 am 
Lives in gote
User avatar

Posts: 643
Location: Munich, Germany
Liked others: 115
Was liked: 102
Rank: KGS 3k
KGS: LiKao / Loki
The way I handle nodes has it's fair share of problems too. I recreate the whole tree after every change. And since I create a node where ever variations fork I create unneeded nodes when decorations(like labels) are added to a position which is not at the end of a variation.
One interesting effect of the way I handle nodes is that if I change the node creation logic playing a lesson displays a tree different from the one displayed when recording. But it only affects the tree and not what happens in the game itself.
And it doesn't lend itself to creating a sgf editor. So I'll probably end up with lossy sgf import/export.

_________________
Sanity is for the weak.

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #37 Posted: Mon Jul 26, 2010 3:26 am 
Dies in gote
User avatar

Posts: 28
Location: Sydney, Australia
Liked others: 4
Was liked: 0
Rank: 8k KGS
GD Posts: 260
This might be a bug... I cannot open the program: nothing happens when I double click the exe file. I'm using Win XP. :sad: :sad: :sad:

_________________
Image
Du hoc My | Du hoc Uc | My Ninja Works

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #38 Posted: Mon Jul 26, 2010 3:45 am 
Lives in gote
User avatar

Posts: 643
Location: Munich, Germany
Liked others: 115
Was liked: 102
Rank: KGS 3k
KGS: LiKao / Loki
Do you have .net 3.5 installed?
Perhaps even .net 3.5 SP1 is required, but I'm not sure about that.

_________________
Sanity is for the weak.

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #39 Posted: Mon Jul 26, 2010 5:20 am 
Beginner

Posts: 15
Location: Sweden
Liked others: 1
Was liked: 0
Rank: EGF 4 kyu
GD Posts: 8
KGS: boywing
Li Kao wrote:
So for non portable installs the user appdata directory is the correct choice probably. But how do I distinguish portable installations from non portable ones?

I'm not a Windows programmer but maybe you can have registry-script/installer that creates a Windows registry key. If that key exists you store data in the users appdata. If the registry key is missing then it is a portable app and the data is stored in a sub-directory in the applications directory.

Interesting project btw.
I look forward to a Linux or web port. :)

_________________
Boywing [4k?]
Go for Life

Top
 Profile  
 
Offline
 Post subject: Re: Go Audio Lesson Tool
Post #40 Posted: Mon Jul 26, 2010 1:39 pm 
Lives in gote
User avatar

Posts: 643
Location: Munich, Germany
Liked others: 115
Was liked: 102
Rank: KGS 3k
KGS: LiKao / Loki
Making it work on mono is on the todo list. But for that I need to search for a cross platform audio api that supports recording. And if it has no C# wrapper I need to do native interop :/

And I'd like to create a player only web version, but I don't like the legal risks associated with having a website which allows third party content. German courts can be pretty annoying. :sad:

_________________
Sanity is for the weak.

Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 45 posts ]  Go to page Previous  1, 2, 3  Next

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group