|
Audio Asylum Thread Printer Get a view of an entire thread on one page |
For Sale Ads |
74.69.242.210
In Reply to: RE: cMP - the open source high-end Memory Player posted by cics on December 30, 2007 at 05:42:01
Hi,
I finally put together a CMP-like machine the other day. I used hardware that I had on hand; decent stuff but not the same as recommended here. I used an Asus P5W DH Deluxe motherboard, an Intel E6600 CPU, Corsair RAM, Corsair 520HX power supply, and a good case. The machine has no internal discs and uses a separately powered external SATA drive to hold the operating systems. I actually put three different operating systems on this disc so that I could eventually compare CMP on XP to optimized Linux and Vista configurations. There is also a partition for another operating system that is not yet being used.
I followed all of the OS recommendations except I didn't shutdown networking because my music library lives elsewhere on the network. (I know, string me up and tar and feather me, but for the life of me I can't figure out why running networking would be worse than running extra local discs, a monitor, a keyboard, and a wireless mouse.) I followed bios recommendations where I could find similarities with the bios on my motherboard.
I am using the box headless - no monitor, mouse, nor keyboard, which brings up a slight issue I'll explain later. I have two different DAC solutions I am trying with it, an internal Lynx 2B via the Lynx drivers, and a Wavelength Cosecant v3 USB DAC via ASIO4All. I put the Lynx card in so I could try upsampling, but after a brief comparison I am listening mostly via the USB DAC.
I am trying to get the headless system to not need to run VNC server. I can do this because I made a network capable version of my CPlayListEditor program. I can run a server instance on the CMP box, and run a client version on any other computer in the house. The client version gets the libraries from the server, and can build playlists from those libraries, and then sends the playlists to the instance running on the CMP box which then launches CPlay with the playlist loaded. I am able to control CPlay on the CMP box via the network client of my program because I added pause, next and previous buttons to my application, which sends messages to the server instance which then sends the command on to CPlay.
While I haven't yet directly compared this solution to my battery Fit-PC Slim running an optimized version of Linux, I can say that I am thus far very impressed with the sound quality. It is the best I've achieved out of a full sized PC.
So, here are my issues and questions.
1) The "Don't use welcome screen" recommendation keeps me from being totally headless and running VNC server because it forces a password dialog box on boot-up. I only have one account on this machine, so leaving 'use welcome screen' enabled allows the computer to boot up directly into that account without displaying the welcome screen. I see a couple of ways around it but don't know enough about CMP to make an informed decision:
* I could boot directly into XP mode with the welcome screen enabled, then automatically start my CPlaylist Editor application and automatically start CMP mode. If I start CMP mode after boot-up with welcome screen enabled, will there still be the lockup problem?
This brings up two other questions...
- Is there any in CMP mode, other than behavioral differences, when CMP mode is started from XP mode as compared to when CMP mode is booted into directly? I am only interested in technical differences that might affect sound quality.
- When already in CMP mode, is there any difference in threading when the CMP explorer (or whatever its called) starts CPlay as compared to my application starting CPlay, or will CPlay start optimized to the CMP settings no matter how it is started when in CMP mode?
* My second option would be to boot directly into CMP mode, but I would need a way to do this that would not bring up the password dialog box when the welcome screen is disabled. Is there any manner to do this? This would also require a way to automatically start my CPlayList Editor application within CMP mode. Is there some batch file that runs automatically when CMP mode is started that I could edit to start my application?
Thanks in advance for any information related to these questions.
Alan
Follow Ups:
Ethernet connection has OS and device overheads but your headless setup will give benefits - its a tradeoff. cPlay will RAM load data before playback so Network streaming is not an issue.
- Welcome Screen.
You should implement the changes. This will force a password dialog. Minlogon optimisation removes this dialog (as you now logon as System Default). Benefits of Minlogon are huge and yes it will work with Networking enabled. Seger has a easier approach which you should look into.
- cMP Mode.
This results in least OS bloat and is the best way to run cPlay (Optimise must be "Critical"). With your Lynx, you can also Suspend both lsass and svchost. cMP optimises use of CPU Cores. Running from Explore is a bad idea (this locks all threads to CPU0 and doesn't adjust priority).
- Way Forward.
Start directly into cMP Mode (no logon/password dialog with Minlogon). In cMP, set "Process Explorer" or "Task Manager" as startup but instead run your Network app (CPlayList Editor?). See cicsMemoryPlayer.pth file for details. If CPlayList Editor can trigger starting cPlay by cMP then you have gained all benefits. Also remove cicsRemote.exe from cMP installation folder (this prevents cMP from running it).
Good start!
If I remove cicsRemote.exe from the cMP installation folder will this help sonically? Also I don't use touch screen either is it useful to remove this as well?
Edits: 07/20/09
cicsRemote.exe provides the remote automation using a wireless mouse. If you remove this, you won't have remote control. However, it won't matter if you're not using a mouse, i.e. you can remove it. I tested this a long while back and found no differences. Its worth testing again - let us know.
There's nothing to remove if you don't have a touch screen.
I tried this (eliminating cicsRemote.exe from cmp folder) and although there is one less process in task manager it does not sound different to me after one day of listening.
Edits: 07/22/09
Hi cics,
Seger's instructions worked well regarding removing the password prompt. I am running XP SP3. Is there a link which describes the benefits of using minlogon? If not, what are the benefits?
I can now boot directly into CMP critical mode, with CPlayListEditor starting automatically as you have suggested, through editing the cicsMemoryPlayer.pth file and setting startup to Process Explorer. Interestingly, the only manner I could get CPlayListEditor to start at startup was to create a batch file to start it. Referencing the command directly in cicsMemoryPlayer.pth doesn't work. I also tried hiding the command prompt that comes up from the batch file by using #H, but that keeps the batch file from being executed. Also, the cicsMemoryPlayer.pth file that came with the CMP software doesn't have a TaskManager entry in it. Do I have the correct version of the software?
Thanks very much. Now I can use a headless CMP without running any sort of VNC server. I need to make a couple more tweaks to the software (add phase, fast forward and rewind buttons), and make the usability a little more self explanatory. After that I'll make it available if anyone else cares about a headless CMP.
Alan
Minlogon implementation for SP3 is a problem - haven't seen one yet. Improvements are very significant and I would suggest installing SP2 on your spare partition. Minlogon benefits:
"Windows security overheads is reduced significantly and there's no logon prompt at startup☺ Boot time is faster. Sound improves as Windows footprint reduces (less overheads). Windows operates using '.Default' user. All user settings (Desktop, Appearence, foobar, ?) will need to be redone. It's worth rechecking all optimizations again."
Windows security subsystem causes each device IO to be secure - this includes audio output. Reduction in runtime overheads is significant.
Task Manager entry is not available in .pth file (as cMP internally uses Windows version). Your problem with Process Explorer is a surprise - be sure to use quotes for the program and there are no typos as cMP will not report on an error (something I want to fix in next release). #H/N/H is only applicable to RIPPER, CUE_PLAYER & PREP_PLAYER. I get cPlayListEditor to work without a .bat using the following:
PROCESS_EXPLORER "java" -jar "C:\Program Files\CPlayListEditor\CPlayListEditor.jar"
Power button is not available in cMP Mode. I have a HTPC which I shutdown by just holding the power button for a few seconds. Yes its a hard shutdown - I've been doing this for 1 year+ without any problems.
I use minlogon with sp3 running cMP2 without problems on my Lenovo laptop as optimized as possible.
That's very good to know.
Yes: boot from second non-cMP drive and substitute minlogon for winlogon all after running the registry change application. Then boot to cMP drive. Done. I suppose making the substitution when booted to safe mode from cMP drive would work just as well.
As to one of your questions: You can run cPlay while in cMP mode by selecting "explore" and then starting cPlay from its folder under Program Files. When you do this cPlay is not completely optimized via cMP though it benefits generally from cMP mode.
So, I believe you will need to get your program to get cMP to pass along your selection as it starts cPlay. If you find a way to do this then you could also included a way to have the selection's samplerate determine the playback rate in cPlay to be an even multiple rather than a fixed preselected rate and thus sound its best re this selection. One, but probably not the most efficient, way would be to have a routine that decides to best playback rate then changes the cPlay ini file to specify that rate so that when cMP calls cPlay it will use this amended ini.
Hi,
Cics seems to suggest that as long as I can boot into CMP mode, have CMP start my playlist editor, and have my playlist editor start CPlay, CPlay should be optimized.
"One, but probably not the most efficient, way would be to have a routine that decides to best playback rate then changes the cPlay ini file to specify that rate so that when cMP calls cPlay it will use this amended ini."
Hey, this is a pretty good idea. The only problem is that there is nothing in my program that keeps someone from building a playlist out of songs with differing sampling rates. Maybe I'll start by trying it as a manner to automatically configure the sampling rate of CPlay based on the sampling rate of the file, as I don't care for upsampling so much. Also, the only time I read sampling rates is when I am reading the embedded tags of FLAC files. I have to see if I can get the sampling rate of WAV files.
Thanks for the idea,
Alan
You should be able to get samplerates for WAVs as foobar certainly can and lists it under properties. I just added a column for it that works for WAVs in playlist display using %samplerate%.
You're right that if the playlist lists files with different samplerates, you would probably just get that of the first file entered into cPlay ini, but that is better than nothing since cPlay has a fixed rate in any case, so suboptimal for many of the files either way. This way at least one file will be played the way you want. You can't get cPlay not to upsample unless you are willing to see any files in the playlist at greater than 44.1 downsampled. for an upsampler like me, it is just a matter of selecting 176.4 or 192, whichever is a multiple of the samplerate.
"You should be able to get samplerates for WAVs as foobar certainly can and lists it under properties. I just added a column for it that works for WAVs in playlist display using %samplerate%"
Foobar is written in C++. My app is written in Java and is using the JAudioTagger library to get tagging information from FLAC and other files that support tags. I don't really want to write my own library to go poking through WAV files if I don't have to. I can find a bunch of supporting libraries in C++, but not much in Java. If I were a C++ programmer I would be writing the player, not the playlist browser.
I hadn't realized that. I see now why you are reluctant. All I can do is plead on behalf of the many who use flacs with cPlay that adding the dynamic rate setting to what you are working on would be a much appreciated improvement. Also, perhaps cics or somebody else can suggest a manageable way to obtain samplerates for WAV files as well.
Ok, I take it that you want the sampling rate info on Recursive Cue Creator, because it already exists for FLAC files in CPlaylist Editor.
I found some examples of Java code that deal with WAV files. I can probably get the sampling rate info but I need to know where this information should be displayed in the CUE file. Prepended to the title?
Alan
Well, I most want the play rate to be dynamically set in relation to the files samplerate. Second to that, I would like as simple and short an indication of the samplerate prepended to the title, yes. For me personally, all that's needed is a 1 for 44.1 or 88.2 or 176.4 and a 2 for 48, 96 or 192--to keep it as short as possible since displaying the title is already given too little an extent in cPlay's display. Others may want it to be more specific, so the first two numbers of the samplerate could be prepended.
Based on my experience, keeping the playback rate a multiple of the audio file sample rate gives the best results. Unfortunately cPlay seems unable to do that. Has anybody found a workaround?
Riboge wrote:
"Well, I most want the play rate to be dynamically set in relation to the files samplerate. Second to that, I would like as simple and short an indication of the samplerate prepended to the title, yes. For me personally, all that's needed is a 1 for 44.1 or 88.2 or 176.4 and a 2 for 48, 96 or 192--to keep it as short as possible since displaying the title is already given too little an extent in cPlay's display. Others may want it to be more specific, so the first two numbers of the samplerate could be prepended."
Last time we discussed this I thought you wanted sample rate for the cue sheets generated with Recursive Cue Creator. Your first sentence seems to be referring to CPlayList Editor. Your remaining sentences seem to refer to Recursive Cue Creator. Do I understand you correctly?
I don't think putting a 1 or a 2 in the cue sheet title is a universally effective manner of showing the sampling rate for those who want it. If I allow an option to prepend the sampling rate, I would probably take the sampling rate, divide it by 1000, and prepending the result to the cue sheet title. Would that be acceptable?
Regarding CPlayList Editor, it can already show sample rate in the track list for FLAC files, and you can name the resulting playlists anything you want, so you can already effectively add the sampling rate to the playlist title. However, it would make sense to update the ini file before launching CPlay to dynamically set the sampling rate. I'll try that when I have some time to fiddle with it.
Alan
If the playlist creator can bring dynamic rate setting about there is less need for the rate to be prepended in the cuesheet creator. In the meantime, yes prepend the samplerate with cuesheet creator. I was just trying to shorten the prepend from the 5 characters of such as 176.4 to something abbreviated to one or two characters, but if you feel it has to be the full monty, okay.
Automatic Logon
1. Run: control userpasswords2
2. Highlight your user name in the list
3. Clear the "Users must enter a user name and password to use this computer" check box, and then click Apply.
4. In the Automatically Log On window do not type a password. Click OK.
5. Click OK to close the User Accounts window.
6. Restart Computer.
Very interested in your upcoming comparisons.
Hi Seger,
Thanks, this works great. It may be a bit before I get around to comparisons because I'll want to listen to this long enough to get to a feel for it, but I'll let you as they happen.
Alan
Autologon is great while you get everything set up, and do various optimizations. When everything is tested and running well, do minlogon last of all. Here's the link to the short way - (the safe mode option is best) http://db.audioasylum.com/cgi/m.mpl?forum=pcaudio&n=40869&highlight=Easy+Minlogon&r=
Be careful, a mistake will tie Windows in a knot. Good thing to have multiple systems on the computer - you can correct most mistakes from one of the functioning systems.
And yes, it should be fine with SP3 - I have a couple of SP3 systems running minlogon.
Post a Followup:
FAQ |
Post a Message! |
Forgot Password? |
|
||||||||||||||
|
This post is made possible by the generous support of people like you and our sponsors: