Can a computer act as a home theater receiver?

5,298

Of course a modern PC can hndle many functions of a home theater receiver. It has audio I/O interfaces as well as video I/O interfaces. At least at first instance it might make sense to use it this way as well.

At second look you will find that a PC is usually not equipped with a powerful amplifier. What you get from a modern sound card are line-out and pre-amped outputs which require external amplifiers as well as some pure digital outputs. I am personally not aware of any HiFi amplifier which is built into a PC directly. Usually you also want to avoid high-power amplifier circuits within a PC as you would also amplify a lot of noise resulting from power surges and many radiation sources within a PC case. This is also the reason why many high-quality sound cards have a metal shield (e.g. refer to Asus Xonar series). This shield is neither for heat dissipation nor just for "coolness factor"; it is shielding the audio circuits from various radiation in order to minimize their impact on analog audio connections.

So given the fact that you either output digital audio signals (which again need an external receiver or amplifier) or analog outputs which also require an amplifier there is not much functionality of a home theater receiver left which you can move to your PC.

Of course a PC still makes a lot of sense in modern home theater systems - but mainly as an A/V source than as the AV receiver. I personally do not own any A/V source except my PC. My graphics card is connected up to my screens and a beamer, my sound card is connected via S/PDIF to my home cinema receiver which powers a high-quality 5.1 sound system. Using the machine I can turn any 2, 4, 5.1, 7.1... stream into a real-time encoded DolbyDigital/DTS bitstream sent via S/PDIF to my receiver. Well, nowadays you would potentially prefer an HDMI connection, but my equipment is in use since about 10 years now.

Windows Media Center also acts as an A/V source rather than as an A/V receiver. Even though you could use a TV card to get pictures from external sources into your PC and display it in media center. But there is still the problem that you need some external speakers and speaker amplifiers.

Given the prices of A/V receivers it does not make much sense to put these functionality into your PC. The functionality is quite "dumb" and static - so there is no benefit of using a complex software system to emulate this functionality. Getting any Logitech 5.1 system (e.g. the Z-5500 is still a good buy for the money) would probably be a much better choice.

Of course one of the drawbacks of an A/V receiver is that its functionality is static. For example such a receiver would just accept a certain amount of audio formats which it's able to decode. Using a PC as a home theater A/V source also helps to overcome some of these limitations. For example my home theater receiver (Yamaha DSP-A1092) only supports DolbyDigital/AC3 and no DTS. But using my PC I can listen to DTS audio sources while my CPU simply decodes DTS and my Xonar soundcard re-encodes it to DolbyDigital Live 5.1 bitstream again so it's accepted by my receiver. Of course usually this is a stupid thing as you decode, re-encode and decode again which is a loss of quality. But some movies are re-mastered in DTS and the resulting quality is still much better than to listen to the original DolbyDigital bitstream as it is on DVD.

Share:
5,298
Shikha Gupta
Author by

Shikha Gupta

Updated on September 18, 2022

Comments

  • Shikha Gupta
    Shikha Gupta almost 2 years

    I am getting this intermittent error while creating a TypedQuery for Generic type. My method is as:

        public List<T> findByEmail(Class type, String email_id){
            String query = "SELECT t FROM " + type.getSimpleName() + " t WHERE t.email =:"+email_id;
            TypedQuery<T> typedQuery =em.createQuery(query, type);
            return (List<T>) typedQuery.getResultList();            
       }
    

    While if I restart the server, the error doesn't reappear and it correctly fetch result.

    play.api.Application$$anon$1: Execution exception[[IllegalArgumentException: Type specified for TypedQuery [model.User] is incompatible with query return type [class model.User]]]
                at play.api.Application$class.handleError(Application.scala:296) ~[play_2.11-2.3.7.jar:2.3.7]
                at play.api.DefaultApplication.handleError(Application.scala:402) [play_2.11-2.3.7.jar:2.3.7]
                at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun
        $applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.7.jar:
        2.3.7]
                at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun
        $applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.7.jar:2.3.7]
                at scala.Option.map(Option.scala:145) [scala-library-2.11.1.jar:na]
        Caused by: java.lang.IllegalArgumentException: Type specified for TypedQuery [model.User] is incompatible with query return type [class model.User]
                at org.hibernate.jpa.spi.AbstractEntityManagerImpl.resultClassChecking(AbstractEntityManagerImpl.java:387) ~[hibernate-entitymanager-4.3.6.Final.jar:4.3.6.Final]
                at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractE
        ntityManagerImpl.java:344) ~[hibernate-entitymanager-4.3.6.Final.jar:4.3.6.Final
        ]
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.
        0_25]
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
        java:62) ~[na:1.8.0_25]
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
        sorImpl.java:43) ~[na:1.8.0_25]
    
    • Julian
      Julian about 13 years
      push out the same wattage??
    • soandos
      soandos about 13 years
      Do you mean use the screen for that box?
    • P.Brian.Mackey
      P.Brian.Mackey about 13 years
      @Nifle - amperage - whatever. I'm not an audio tech. @soandos I mean provide a replacement - in lieu of a receiver.
    • barryj
      barryj about 13 years
      A computer and an AV receiver are two totally different things - even a top notch alchemist would have a tough job doing that. You can't turn one into the other.
    • P.Brian.Mackey
      P.Brian.Mackey about 13 years
      @barryj - oh ok. So then the answer is no, or in Mythbuster speak: Plausible.
    • barryj
      barryj about 13 years
      Well, you could probably put some kind of surround sound card into a PC and have it do some decoding, but it's still not an amplifier, so no it couldn't push out the kind of power a receiver is designed for.
    • P.Brian.Mackey
      P.Brian.Mackey over 11 years
      -3 for a legendary question with 2500+ views? Haha...
    • Alexander Fedyukov
      Alexander Fedyukov over 9 years
      Your problem may be in older deployment which exists in server. Why you are using StringBuilder in this code?
    • Shikha Gupta
      Shikha Gupta over 9 years
      Nothing specific to use StringBuilder, updated code with String also it's the same. Seems to be an issue with in Classloading, but not sure what.
    • Leandro Glossman
      Leandro Glossman almost 8 years
      I see the problem is related with play framework, which its hot deploy feature relies on creating child class loaders for every reload. The class you are passing as parameter seems to have been loaded by a previous class loader instance so now Class<model.User> != Class<model.User>
    • ps0604
      ps0604 almost 7 years
      I have the same problem, did you find a solution?
  • Zoredache
    Zoredache over 12 years
    Some of the features of some receivers include a source selector and , equalizer. You can certainly get an USB connected mixer that can be controlled from the computer and be used to select between many input sources, and adjust various levels, filters and so on.
  • Shikha Gupta
    Shikha Gupta over 9 years
    type is Class here, passed as 'User.class'.