Author Topic: AudiosurfProdder - Adds easy tagging options.  (Read 25029 times)

Mincus

  • Hero Member
  • *****
  • Posts: 2394
    • View Profile
AudiosurfProdder - Adds easy tagging options.
« on: September 26, 2008, 10:14:24 pm »
This is an idea I've been working on for a few days now, this is how I see it:

There's a lot of nice options people want easy access to by re-tagging their music.
Audiosurf doesn't support these extra options in game.

So I've written (most of) a program that will take the options you want, retag the music then send it to Audiosurf using a simple set of checkboxes instead of having to remember the options yourself. Then once the song has finished, will re-tag the music back to its original title.

Currently this only just works, only supports mp3s and only IDv2 (not sure why on that front, about to look into it).

However when finished I'm hoping it will ease the use of these options.

The main reason I'm making this post is to see what exactly people would want in this program in addition to the tagging.
Auto-fullscreening / returning to desktop after song?
Which formats should be a priority? I have a fair bit of OGG support in as well, but what else will people want?
Other options? Anything in the WM_COPYDATA list is addable.
Playlist support? How much is it wanted? Individual options per song? One set of options for the entire playlist?

I will be open sourcing this program once I have it ready for some basic release, so anyone wanting to look at the code can do so then.

Comments? Ideas? Criticisms?

Edit: Attached screenshot.

Edit: URL for download: https://sourceforge.net/project/showfiles.php?group_id=240266

Edit: Updated screenshot.

Edit: Latest version (0.131) available:
 - Added [as-steep] tag.
 - Fixed all known Unicode issues.
 - Fixed 64-bit compatibility issues.
 - Added scoreboard (can check if anyone else has ridden the song with those tags).
 - Moved options file for more compatibility with AHOAA and Vista/Windows 7.

This will be the last version, next version will have a new name and incorporate Super Playlist Surf!'s abilities.
« Last Edit: July 06, 2009, 07:42:15 am by Mincus »

ViRUS

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3156
    • MSN Messenger - newvirus@live.com.ar
    • View Profile
    • Email
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #1 on: September 27, 2008, 12:31:05 pm »
Well, it's cool as it is, you should post a 1.0 version right now (yes, I'm already anxious for this program :D)...

Also, what did you use to program it? If it's VB, would you please send me the source code (I promise not to share it)?


Lavos^

  • Hero Member
  • *****
  • Posts: 2251
    • View Profile
    • Email
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #2 on: September 27, 2008, 12:48:26 pm »
Plagiarism!

Anyway, the Play button needs to stretch out to the right a few more pixels. And you *may* want to disable typing in the song title/artist to stop people fucking it up.

Mincus

  • Hero Member
  • *****
  • Posts: 2394
    • View Profile
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #3 on: September 27, 2008, 01:05:09 pm »
ViRUS: It's not really ready. That version with the screenshot actually creates a temporary mp3 (was while I was checking the tags worked), doesn't support IDv1 as I stated and I wouldn't risk it on my own collection just yet.
I'll do some more work on it and try and get something closer to releasable tomorrow.
It's written in C#, as I said I'll open source it when I release it (so tomorrow sometime probably) so people can mess about with it, although I probably won't accept bug fixed code from people for a while as the code will move at a rather frantic pace over the next few weeks.

Lavos: Plagiarism? I know people have released programs with playlist control and programs that produce tags so you don't need to remember them, but AFAIK no-one has combined the two and made a program that tags automatically.
The editable box is purely for changing the artist/title (originally I thought this could be as a temporary measure for unicode characters, so people can drop in an ANSI name without losing their unicode tagging).
There's some fairly basic code that works out where the tags start, and they're all regenerated on any change in options field, so its to let people fine tune it if they desire.
I may remove it, but I think it's best left in for now.
As to the layout, it's not final, it's just a temporary working version. I'm not particularly good at UI design, so if anyone wants to knock a mockup of a better one, feel free and if I like it I'll re-arrange the interface like that.

Mincus

  • Hero Member
  • *****
  • Posts: 2394
    • View Profile
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #4 on: September 28, 2008, 02:48:02 pm »
Apologies for not getting a version out today, I have worked on it most of the day and I'm struggling with a couple of bugs that are making the program almost as awkward as editing the tags yourself.
Notably that my app and Audiosurf aren't always communicating properly and a switch to and from fullscreen that's causing big mess ups.

I'll try and get these fixed tomorrow.

ViRUS

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3156
    • MSN Messenger - newvirus@live.com.ar
    • View Profile
    • Email
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #5 on: September 28, 2008, 03:29:35 pm »
Time isn't important, quality is ;)


Kustin

  • Jr. Member
  • **
  • Posts: 68
  • Tomorrow burns
    • MSN Messenger - Electa_buzz@hotmail.com
    • View Profile
    • Email
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #6 on: October 03, 2008, 04:13:39 am »
I'll be really looking forward to this new feature! I really hope could implement this utility or do it his own way!

Keep up the good work!

Mincus

  • Hero Member
  • *****
  • Posts: 2394
    • View Profile
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #7 on: October 05, 2008, 07:55:06 am »
Ok, can download v0.1 at: https://sourceforge.net/project/showfiles.php?group_id=240266&package_id=292270&release_id=630856
If you just want to use it, grab the -bin package, if you want a look at the source grab the -src package.

This is still an early release, only works on mp3s, I've not had any major crashes over the last few days whilst testing it, but I've not done hugely extensive tests either.

Small change from how I originally planned: The app won't edit the original track at all. Instead it makes a copy with the new tag in its tempsongs directory, it tries to use the same filename so the .ash file should be the same, but sometimes Audiosurf keeps the file open which means if you play the same file twice in a row the second time it will need to re-generate the .ash file. There's not much I can do about this as it's behaviour at Audiosurf's end.

If it does crash, make a post here, describe what happened and attach the latest .log file in its directory and I'll try and fix it.

A final note: I've only tested it on Vista 32-bit, so I'd like to hear if it's working fine on XP and any 64-bit variations please! Should be fine on XP, 64-bit I've not a lot of experience with.

Edit: I think I've worked out the non-responsie issue, I suspect it occurs if you alt-tab out of Audiosurf, so my recommendation is to use the minimise button on it instead.
« Last Edit: October 05, 2008, 11:59:10 am by Mincus »

Trauts

  • Newbie
  • *
  • Posts: 16
    • View Profile
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #8 on: October 05, 2008, 03:31:43 pm »
Ok, can download v0.1 at:

If it does crash, make a post here, describe what happened and attach the latest .log file in its directory and I'll try and fix it.

A final note: I've only tested it on Vista 32-bit, so I'd like to hear if it's working fine on XP and any 64-bit variations please! Should be fine on XP, 64-bit I've not a lot of experience with.

Doesn't work on Vista x64 =[

If I load audiosurf while this is running, your program hangs, and windows shuts it down. It seems to fail at the 'register' the window phase, often resulting in a crash. If I rerun it while audiosurf is still open, it wont crash, but it just sits there thinking its registering.

Quote
10/5/2008 3:29:24 PM -/- Audiosurf Prodder started.
10/5/2008 3:29:29 PM -/- Found Audiosurf (Process ID 0x1208)
10/5/2008 3:29:29 PM -/- Sending to Audiosurf: ascommand quickstartregisterwindow Audiosurf Prodder

is all the log says.

Mincus

  • Hero Member
  • *****
  • Posts: 2394
    • View Profile
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #9 on: October 05, 2008, 04:50:42 pm »
Ok, thanks for that, I suspect I know why.

The binary is marked as being acceptable to run on either x86 or x64 CPUs so will try for x64 on a 64-bit system, but sending commands to Audiosurf requires a PInvoke (calling native code from .NET managed) and I'm passing a 32-bit pointer, so it breaks.

Anyway, I've put some code in to attempt to resolve it, I don't know if it will work though, so I've added some additional debug output in there.
Download the attached zip and extract it into the audioprod directory and hopefully I'll at least get some debug output to work with.

I should be installing a 64-bit version of Windows shortly so I'll have a play then if this doesn't work.

Trauts

  • Newbie
  • *
  • Posts: 16
    • View Profile
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #10 on: October 05, 2008, 06:46:40 pm »
Download the attached zip and extract it into the audioprod directory and hopefully I'll at least get some debug output to work with.

Unfortunately, I must inform you this didn't fix it =(

Log file appears to be the same stuff, too.

Mincus

  • Hero Member
  • *****
  • Posts: 2394
    • View Profile
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #11 on: October 05, 2008, 06:50:34 pm »
Ok, thanks for trying. This bug is top of the list once I get Vista 64-bit installed.

Trauts

  • Newbie
  • *
  • Posts: 16
    • View Profile
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #12 on: October 05, 2008, 07:23:23 pm »
I'm willing to try any other test versions ;)

Mincus

  • Hero Member
  • *****
  • Posts: 2394
    • View Profile
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #13 on: October 06, 2008, 06:58:44 am »
Thanks for the offer, but I'm not sure what exactly the problem is so I need to do a more in-depth testing.

Even if that last version failed, it should have produced SOME output to the log file. That it didn't has me a little confused.

Kustin

  • Jr. Member
  • **
  • Posts: 68
  • Tomorrow burns
    • MSN Messenger - Electa_buzz@hotmail.com
    • View Profile
    • Email
Re: AudiosurfProdder - Adds easy tagging options.
« Reply #14 on: November 04, 2008, 01:50:55 am »
I've tried out the AudiosurfProdder add-on, but every time I add a song in the browser, I get this error message saying "Unhandled exception has occurred in your application" and "Could not load file or assembly 'Id3Lib, Version=0.2.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies" etc.

I have the details it provided me with.
Quote
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.FileNotFoundException: Could not load file or assembly 'Id3Lib, Version=0.2.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Det går inte att hitta filen.
File name: 'Id3Lib, Version=0.2.0.0, Culture=neutral, PublicKeyToken=null'
   at AudiosurfProdder.Prodder.SongTagger.OpenSong(String filename)
   at AudiosurfProdder.frm_main.btn_openfile_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].



************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.832 (QFE.050727-8300)
    CodeBase: file:///C:/WINDOWS.0/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
AudiosurfProdder
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///D:/Documents%20and%20Settings/Kustin.GAMMON/Skrivbord/AudiosurfProdder.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.832 (QFE.050727-8300)
    CodeBase: file:///C:/WINDOWS.0/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.832 (QFE.050727-8300)
    CodeBase: file:///C:/WINDOWS.0/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.832 (QFE.050727-8300)
    CodeBase: file:///C:/WINDOWS.0/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.832 (QFE.050727-8300)
    CodeBase: file:///C:/WINDOWS.0/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.832 (QFE.050727-8300)
    CodeBase: file:///C:/WINDOWS.0/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
ap6_-mid
    Assembly Version: 1.0.0.0
    Win32 Version: 2.0.50727.832 (QFE.050727-8300)
    CodeBase: file:///C:/WINDOWS.0/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.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.

I'd be thankful if you helped me out here.