Go Audio Lesson Tool

For discussing go computing, software announcements, etc.
User avatar
CarlJung
Lives in gote
Posts: 429
Joined: Wed Apr 21, 2010 1:10 pm
Rank: SDK
GD Posts: 0
KGS: CarlJung
Location: Sweden
Has thanked: 101 times
Been thanked: 73 times

Re: Go Audio Lesson Tool

Post by 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 :)
User avatar
Li Kao
Lives in gote
Posts: 643
Joined: Wed Apr 21, 2010 10:37 am
Rank: KGS 3k
GD Posts: 0
KGS: LiKao / Loki
Location: Munich, Germany
Has thanked: 115 times
Been thanked: 102 times

Re: Go Audio Lesson Tool

Post by Li Kao »

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.
User avatar
CarlJung
Lives in gote
Posts: 429
Joined: Wed Apr 21, 2010 1:10 pm
Rank: SDK
GD Posts: 0
KGS: CarlJung
Location: Sweden
Has thanked: 101 times
Been thanked: 73 times

Re: Go Audio Lesson Tool

Post by 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.
User avatar
Li Kao
Lives in gote
Posts: 643
Joined: Wed Apr 21, 2010 10:37 am
Rank: KGS 3k
GD Posts: 0
KGS: LiKao / Loki
Location: Munich, Germany
Has thanked: 115 times
Been thanked: 102 times

Re: Go Audio Lesson Tool

Post by Li Kao »

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.
User avatar
wms
Lives in gote
Posts: 450
Joined: Tue Apr 20, 2010 4:23 pm
GD Posts: 0
KGS: wms
Location: Portland, OR USA
Has thanked: 257 times
Been thanked: 287 times
Contact:

Re: Go Audio Lesson Tool

Post by 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).
User avatar
Li Kao
Lives in gote
Posts: 643
Joined: Wed Apr 21, 2010 10:37 am
Rank: KGS 3k
GD Posts: 0
KGS: LiKao / Loki
Location: Munich, Germany
Has thanked: 115 times
Been thanked: 102 times

Re: Go Audio Lesson Tool

Post by Li Kao »

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.
User avatar
koks9dan
Dies in gote
Posts: 28
Joined: Fri Apr 30, 2010 3:47 am
Rank: 8k KGS
GD Posts: 260
Location: Sydney, Australia
Has thanked: 4 times
Contact:

Re: Go Audio Lesson Tool

Post by koks9dan »

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:
User avatar
Li Kao
Lives in gote
Posts: 643
Joined: Wed Apr 21, 2010 10:37 am
Rank: KGS 3k
GD Posts: 0
KGS: LiKao / Loki
Location: Munich, Germany
Has thanked: 115 times
Been thanked: 102 times

Re: Go Audio Lesson Tool

Post by Li Kao »

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.
Boywing
Beginner
Posts: 15
Joined: Wed Apr 28, 2010 3:47 am
Rank: EGF 4 kyu
GD Posts: 8
KGS: boywing
Location: Sweden
Has thanked: 1 time
Contact:

Re: Go Audio Lesson Tool

Post by 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
User avatar
Li Kao
Lives in gote
Posts: 643
Joined: Wed Apr 21, 2010 10:37 am
Rank: KGS 3k
GD Posts: 0
KGS: LiKao / Loki
Location: Munich, Germany
Has thanked: 115 times
Been thanked: 102 times

Re: Go Audio Lesson Tool

Post by Li Kao »

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.
User avatar
koks9dan
Dies in gote
Posts: 28
Joined: Fri Apr 30, 2010 3:47 am
Rank: 8k KGS
GD Posts: 260
Location: Sydney, Australia
Has thanked: 4 times
Contact:

Re: Go Audio Lesson Tool

Post by koks9dan »

Li Kao wrote:Do you have .net 3.5 installed?
Perhaps even .net 3.5 SP1 is required, but I'm not sure about that.


Thanks, I make it run successfully now that I installed .net 3.5 SP1. However, the audio recording doesnt seem to work. I barely hear my voice :-? Still very nice apps, I look forward to your future versions :D
User avatar
Li Kao
Lives in gote
Posts: 643
Joined: Wed Apr 21, 2010 10:37 am
Rank: KGS 3k
GD Posts: 0
KGS: LiKao / Loki
Location: Munich, Germany
Has thanked: 115 times
Been thanked: 102 times

Re: Go Audio Lesson Tool

Post by Li Kao »

New Version 4:
* Go to a move by clicking on the stone
* Some workflow changes when recording
* Speex preprocessing for higher audio quality
* A html5 webplayer. Works in Firefox, Iron and Opera.
Sanity is for the weak.
govortex
Beginner
Posts: 3
Joined: Tue May 25, 2010 12:23 am
Rank: EGF 5 dan
GD Posts: 0
Has thanked: 1 time
Contact:

Re: Go Audio Lesson Tool

Post by govortex »

Check this http://www.govortex.org/go-audios/ and let me know what you think about it. I'm using a
experimental ZGo 2.1.0 version and for the moment you need some skills to make the audio lesson, but I think I can make it easier to use.
User avatar
yithril
Lives in gote
Posts: 350
Joined: Mon Apr 26, 2010 6:11 am
Rank: 4 dan
GD Posts: 0
Has thanked: 1 time
Been thanked: 33 times

Re: Go Audio Lesson Tool

Post by yithril »

Is there a way to change the look of the board and stones?
Nein Mann, ich will noch nicht gehen, ich will noch 'n bisschen tanzen.
User avatar
Li Kao
Lives in gote
Posts: 643
Joined: Wed Apr 21, 2010 10:37 am
Rank: KGS 3k
GD Posts: 0
KGS: LiKao / Loki
Location: Munich, Germany
Has thanked: 115 times
Been thanked: 102 times

Re: Go Audio Lesson Tool

Post by Li Kao »

Not yet in the client. The web-viewer on the other hand can be skinned with css.
Example of the webviewer(Works in Firefox, Opera and Chrome)
Sanity is for the weak.
Post Reply