Those are some pretty rockin enhancements, particularly the "no Java" part :)Yeah, but the downside to that is the Windows-only part.
Those are some pretty rockin enhancements, particularly the "no Java" part :)Yeah, but the downside to that is the Windows-only part.
To be fair, I really don't care for Java either, but it's hard to find a similarly portable solution, let alone one that doesn't require access to every platform to build on.Python?
No! No Python!SoundSense isn't that demanding nor critical.
Python has one HUGE problem, it's really slow. Anyone who uses Python for developing "real" applications is asking for performance trouble down the line.
.NET and JVM are OK (but not the best) because they use JIT native compilation or similar to get almost native speeds, but Python just uses a straight VM with all the performance problems that implies.
If you can't compile to native code, you have way too much overhead for large apps. The worst part is that the slow kinda sneaks up on you, and by the time you realize it's too slow it is too late to change.
Most Python apps have the most performance critical parts written in C (although most Python programmers just use the libraries and never realize this), if it was all Python it would never be fast enough.
No! No Python!
Python has one HUGE problem, it's really slow. Anyone who uses Python for developing "real" applications is asking for performance trouble down the line.
.NET and JVM are OK (but not the best) because they use JIT native compilation or similar to get almost native speeds, but Python just uses a straight VM with all the performance problems that implies.
If you can't compile to native code, you have way too much overhead for large apps. The worst part is that the slow kinda sneaks up on you, and by the time you realize it's too slow it is too late to change.
Most Python apps have the most performance critical parts written in C (although most Python programmers just use the libraries and never realize this), if it was all Python it would never be fast enough.
To be fair, I really don't care for Java either, but it's hard to find a similarly portable solution, let alone one that doesn't require access to every platform to build on.Try Go (http://golang.org/).
At the moment i'm even going so far as to think of a c# mp3 decoder implementation, but that sucks up too much cpu (on my computer around 2.5%/channel, mixing not included).
Looking through Configuration.json gamelogPath is = "gamelogPath": "D:\\DF 0.43.03\\Dwarf Fortress 0.43.03\\gamelog.txt",
Why would "0.43.03" be in the path twice, then? (And why would it be in the D drive?)i use the LNP and it's on my "I:\" ¯\_(ツ)_/¯
oh sry, thats where my DF testing grounds are. Config keeps track of the DF path last played.
And it should find the process on its own, yes. I check for the process name "Dwarf Fortress", get path and use it to look for gamelog.txt.
Which version did you try it with, Maltavius? Did the red circle turn green (right lower corner of the window)?
Did you try the Winforms or the GTK version (developer branch)?
Hmm, Win10. Don't have it, probably never will.
On win7 it never failed me to get the location of the gamelog. Maybe some security settings in win10 prevent other processes to check their location. Maybe i'll find something.
Meanwhile, i'll get the GTK version for linux and osx online this weekend.
Watching with interest :D
It looks like something strange is happening with your binaries on the release page - can you simply add them to the release instead of manually linking to a version in the /files/ space? That way they're discoverable via the GH API...
I'd also be excited for a configuration option "soundpack location", so people using this and classic Soundsense could share the many megabytes of audio files.
With those, I'd put it in my pack... if you're OK with that ;)
Added to my pack for the next release :D
In the process, I noticed that Configuration.json has a field "expectedMinimalSoundsCound" which should probably end with a "t" :P
Right now i'm at writing readme, providing links etc.
It's the top point on my todo list :)
Quick answer: you might also miss the MS Visual c++ runtime redistributables 2013
(https://download.microsoft.com/download/3/8/7/387A0F10-C0C1-4C74-82A9-4BB741342366/vcredist_x86.exe (https://download.microsoft.com/download/3/8/7/387A0F10-C0C1-4C74-82A9-4BB741342366/vcredist_x86.exe))
and gtk# might need a reboot too (but thats not confirmed)
FYI: I just tried the program out. It runs ok for me, but unfortunately I can't really use it. I have a 3200x1800 screen resolution with scaling on Windows 10, and the program's UI doesn't work with it.
That about win x64 as we had dfhack updated?This is unaffected since it just reads the gamelog.txt file.
one more reason not to go for anything past Win7 :DFYI: I just tried the program out. It runs ok for me, but unfortunately I can't really use it. I have a 3200x1800 screen resolution with scaling on Windows 10, and the program's UI doesn't work with it.
Scaling isn't even supported correctly for all Windows applications. You're better off just changing the text-size to get larger windows/buttons.
one more reason not to go for anything past Win7 :DFYI: I just tried the program out. It runs ok for me, but unfortunately I can't really use it. I have a 3200x1800 screen resolution with scaling on Windows 10, and the program's UI doesn't work with it.
Scaling isn't even supported correctly for all Windows applications. You're better off just changing the text-size to get larger windows/buttons.
Eh, It's a bit hard to control the volume in SoundCenSe since the icon covers the controls...Whatever that links to, it isn't publicly-visible.
https://drive.google.com/open?id=0B8haRmkqjRHkbEhXNkZ4NkEwR3c
Eh, It's a bit hard to control the volume in SoundCenSe since the icon covers the controls...Whatever that links to, it isn't publicly-visible.
https://drive.google.com/open?id=0B8haRmkqjRHkbEhXNkZ4NkEwR3c
Wow, i never thought someone could override the size of the icon in the audio mixer...
Seems to me like its a bug in the windows mixer. I only provided the icon.
Which windows version do you use?
b) annoying to make it Windows only.Odd thing to say when the OP states the exact opposite.
b) annoying to make it Windows only.Odd thing to say when the OP states the exact opposite.
I've found that a lot of C# things that claim to work on non-Windows actually don't, although that may have improved since I last tried. On the other hand, there are screenshots of this running on OS X and Linux in the first post, so that's promising, but no OS X instructions or builds that I could find.b) annoying to make it Windows only.Odd thing to say when the OP states the exact opposite.
XBuild Engine Version 14.0
Mono, Version 4.6.2.0
Copyright (C) 2005-2013 Various Mono authors
Build started 25.06.2017 15:13:30.
__________________________________________________
Project "/home/chris/test/SoundCenSe/SoundCenSe GTK/SoundCenSeGTK.sln" (default target(s)):
Target ValidateSolutionConfiguration:
Building solution configuration "Debug|x86".
Target Build:
Project "/home/chris/test/SoundCenSe/SoundCenSe GTK/Misc/Misc.csproj" (default target(s)):
Target PrepareForBuild:
Configuration: Debug Platform: AnyCPU
Target GenerateSatelliteAssemblies:
No input files were specified for target GenerateSatelliteAssemblies, skipping.
Target _GenerateTargetFrameworkMonikerAttribute:
Skipping target "_GenerateTargetFrameworkMonikerAttribute" because its outputs are up-to-date.
Target CoreCompile:
Skipping target "CoreCompile" because its outputs are up-to-date.
Done building project "/home/chris/test/SoundCenSe/SoundCenSe GTK/Misc/Misc.csproj".
Project "/home/chris/test/SoundCenSe/SoundCenSe GTK/SoundCenSeGUI/SoundCenSeGUI.csproj" (default target(s)):
Target PrepareForBuild:
Configuration: Debug Platform: AnyCPU
Target GenerateSatelliteAssemblies:
No input files were specified for target GenerateSatelliteAssemblies, skipping.
Target _GenerateTargetFrameworkMonikerAttribute:
Skipping target "_GenerateTargetFrameworkMonikerAttribute" because its outputs are up-to-date.
Target CoreCompile:
Skipping target "CoreCompile" because its outputs are up-to-date.
Done building project "/home/chris/test/SoundCenSe/SoundCenSe GTK/SoundCenSeGUI/SoundCenSeGUI.csproj".
Project "/home/chris/test/SoundCenSe/SoundCenSe GTK/SoundCenSeGTK/SoundCenSeGTK.csproj" (default target(s)):
Target PrepareForBuild:
Configuration: Debug Platform: x86
Target GenerateSatelliteAssemblies:
No input files were specified for target GenerateSatelliteAssemblies, skipping.
Target _GenerateTargetFrameworkMonikerAttribute:
Skipping target "_GenerateTargetFrameworkMonikerAttribute" because its outputs are up-to-date.
Target CoreCompile:
Skipping target "CoreCompile" because its outputs are up-to-date.
Target _CopyDeployFilesToOutputDirectoryPreserveNewest:
Skipping target "_CopyDeployFilesToOutputDirectoryPreserveNewest" because its outputs are up-to-date.
Done building project "/home/chris/test/SoundCenSe/SoundCenSe GTK/SoundCenSeGTK/SoundCenSeGTK.csproj".
Done building project "/home/chris/test/SoundCenSe/SoundCenSe GTK/SoundCenSeGTK.sln".
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:00.7298700
2017-07-24 18:30:13.1267|WARN|SoundCenSeGTK.MainClass|Checking dll in registry
2017-07-24 18:30:13.6815|WARN|SoundCenSeGTK.SoundsXML|Include listing tag without valid 'filePathAndName' attribute encountered (make sure it ends in '.xml'!).
2017-07-24 18:34:06.5788|ERROR|SoundCenSeGTK.PackDownloader|File http://df.zweistein.cz/soundsense/soundpack/autoUpdater.xml had wrong checksum (45328223b0bc4983941a7eef45e6721821a0207c<->b67a8d1a88a896bf3d1677d41037f17fa08e8170
2017-07-24 22:06:20.6350|WARN|SoundCenSeGTK.MainClass|Checking dll in registry
2017-07-24 22:06:22.5759|WARN|SoundCenSeGTK.SoundsXML|Include listing tag without valid 'filePathAndName' attribute encountered (make sure it ends in '.xml'!).
2017-07-24 22:13:23.2266|ERROR|SoundCenSeGTK.PackDownloader|File http://df.zweistein.cz/soundsense/soundpack/autoUpdater.xml had wrong checksum (45328223b0bc4983941a7eef45e6721821a0207c<->b67a8d1a88a896bf3d1677d41037f17fa08e8170
2017-07-24 22:13:36.7621|WARN|SoundCenSeGTK.MainClass|Checking dll in registry
2017-07-24 22:13:38.0461|WARN|SoundCenSeGTK.SoundsXML|Include listing tag without valid 'filePathAndName' attribute encountered (make sure it ends in '.xml'!).
Hi blacksmokedmax,
Is the colored icon in the lower right hand corner of the window red or green? If it's red then soundcense didn't know where to find df. Check the settings tab and turn off the automatic detect option. Then you'll be able to set the path manually.
Pls let me know if you still have problems.
As for the auto detection I'll look into it later tonight. It might be broken.
Hi blacksmokedmax,
Is the colored icon in the lower right hand corner of the window red or green? If it's red then soundcense didn't know where to find df. Check the settings tab and turn off the automatic detect option. Then you'll be able to set the path manually.
Pls let me know if you still have problems.
As for the auto detection I'll look into it later tonight. It might be broken.
My icon was indeed red. When setting the path manually, it seemed to have the correct folder selected, but not the file within. It opened up in the right folder and I selected the gamelog. Music started playing immediately. So far that is all I have heard, but I didn't play long, just wanted to do a quick test. Is there a quick way to force some other sounds, or any actions I can take in game to check if everything is working fine?
Also, was I correct in assuming the sound should be set to Off in the LNP?
Thanks for your help! And thanks to both you and zwei for a great addon! (and of course to all the modders that help make this game even greater!)
Zwei, would it be feasible to code SoundSense such that it could access the "soundpack.zip" archive and treat it as if it was the "packs" folder? It would save a lot of disk space!
I know Windows Explorer is able to treat .zip files as if they were merely sub-directories. Even so, I guess you'd have to include LZH decompression/compression algothrithms or plugins to make that work? Also, it would probably conflict with the AutoUpdate feature, correct? Though, personally, I wouldn't mind disabling AutoUpdate if it meant being able to use a .zip for the packs directory.
Whoa, difference is nearly 50mb. I actually thought mp3s would compress really bad.
Reading zip file is problematic - it can be done, but utility/work ratio is bad, imho.
Who gives a Sh!t, at least he did it and A LOT of us are Windows only users!Those are some pretty rockin enhancements, particularly the "no Java" part :)Yeah, but the downside to that is the Windows-only part.
The post you are replying to is 17 months old. SoundCenSe has Linux and Mac builds now.can't find a linux download. is it all in the same downloadfile now?
or compile it from source: https://github.com/Algorithman/SoundCenSe (https://github.com/Algorithman/SoundCenSe)
I assume it's this, because I don't see another relevant link:doesnt look like what i'm searching for.or compile it from source: https://github.com/Algorithman/SoundCenSe (https://github.com/Algorithman/SoundCenSe)
that's the problem, SoundCense doesn't work either.
System requirements:
Windows:
.NET 4
Microsoft Visual c++ runtime redistributables (https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe)
Gtk-Sharp (http://download.xamarin.com/GTKforWindows/Windows/gtk-sharp-2.12.38.msi)
If SoundCenSe doesn't seem to start (nothing happens when you open it), check the Log.txt file, there the url's will be provided too.
After installing gtk-sharp, a reboot might be needed even the installer doesn't tell you so.
Linux: (Debian)
mono-complete
gtk-sharp2
Thanks for this solution. The autodetect is not working with the packaged starter pack.
Directing it to:
C:\Users\SneakyGunz\Desktop\DwarfFortress\Dwarf Fortress 44.05\Dwarf Fortress 0.44.05\gamelog.txt
worked perfectly. Thank you, thank you.
...might need to change the Configuration.json file, setting gamelogPath to ""
Exception in Gtk# callback delegate
Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.NullReferenceException: Object reference not set to an instance of an object
at SoundCenSeGTK.FmodChannelPool.IsSoundPlaying (System.String filename) [0x00029] in <f37300e414084686af6d233f37ba2863>:0
at SoundCenSeGTK.fmodPlayer.PlaySound (SoundCenSeGTK.SoundSoundFile sf, System.String channel, System.Single volume, System.Boolean mute) [0x0019d] in <f37300e414084686af6d233f37ba2863>:0
at SoundCenSeGTK.fmodPlayer.LoopSound (System.Object sender, Misc.RestartSoundLoopEventArgs restartSoundLoopEventArgs) [0x00106] in <f37300e414084686af6d233f37ba2863>:0
at SoundCenSeGTK.fmodChannelSound.OnSoundEnded () [0x0007f] in <f37300e414084686af6d233f37ba2863>:0
at SoundCenSeGTK.fmodChannelSound.<Callback>b__0 (System.Object param0, System.EventArgs param1) [0x00001] in <f37300e414084686af6d233f37ba2863>:0
at Gtk.Application+InvokeCB.Invoke () [0x00000] in <e2cf54bd50544b3dbf94649395d8c893>:0
at GLib.Timeout+TimeoutProxy.Invoke (System.IntPtr data) [0x00000] in <ed39f21b9e9343dcbd442a17ad356a9f>:0
at GLib.SourceProxy.HandlerInternal (System.IntPtr data) [0x00000] in <ed39f21b9e9343dcbd442a17ad356a9f>:0
at GLib.ExceptionManager.RaiseUnhandledException (System.Exception e, System.Boolean is_terminal) [0x00000] in <ed39f21b9e9343dcbd442a17ad356a9f>:0
at GLib.SourceProxy.HandlerInternal (System.IntPtr data) [0x00000] in <ed39f21b9e9343dcbd442a17ad356a9f>:0
at Gtk.Application.gtk_main () [0x00000] in <e2cf54bd50544b3dbf94649395d8c893>:0
at Gtk.Application.Run () [0x00000] in <e2cf54bd50544b3dbf94649395d8c893>:0
at SoundCenSeGTK.MainClass.Main (System.String[] args) [0x00000] in <f37300e414084686af6d233f37ba2863>:0
Is the colored icon in the lower right hand corner of the window red or green? If it's red then soundcense didn't know where to find df. Check the settings tab and turn off the automatic detect option. Then you'll be able to set the path manually.OP, if you're still watching this thread, could you append this line to the main topic post? I couldn't get SoundCenSe to work until I combed through this post to find this solution. I imagine a lot of people are getting this issue, not finding a solution, and simply returning to using SoundSense. Thanks