INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: A New User's Questions/Feature Requests  (Read 1149 times)

DarkSpace

  • Junior Woodchuck
  • **
  • Posts: 60
A New User's Questions/Feature Requests
« on: December 20, 2014, 09:13:54 pm »

Hello,
I recently tried JRiver Media Center for the first time, and I must admit, I was a bit disappointed. For one thing, I had never used a Media Center before (with the exception of once trying iTunes a lot of years ago, back when it was popular, and I was incredibly disappointed at it back then), so I guess that is to be expected. However, I also recognized that I may well grow accustomed to it, save for a few quirks.
When I tried it again yesterday, I knew what to expect, and therefore grew accustomed to it rather quickly, after which I did like the program (it doesn't hurt that in preparation of this post, I had also read a few more things about the program itself). However, the 'few quirks' (and now probably some of them turned into questions; if they did, feel free to poke me until I Read The Fine Manual) remain:
To make things a bit clearer for what I'm going to put next, I'm using a laptop, and not a stationary PC (neither do I use an HTPC), and I don't think I'll use one in the very near future. I have Windows 8.1 installed there right now.
  • When looking at the default ordering of the DSP Settings menu, wouldn't it make more sense to put the 'Tempo & Pitch' (and maybe also the 'Effects') before the 'Output Format' Tab (which is, after all, responsible for resampling the audio, if necessary)? Or am I missing something here?
  • There exists an option to use the default audio output device for DirectSound, but apparently no such option to just use the default device exists for WASAPI output. Have I missed it? If I haven't, why isn't it there?
  • It appears that the sound output settings (both DSP and Options/Audio) are set globally. Is there a way to set them individually, for each audio device, especially if the above exists?
  • The DSP's 'Output Format' tab has a section to specify the output sample rate. Personally, I believe that nothing is gained from resampling for resampling's sake, so I prefer to not resample audio unless it's necessary. However, when it's necessary anyway, I like resampling directly to the highest possible output frequency that is a multiple (or closest to being one) of the input frequency (example: 8 kHz directly to 96 kHz, but leaving 32 kHz untouched, because the audio device supports it). Is there an option to implement a kind of auto-selector that does this, kind of like this Python(3) code would (probably) do?
Code: [Select]
from sys import maxsize as o9k

supported_freqs = get_supported_freqs() # the frequencies that this audio-output device supports, in a list
freq_in = get_infreq() # whatever the _effective_ input frequency is: that means that when accelerating a 24000/1001 fps video to 24 fps*, it is not 48000 Hz, but rather 48048 Hz
                       # * I'm aware that this would be performed by VideoClock, and therefore wouldn't be precisely 24 fps, but I think it should be sufficient to use the theoretical target.
resampling_required = must_resample() # When playing a video and VideoClock is active, this is True, otherwise this should probably be False.
                                      # Another way to explain this _might_ be that it is True when the theoretical target frequency is not equal to the actual target frequency.

# highest_multiple_supported() gives the highest multiple of the passed frequency that the audio device supports (e.g. 192000 Hz for a value of 48000 Hz)
def highest_multiple_supported(freq_in):
    factor = 1
    freq = frequency
    for freq_ in supported_freqs:
        if freq_ % frequency == 0: # exact multiple; this happens at least once, because frequency is in supported_freqs, and because of this, we also don't have to deal with multiples of a factor less than 1
            curr_factor = freq_ / frequency
            if curr_factor > factor:
                factor = curr_factor
                freq = freq_
    return freq

if freq_in in supported_freqs:
    return highest_multiple_supported(freq_in) if resampling_required else freq_in

closest_freq = []
closeness = o9k
error = o9k
for freq_ in supported_freqs:
    # The factor to scale the current frequency with so that it can meaningfully be compared to the input frequency. This is rounded rather than truncated in order to deal with values slightly smaller than the 'target frequency' as well as with values slightly greater.
    # Meaningful comparison example: comparing 8013 Hz to 48000 Hz itself is rather meaningless, we first have to find out that 48000 Hz should be scaled to 8000 Hz before comparison. After that, we can get useful differences.
    factor = round(max(freq_, freq_in) / min(freq_, freq_in))
    scale = factor
    if freq_ > freq_in:
        scale **= -1 # 1 / scale

    diff = abs(freq_in - freq_*scale)

    if diff < error or (diff == error and factor < closeness):
        error = diff
        closeness = factor
        closest_freq = [freq_]
    elif (diff, factor) == (error, closeness):
        closest_freq.append(freq_)

highest = max([highest_multiple_supported(freq_) for freq_ in closest_freq])
return highest
    This also has the advantage that it explicitly defines behaviour for rare input frequencies (such as 41294 Hz or the like).
    When thinking of this, I thought that it might be possible to either auto-detect the supported sample rates from the device (like e.g. Windows does by itself), or having a small dialog where the user can then tick the device's supported rates.
    • The 'Output Format' Tab's Channels option lets me select only one option. Is it possible to, for example, output untouched 7.1, 5.1, and 2.0 audio, but mix the rest to 7.1, similar to LAV Audio's Mixing tab with it's 'Don't mix stereo sources' option? (Note that this is mostly curiosity, because my only opportunity at using it is with some 7.1 Headset, and I'd estimate that when in doubt, your upmixing is better.)
    • When playing videos, you usually use LAV Splitter. However, you completely auto-configure it, and your options for selecting audio and subtitles are much less detailed than those of LAV Splitter itself, especially in advanced mode. Is there a way to configure it further, so that I can re-use my current setup's selection rules?
    • Also, there appears no way to just select the default audio/subtitle stream for containers (such as matroska) that support it. Am I missing something again? (To be fair, when using audio language selection, LAV Splitter also has no option to use default audio if it's present and to only then fall back to using its configured language selection.)
    • Today, I stumbled upon a thread that talked about Crossfeed for headphones, and upon reading it, I understood what it does and why it might be useful (I'll have to at least try it sometime), because so far, I had just assumed that it's something about analog connections (with the cables for left/right ear being so close to each other), and that it therefore doesn't apply to my case, but I was never interested enough to actually check. Great job at having such information available in your forums!
    • I understand that once I use your Video Playback system (Red October HQ), I can configure madVR from there. Is there a way to configure it without first opening a video? (I ask because on my current system, which I have scheduled for wipe+reinstall by tomorrow, for an unknown reason, Red October's madVR doesn't seem to work, as in it displays the first frame with some unusually high stats, and then freezes. The really strange thing is that I briefly got it to work, but only once [twice now: I removed the madVR folder from AppData, but after that the problem persists]. When, using the very same configuration, I reopened the same video file, it hung again. Don't bother with this problem, it's probably a faulty setup in some way, and not related to my soon reinstalling the computer. My regularly installed madVR continues to work fine. And yes, I'm certain that it's madVR [without it, it works, and also, madVR's OSD shows 0.00 fps screen refresh rate].)
    • Is there a way to select a different Subtitle Renderer (such as XySubFilter or xy-VSFilter) if one wants to? I have been unable to find one such option (except perhaps to revert to using the non-recommended default DirectShow setup).
    • I opened a non-imported FLAC file with embedded CueSheet (the CueSheet was in its CueSheet tag), but apparently the tracklist wasn't recognized although LAV Splitter is capable of exporting the chapters from it. Is this intentional (and/or perhaps only available for imported files)?
    • By default, your volume selection uses the System Volume, rather than the Application Volume. I understand that means that if I have the System Volume at 50, but in the Volume Mixer decide to change JRiver's Volume to 30, it will have no effect. Is that correct? If so, why don't you default to using the Application Volume (which by default should equal the System Volume) instead?

    Do note that when I ask stuff (like in my last question just now), I'm often merely curious and don't mean to sound rude. I know, however, that I manage to sound rude on occasion without meaning to, especially so when asking  qestions. Please don't take it personally if I have insulted you somehow, and please do tell me (maybe I'll learn to avoid that mistake, then)!
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5181
  • "Linux Merit Badge" Recipient
Re: A New User's Questions/Feature Requests
« Reply #1 on: December 20, 2014, 11:08:59 pm »

I can't answer all of your questions, but here's a stab at a few answers:

  • When looking at the default ordering of the DSP Settings menu, wouldn't it make more sense to put the 'Tempo & Pitch' (and maybe also the 'Effects') before the 'Output Format' Tab (which is, after all, responsible for resampling the audio, if necessary)? Or am I missing something here?

Most sound devices need to be "opened" at a specific sample rate (i.e. one of their supported hardware sample rates) and a specific channel configuration at the outset of playing a song (i.e. I'm not aware of any devices that support changing the hardware sample rate/channel count during playback).  Any subsequent pitch changes have to take place in software after that initialization takes place.  That's part of why output format is always first.

Quote
  • There exists an option to use the default audio output device for DirectSound, but apparently no such option to just use the default device exists for WASAPI output. Have I missed it? If I haven't, why isn't it there?

You haven't missed it, it's not there.  I don't work for JRiver, but I think the default option is just designed to replicate what would happen if you played to the windows mixer like an ordinary
program.  So it uses direct sound and plays to the system default.  When you use WASAPI you're bypassing the windows mixer, so the "default" doesn't make as much sense.  Such an option could probably be created, but there isn't one currently.

Quote
  • It appears that the sound output settings (both DSP and Options/Audio) are set globally. Is there a way to set them individually, for each audio device, especially if the above exists?

Read up on zones on the forums and wiki.  You can create an arbitrary number of zones that have completely independent audio options and DSP settings.  They can easily be configured to create different setting profiles for different devices.

Quote
  • The DSP's 'Output Format' tab has a section to specify the output sample rate. Personally, I believe that nothing is gained from resampling for resampling's sake, so I prefer to not resample audio unless it's necessary. However, when it's necessary anyway, I like resampling directly to the highest possible output frequency that is a multiple (or closest to being one) of the input frequency (example: 8 kHz directly to 96 kHz, but leaving 32 kHz untouched, because the audio device supports it). Is there an option to implement a kind of auto-selector that does this, kind of like this Python(3) code would (probably) do?
JRiver does some auto-detection for sample rates, but it only does it when a playback attempt fails (i.e. when an unsupported sample rate is attempted, JRiver offers to resample to a sample rate that would work).  It's not as intense as what you're proposing, but it serves to alert the user to which sample rates are unsupported by their device.  If you're unahppy with the choice it makes in the autofix, you'll need to set manually which rates you want to resample to what.

Quote
  • The 'Output Format' Tab's Channels option lets me select only one option. Is it possible to, for example, output untouched 7.1, 5.1, and 2.0 audio, but mix the rest to 7.1, similar to LAV Audio's Mixing tab with it's 'Don't mix stereo sources' option? (Note that this is mostly curiosity, because my only opportunity at using it is with some 7.1 Headset, and I'd estimate that when in doubt, your upmixing is better.)

You can get 75% of the way there.  You can set it to 7.1, enable JRSS mixing, check the box in output format for "only mix stereo sources to 2.1," and then set the JRSS subwoofer option to "silent."  Those settings will:
1) Leave 7.1 completely alone
2) Leave stereo completely alone, and
3) Mix everything else to 7.1

So it doesn't leave 5.1 alone as you asked, but it does the rest of what you asked.  A word of clarification, setting the sub to "silent" should not affect the LFE (or .1) track when it's present in source material; the JRSS subwoofer just controls what happens with sources that lack a native sub channel

Quote
  • I understand that once I use your Video Playback system (Red October HQ), I can configure madVR from there. Is there a way to configure it without first opening a video? (I ask because on my current system, which I have scheduled for wipe+reinstall by tomorrow, for an unknown reason, Red October's madVR doesn't seem to work, as in it displays the first frame with some unusually high stats, and then freezes. The really strange thing is that I briefly got it to work, but only once [twice now: I removed the madVR folder from AppData, but after that the problem persists]. When, using the very same configuration, I reopened the same video file, it hung again. Don't bother with this problem, it's probably a faulty setup in some way, and not related to my soon reinstalling the computer. My regularly installed madVR continues to work fine. And yes, I'm certain that it's madVR [without it, it works, and also, madVR's OSD shows 0.00 fps screen refresh rate].)

If you can get it to run for even a few seconds, you can open up the tray icon and tell it to remain present when no videos are playing.  I'm not aware of a way to configure it without at least playing a video once.
[/list]
Logged

DarkSpace

  • Junior Woodchuck
  • **
  • Posts: 60
Re: A New User's Questions/Feature Requests
« Reply #2 on: December 21, 2014, 04:24:54 am »

Thank you, mwillems, what you answered does make sense.
I can see already may end up creating a dedicated feature request thread or two in the future (definitely not now, though), if this thread ends up looking too broad (I read some more advice in the meantime, among others something like 'split up your questions into single-topic threads' - great advice, probably, but now I already created the thread).

Read up on zones on the forums and wiki.  You can create an arbitrary number of zones that have completely independent audio options and DSP settings.  They can easily be configured to create different setting profiles for different devices.
Already the name sounds like it may be well-suited to doing what I want. Thanks!

You can get 75% of the way there.  You can set it to 7.1, enable JRSS mixing, check the box in output format for "only mix stereo sources to 2.1," and then set the JRSS subwoofer option to "silent."  Those settings will:
1) Leave 7.1 completely alone
2) Leave stereo completely alone, and
3) Mix everything else to 7.1

So it doesn't leave 5.1 alone as you asked, but it does the rest of what you asked.  A word of clarification, setting the sub to "silent" should not affect the LFE (or .1) track when it's present in source material; the JRSS subwoofer just controls what happens with sources that lack a native sub channel
Interesting. As I said, the interest was mere curiosity, but thank you nonetheless, that, too, makes sense. Also, I suppose that setting the Subwoofer to silent would have seemed like a bad idea to me, so now I know what it does in advance of needing it! ;D

If you can get it to run for even a few seconds, you can open up the tray icon and tell it to remain present when no videos are playing.  I'm not aware of a way to configure it without at least playing a video once.
Okay, that it is then.

Thank you for your detailed responses (I only answered to some specifically, but here I mean all of them)!
Logged
Pages: [1]   Go Up