Wireless sound. Part 1. Preparing Bluetooth

    Sometimes, it happens, you come across some kind of bug for the first time, write off everything on circumstances and forget about it. Then it repeats itself again and again, forcing you to start searching for problems and, if possible, eliminating them. And when you find yourself in the dead of night analyzing the dump / debug / reading_manuals, it becomes clear that you can’t leave the matter halfway and the matter of principle is to bring it to the end.

    This story happened to me at the time of the review with a colleague r3sKlipsch KMC 3 consumer wireless Bluetooth speakers. I was faced with a situation where the “wireless” audio stream began to shamelessly interrupt, as soon as I placed the sound source behind me. Another Bluetooth audio system gave me food for thought, which behaved much better under the same conditions. Such a simple problem degenerated into a dive with its head in the inside of the Bluetooth protocol and the details of the audio transmission using it.

    Under the cut of the first part of the series of articles, we will easily and easily get acquainted with the basic protocols of the Bluetooth stack, delve into the dump of the connection between the source and the receiver of sound, understand the causes of the conflict between Bluetooth and Wi-Fi, and find the root of my problem - intermittent sound.


    We’ll leave behind the scenes (or postpone in comments) the debate on the topic “Why do we need wireless audio transmission, if you can do with Orthodox wired solutions, saving a lot of money and winning in quality”. We agree that wireless streaming of audio from any device, both portable and not very, is interesting to us, because with it we can:

    1. Play audio from mobile devices (Google Music + iTunes Match = the entire media library in the cloud and accessible from any device) to wireless audio systems and receivers. Let's not forget that it’s phones that are now winning the palm among users of users' music tracks;
    2. Sound spaces where installation of wired solutions is difficult for a number of reasons (kitchen, terraces, balconies, outdoor areas of your suburban estate);
    3. Allow guests to “put their CD”;
    4. Forget about the credits, because parting with the phone for many becomes a painful process.


    Thus, at the time of reading this article, we forget about the wired vs wireless holivar and plunge into the world of wireless technologies, in which, as it turned out, there are many interesting details, you just need to dig a little deeper.

    King Bluetooth
    The culprit of the celebration is Bluetooth technology , which gained life thanks to the initiative of Ericsson back in 1994, then standardized by IEEE (802.15-1) and currently developed by the entire Bluetooth Special Interest Group (SIG) . Currently, the Bluetooth SIG alliance has about 18,000 companies, among which, of course, there are those involved in the production of audio components capable of receiving a stereo signal wirelessly.

    Recently, I got one of these devices. The Klipsch KMC 3 system, the review of which is on Habré , satisfied everyone except one: under certain conditions, it began to reproduce sound, terribly interrupted. The user case was as follows: Macbook Air 2012 was the source of the audio signal, and when it was placed behind your own body 4 meters from the system (read “sit with your back to the speaker with a laptop on your lap), the sound began to interrupt. The second participant in the Bluetooth contest (a review of which awaits you at the end of the post) - Edifier Spinnaker E30, also suffered from signal fading, but to a much lesser extent. The question arose, what could be the reason for such a different behavior of the two systems under the same conditions?

    There is a problem with signal propagation, but it was worthwhile in the same conditions to use a mobile phone to play audio, as the problem became much less noticeable. So it was decided to understand the causes and consequences, which led me to the very origins - reading the Bluetooth Core Specification , analyzing network connection dumps and modifying values ​​important for audio codecs. To begin with, however, it was required to exclude the possibility of interference between Bluetooth and Wi-Fi.

    One kitchen and several chefs
    It's no secret that both Bluetooth and Wi-Fi (and many more systems) work in the same frequency range - ISM range - within 2.400 GHz - 2.4835 GHz. The use of one frequency range for transmitting information of different systems will inevitably lead to signal interference , which means data loss. It was on the interference of Wi-Fi and Bluetooth signals that I initially sinned.

    Modulation
    To effectively transmit a signal (digital, analog) via radio, you must go through the modulation procedure . Let us omit the subtleties of various processes of signal modulation and concentrate on the facts that will help to present a spectrum picture in the average user's home of our day.

    The 802.11n standard (and I believe that it is he who is deployed in 90% of Habr’s users at home, although all of the following is true for 11g) provides for the use ofOFDM signal modulation with organization of 13 channels with a width of 20 MHz.

    At the same time, the standard 802.11b / g / n provides for the use of one channel throughout the entire operating time, if its condition is considered satisfactory (read “there is no alternation of channels”).

    Bluetooth takes a different approach: in the ISM spectrum, 79 channels with a width of 1 MHz are organized, and then, using the Frequency-hopping Spread Spectrum ( FHSS ) technology, the radio receiver and radio transmitter synchronously change the carrier frequency according to a certain pattern with a frequency of 1600 times per second. This is done just to reduce the probability of overlapping signals in a tiny ISM range.

    If you had a spectral analyzer at home, the process of changing the carrier over the entire 2.4 GHz band would look like this:

    Randomly scattered red dots - this is a Bluetooth signal that constantly changes frequency. Green areas are the three active Wi-Fi channels.

    The fight against interference
    However, the technique of rapid change of the carrier does not eliminate interference, but only reduces the likelihood of its occurrence. The chances of the Bluetooth signal getting into the 20 MHz range of the Wi-Fi channel are still non-zero:

    Therefore, in the arsenal of the Bluetooth stack there is Adaptive Frequency Hopping ( AFH ) technology . The principle of operation of AFH is as follows: from 79 available 1 MHz channels, channels falling into the range occupied by a Wi-Fi signal are excluded:

    The figure above shows how the AFH algorithm adjusted the map of channels available for “jumping”, excluding those that fell into the 6th channel already occupied by Wi-Fi.

    But I was not lucky, it was not a signal interference, because I moved WLAN to the 5 GHz “safe” band for Bluetooth (this, by the way, is the most effective method for eliminating possible problems), and audio interruptions have not disappeared. I had to dig deeper.


    Bluetooth dump analysis
    Once the problem was not in Wi-Fi interference, a deeper immersion in the hardware was required. Let me remind you that from the point of view of analysis, it was interesting that under the same conditions, two Bluetooth audio systems (Klipsch KMC 3 and Edifier Spinnaker) behaved differently. Klipsch was choked before, and to achieve the effect it was just necessary to block the body direct path to the column at a distance of several meters. Edifier could grunt a couple of times, but after that he continued to play the sound confidently, occasionally interrupting.

    Symptoms indirectly hinted at the auto-tuning of certain parameters on the part of Edifayer and the absence of it in Klipsh during the degradation of the quality of the radio signal. To test this theory, it was decided to remove the dump of the connection between the two devices in order to find the source of the problems.

    Для чистоты эксперимента я выключил модуль Bluetooth, удалил из списка сопряженных устройств Klipsch, включил “синий зуб”, и, нажав кнопку записи дампа, прошел процедуру от поиска устройства и соединения с ним до передачи аудио.

    Инициализация устройства
    После активации Bluetooth-модуля, дамп наполняется записями сообщений HCI, которые в большинстве своем дают модулю понять, как его зовут, какой у него MAC адрес, к какому классу устройств он относится и включает непосредственно радио модуль.
    Происходит это в форме диалога HCI Command -> HCI Event.

    The bluetooth stack only indirectly resembles the usual TCP / IP, so seeing the dump without first reading the specification was unsuccessful.
    To the credit of the Bluetooth SIG group, I note that the documentation for the root specification and all kinds of profiles are freely available on the developer portal , and it is written in a simple and understandable language.

    Bluetooth Architecture
    So the Bluetooth Core Specification has become my handbook for an umpteenth of time . A 13 megabyte pdf about six volumes only at first seems immense, but a few chapters will be enough to understand the basic operations and principles of interaction between the subsystems.

    Core system
    In the process of finding the source of the problems, I walked from top to bottom: meeting high-level protocols in a dump, I tried to understand the logic of their work and the purpose of the transmitted parameters.
    Of course, the Orthodox path is from the bottom up: from the basics of establishing the physical and logical control channels of Bluetooth to high-level protocols based on them. This is the way I will try to guide you.

    The core of the bluetooth - Bluetooth Core System Specification - describes the four basic lower levels of the architecture and the corresponding protocols, with the three lower levels, as a rule, being allocated into a separate subsystem - Bluetooth Controller, and everything above is related to the Bluetooth Host.

    The block diagram of the architecture of the Bluetooth Core System shows the location of the main blocks of the architecture at the model levels, denotes user-plane and control-plane traffic between the blocks, and, most importantly, gives an idea of ​​the hierarchy of the stack.

    The scheme does not focus on a very important part of the architecture - the Host to Controller interface (HCI), which provides the interaction of the software subsystem Host with the iron subsystem Controller. All interaction of the upper levels of the Bluetooth system with its hardware occurs through HCI commands initiated by the driver. These teams in the dump we will meet constantly.

    Let's go through the basic blocks of architecture to understand their main purpose:

    RF
    The Radio block (aka PHY), as befits a resident of the physical layer, is engaged in converting the bit sequence into radio signals. The issues of modulation, spectral characteristics and physics of the processes of ensuring bit rate - all this is solved at the lower level of the model.

    Baseband Layer = Link Controller + Baseband Manager + Device Manager
    The Baseband level is presented in the form of three blocks, the joint task of which is to manage the physical channels (Phy channels) over which the physical connections (Phy links) are established. Bluetooth addressing, device generator synchronization, managing access codes to physical channels, finding devices and establishing a physical channel between them are all Baseband-level tasks.

    Link Manager
    After the two lower levels provided us with a physical connection between the master-slave devices, it becomes the organization of logical channels, which subsequently will become the basis for transmitting application traffic. Link managerin charge of establishing, modifying and releasing logical connections between devices, as well as updating parameters of physical connections. For these purposes, Link Manager uses the Link Management Protocol (LMP).

    L2CAP Layer = Channel Manager + L2CAP Resource Manager We
    move to the high-level Bluetooth Host block occupied by the L2CAP level. Logical Link Control and Adaptation Protocol (L2CAP) - a protocol that works on top of the created logical connections, providing encapsulation, segmentation and recovery of packet data from all overlying applications.

    Transport architecture
    In the process of exploring the blocks of architecture, you could already have a picture of the general transport architecture of Bluetooth, which is a three-level model:

    Later in the text I will use the word “channels” to mean Channels and “connections” for Links.
    The image above shows the unicast asynchronous traffic path for transport architecture. This type of traffic is characteristic for the transmission of “packet” audio.

    SCO vs ACL
    If you look closely at the previous figure, the abbreviations ACL and (e) SCO are most often found at the levels of Logical Links and Logical Transports. These are two global types of logical connections between Bluetooth devices that serve to transmit all kinds of traffic to higher-level applications.

    ACL (Asynchronous Connection-Oriented Links) connections transfer asynchronous, packet traffic with the ability to re-send in the event of loss of delivery, segmentation and flow control.

    SCO connections, in turn, are essentially organized according to the principle of channel switching with a constant bandwidth of 64 kbit / s and synchronous data transfer in time slots. SCO channels, for example, are used by the Headset profile to stream a subscriber’s voice from a telephone to a headset.
    According to the architecture of the Host Controller Interface, each of its commands (HCI command) must be accompanied by a response event (HCI Event). The response always returns the status of the command (Success or error code), as well as, optionally, the values ​​requested by the command.

    Below are three HCI commands at the module self-initialization stage and events-responses to them.

    Search and discovery of devices
    After Bluetooth collected information “about myself”, I started searching for devices. When you hold down the button until the indicator blinks, the device enters the Inquiry Channel. When the device hears the “answer all” access code on this channel, it will send information about its presence.

    Like any process of turning upper levels to the iron part of Bluetooth, it all starts with a command from HCI:

    Here, the LAP field is of interest. In fact, this is nothing more than an analogue of a multicast address (general access code), upon seeing which on the detection channel, Bluetooth devices will certainly notify their presence by a response message.

    As a result, all devices that received a general access code on their physical channel for detection respond with Inquiry Response messages, in which:

    The MAC address of the device, its main and secondary classes (Major Class and Minor Class), as well as supported services are indicated.

    I highlighted two parameters: the first - Sink - indicates that the device can act as an audio signal receiver, and the second - Advanced Audio Distribution - that the device supports the same A2DP profile.

    Connection
    After the search procedure, the picture of the world for the Bluetooth device becomes clear, it's time to move on to the connection phase, or, as this process is called in the specification, Paging.

    A separate physical channel is also allocated for connecting equipment. It is important to note that the physical Bluetooth channels operate in two-way transmission mode (duplex). The use of one physical channel for bidirectional transmission is carried out according to the principle of time division of channels (TDM). With this approach, the transmitter and receiver must have synchronized clocks in order to transmit and receive information at the right time.

    Since each Bluetooth device is equipped with its own generator, then of course there is no question of any initial synchronization between them. Synchronization is achieved by the Link Controller in the process of establishing a connection.
    This happens as follows: in the search process, the master device receives from the responders, among other parameters, their clock value as well. Then, at the stage of establishing the connection, the master device transmits the estimated value of the clock offset for the slave device (Clock Offset parameter in the screenshot above), thereby speeding up the synchronization process of the two generators.

    The most important field of the Create Connection command to connect is the identifier of the remote device — its Bluetooth address (BD_ADDR). Following the command to the controller to establish a connection, the LMP protocol enters the battle, which completely controls the process of organizing logical connections, over which our traffic will subsequently walk:

    If you remember, at the beginning of the article I talked about the Adaptive Frequency Hopping method, which avoids interference at already occupied frequencies? So, the map of used frequencies is just transmitted in the LMP message Set AFH. In the process, I noticed new occurrences of these packets with a different frequency map, which indicates a gradual monitoring of the air for the subject of channels suffering from interference.

    The result of the process of establishing a connection will be the assignment of the connection identifier of two Bluetooth devices Connection Handle.

    Pairing
    Okay, we have established a physical connection with the device, synchronized the device generators and are ready to transfer service and user information in time slots, what is missing? Mating. Our devices do not yet trust each other, which means that no user traffic is allowed for transmission.

    Because Since both devices support the version of the Bluetooth 3.0 specification, they can use the Secure Simple Pairing authentication method (and its Just Works sub-method), which allows you to authenticate and authorize devices without entering any PIN codes.

    L2CAP in action
    The chapter on transport architecture shows a diagram of the hierarchy of channels and connections, at the top of which is the L2CAP protocol. It is his turn and comes immediately after the processes of device authentication.

    The structural diagram of the architectural blocks of the L2CAP level tells about its capabilities in segmentation, resending, flow and resource management:

    It is important to understand that asynchronous data from any application will be fed to the L2CAP protocol, which will prepare the data for sending to the lower levels of the stack.

    In order to move directly from information pairing to information exchange, it would be nice to know which profiles a paired device supports, can it play audio or organize file sharing? These questions are answered by the Service Discovery Protocol (SDP). Since this is a top-level protocol, it cannot do without the services of the L2CAP protocol, which will create a channel specifically for this. Let's see how this happens.

    In my example, after successfully pairing the devices, the first L2CAP package appeared, containing the following fields:

    The Connection Request command, as prompted by the QA, initiates the creation of a connection with the L2CAP level of the slave device, while there are interesting fields in the packet structure.

    The L2CAP protocol uses the concept of channels, the endpoints of such a channel in a master-slave pair are identified using a 2-byte CID (Channel Identification). CID 0x0001 is the reserved channel identifier for terminating the L2CAP protocol signaling traffic, which is logical, because the Connection Request command (Channel ID: 0x0001 at the bottom of the screenshot) refers to signaling messages.

    The next important field is PSM (Protocol / Service Multiplexer). PSM valuetalks about the protocol or service for which we are organizing the L2CAP channel and, as you can see, we are talking about the channel for Service Discovery Protocol.

    Service Discovery
    L2CAP did a good job and organized a channel for transmitting SDP top-level protocol data, which, as we found out, will help you find out which services are supported on the remote device.

    This happens in the form of the following dialogue:
    - Do you know how to “_some services_”?
    - yes, I can, and here are his characteristics (otherwise the answer is “no, I can’t, ask further”).

    На запросы всех сервисов, кроме Audio Sink и AV Remote Controller я получил негативный ответ, а значит колонка, что логично, умеет только воспроизводить аудио и давать управляющие сигналы мастер устройству (например при нажатии на кнопку pause на колонке, на паузу устанавливается проигрывание у источника).

    После того, как SDP узнал о собеседнике все, что мог, самое время переходить к непосредственной передаче аудио, за которую отвечает…

    Audio/Video Distribution Transport Protocol
    За организацию и управление аудио/видео потоками отвечает именно этот парень. И в моем случае разобраться в логике его работы можно было, даже не погружаясь в 160-страничную спецификацию.

    Диаграмма работы AVDTPpretty clear. To start the stream, you need to open two channels: one control (signalling) and one, directly, for the transmitted audio / video data.
    As we already know, there is no getting anywhere from L2CAP, it is through its channels that the traffic of the AVDTP protocol will go from above.
    In this case, the L2CAP channel opens with a new PSM value corresponding to the AVDTP protocol.

    One L2CAP channel was opened for signaling messages, the second for AVDTP data, and the third for the Audio / Video Control Transport Protocol (to transmit signals from the speaker to the sound source) was initiated by the speaker.

    Pay attention to the Source CID / Destination CID pairs, these are entry points for L2CAP channels. The Src / Dst CID pair uniquely identifies the L2CAP channel.
    After establishing the necessary L2CAP channels, the process of exchanging service messages between the AVDTP protocols on both sides of the connection started. Among the service messages it is worth noting:

    The Discover command allows you to find out from a remote device, and, in fact, what exactly can it offer in the framework of audio / video transmission. In response, a description of the features should come in the form of a list of Service Endpoints (service delivery points).

    At first glance, it is not clear why the column has two points in the role of “audio receiver”. The following pair of messages answers this question:

    Pay attention to the pair of values ​​of Min Bitpool and Max Bitpool, they will soon play an important role.

    Since Klipsch KMC3 can understand two codecs - the SBC codec, which is required for an A2DP SBC device, and the optional, proprietary AptX codec - we see two points for providing an AVDTP service, they differ only in the type of codec supported, nothing more.

    AptX vs SBC
    After receiving information about the capabilities of service points AVDTP protocol Set Config message selects the work with the AptX codec.

    This was the case with Klipsch, but Edifier Spinnaker does not support the AptX codec, so its list of service points consisted of exactly one thing with the mandatory SBC (Low Complexity Subband Coding) codec. As a result, the dumps taken during installation to the two systems differed only in the selected codec of the transmitted audio!

    Okay, but AptX is so sophisticated, paid, closed and PR on CeBITs, why it, the dog, starts to “freeze” in certain conditions, and is it possible to somehow make the Klipsch column work with the SBC codec to make sure that the problem is in that?

    For verification, I connected to Edifier, repeated the experiment with the location of the laptop behind my body while recording the dump, and that's what I saw. Below is a fragment of the AVDTP protocol containing a fragment of the transmitted audio encoded by the SBC codec.

    Because SBC - the codec is open, then in the dump you can see the information related to it associated with the transmitted audio data. The A2DP specification describes in detail the operation of the SBC codec, from where it can be found out that one of the key parameters that ultimately affect the encoding quality is the bitpool value.

    It can be seen from the dump that the bitpool value for this portion of traffic is 48, but as soon as I closed my body from the laptop to the speaker, the bitpool value began to decrease, accompanied by interruptions and clicks.

    After the bitpool value settled at 30, the clicks disappeared, the audio playback became continuous again. Everything indicated that the codec performed auto-tuning, noting the degradation of signal quality.

    But did I really introduce such a significant attenuation with my mortal body? Well, it's time to take a look at the graph of the indication of the power level of the received signal:

    A good body makes a qualitative attenuation, which codecs stumble upon. But the SBC codec has adapted to these conditions, reducing the encoding quality, and thereby the necessary bandwidth, but AptX, apparently, is not.

    To make sure that AptX was to blame, I turned off its support on Mac OS X and again began to harass Klipsch. Now the SBC codec was agreed between the macbook and the column, because AptX'a laptop was forcibly deprived. Needless to say, with the SBC codec Klipsch stopped stuttering so much in the face of a drop in signal power level?

    For how long it was short, but the problem was diagnosed, and due to the closedness of AptX, I had no chance to affect the codec's operation (how can this be done with SBC by setting the fork for bitpool values ​​in OS X). Therefore, it remains only not to loom with teles on the path of the visible signal or to use the trick with disabling the AptX codec in makoshi.

    In any case, you can be content with the fact that thanks to this problem, I learned something about the operation of Bluetooth. I hope that after reading this article, and you can say the same thing.

    PS1By the way, AptX is not in vain asking for money; transmitting audio using it via Bluetooth is really better than with standard SBC. It was possible to feel it by disconnecting AptX on the laptop and listening to the same tracks on the same acoustics. Subjectively - the difference between SBC and AptX - approximately the same as between 192 kbps MP3 and 320 kbps - is noticeable if you listen carefully.

    AptX is supported only by a narrow circle of devices , among which we can single out hardware for OS X and top-end smartphones Samsung Galaxy, HTC One. Accordingly, because of the lack of AptX, the iPhone and iPad in my environment behaved better than the MacBook, because the use of the SBC codec was consistent with them, and the macbook climbed with AptX.

    PS2 The next dissection AirPlay.

    PS3And finally, a review of Edifier Spinnaker, with which this whole month-long epic began.

    As I wrote in the introduction, this post was originally not supposed to contain a single screenshot or a line about the protocols, but something went wrong ...

    In the comments to my previous review, the Klipsch KMC 3 rightly noticed that $ 400 for a plastic monoblock column is a bit much. It is pointless to argue with this, since it is worth putting a wireless label on the column, as the price tag immediately rises by a good hundred or two dollars. But maybe it’s not worth laying out $ 400 for a monoblock from Klipsch, in which the brand itself, you see, added $ 50-100, and turn to products from less famous companies ?

    Therefore, when a colleague asked me to help him bring the Bluetooth speakers he liked from the USA, I agreed without hesitation. So, as a contender for the laurels of the recommended wireless audio system up to $ 300, we happened to consider a product from Edifier - the Spinnaker E30 wireless stereo system.

    The company, known to us until now exclusively as a noteworthy manufacturer of wired speakers, with the release of Spinnaker began to share the niche of wireless solutions with products such as Klipsch KMC 3 , Creative ZiiSound , Bose SoundLink , Jawbone Jambox , Samsung DA-E670 and many others.

    At the same time, despite the presence of famous brands in the list of competitors, none of us experienced any prejudices regarding the Asian roots of Edifier. Still, the equal sign between “made in China” and “g #% but” has long been crossed out by good products in the wire industry. Moreover, at first glance it becomes clear that everything is pretty good with the build quality.

    There was no burning sensation in the pelvic area, even when we placed the spinnakers next to the “reference” B&W Zeppelin Air, everything was assembled soundly and honestly. And to collect, as you see, there was something - the design of the speakers is at least unusual.


    Tusks, fangs, horns - whatever associations the guests may have, but sea wolves know that the spinnaker is, in fact, one of the sails of the yacht. Forty-centimeter speakers, covered in black silk fabric, definitely look aggressive, and a couple of Spinnakers should fit perfectly into the modern interior.

    Let's pay tribute to fashion, a few words about the configuration. After opening numerous packages and boxes, a decent pile of wires appeared on the table, because the kit includes: a connecting cord for communication between speakers, an optical sound cable, a 3.5 mm mini-jack, an RCA cable and a remote control with a standard microUSB-USB cable to it.

    Honestly, such an abundance of wires for seemingly “wireless” speakers is initially discouraging, but in reality only two cables are enough - power and a 6-pin connecting cord between the speakers. The rest of the cables you get in the appendage and certainly will not be superfluous in the household.


    The presence of mini-jack and optical cables already indicates that the speakers can be connected to the playback source in a good old-fashioned way, for which the Aux IN / Opt IN port is highlighted on the connector part of the right speaker.
    An attentive reader will pay attention to the Sub (Line) Out port, designed to connect an external sub, which, to be honest, would be very useful for a pair of Spinnaker sails. But “wired” connection is rather a pleasant bonus than the main purpose, which lies in the wireless plane.

    The Bluetooth pairing procedure is absolutely standard: we wait for the blue diode to blink at the peak of the right speaker and wait a couple of seconds until the Secure Simple Pairing procedure connects the two devices without entering any PIN codes.

    As soon as sound transmission to an external device is activated, the volume will be changed using the supplied remote control, whose button on the top end plays the role of a Play / Pause switcher, and a long tap switches the input source (bluetooth-line_in).

    The remote control is equipped with a non-slip base coating and backlight, which helps to detect it in low light conditions. Unfortunately, the backlight with its brightness level only reflects the charge level of the internal battery, but does not allow one to understand in what mode of the sound source (Bluetooth or Line In) the audio system is located.

    But whatever the ergonomics and behavior of the console, the most important thing in the speakers is still sound. From this point of view, Spinnaker can be seen as the owner of three emitters in each speaker included in the tri-amp scheme! .. But as they say in a press release (very full of technical details, by the way), we will describe the subjective perception of playback quality, because to describe high audiophile matters in a system made of plastic, and even in the "art" format is a dubious matter.

    The overall impression of listening to compositions of various musical directions can be estimated on a ten-point scale of 7 points. Perhaps not in vain 3 pairs of emitters in the columns are equipped with their own channels from the amplifier. On the other hand, “crystal”, as they say in the press release, we would not brand this sound.  

    Although the Spinnaker E30 cannot boast a record volume margin, but at a volume level up to 90%, the sound did not break into wheezing, and the tracks were played without audible distortion.

    The lack of deep bass, such as that of the KMC 3 and Zeppelin Air, is attributed to the lack of a large-sized diffuser, which simply did not have enough space sacrificed to the design god. The largest speaker responsible for low frequencies is directed downward and located at the base of the speakers. Thus, there are two “subs”, but their small size will not make your floor vibrate.
    However, if you have an old sub from any other system, then try to connect it to spinnakers, such a symbiosis should satisfy both you and your neighbors.  

    The strong side of spinnakers, of course, is in the “not crushed” mid frequencies and the overall sound balance. If at the same Klipsch KMC 3 crystal high-pitched ringing can even be attributed to shortcomings, then here the tops are clearly audible without annoying protrusion.   

    Let's not forget about the possibility of diversity stereo pair. Still, stereo sound from speakers living in the same housing turns out to be monaural at a certain distance from them. By installing a pair of speakers on opposite sides of the table, we got a very voluminous sound picture, not putting up with the sensation of sound coming from one point.

    The bottom line is an aggressive and catchy design, an unusual remote control and decent sound with the ability to explode a stereo base. I think that in the economy all this will definitely come in handy. In addition, the connector for connecting an external subwoofer will smooth out the lack of bass for those who will be sorely missed by the built-in woofers.

    There are a couple of questions on the ergonomics of the remote control and the device of the lodgement for cables in the aluminum base of the speakers, but it is enough to choose the most comfortable location once to forget about the trouble with wires once and for all.

    The answer to the question “can I recommend the Spinnaker E30 in the price segment up to $ 300?” Will be “yes” if the above disadvantages are not critical for you. Comrade, this system cost Amazon $ 279.99 + $ 55for delivery, in Russia the retail price of Spinnaker E30 ranges from 11-12 tr.

    Speaking of the closest competitors, one can note the Creative ZiiSound D3x + DSx kit, which wins in the lower due to the presence of a full-weight subwoofer, but a drawdown is felt in the upper and middle parts. Top-shelf Bluetooth speakers, of course, are more expensive, and sometimes much more expensive, so is it worth it to pay extra for a brand when you can get decent sound quality and a memorable appearance now?

    PS4 And, of course, there’s nothing stopping you talking about “wireless plastic crafts in the oven, 1) we buy Airport Express, 2) shelf speakers 3) Profit.”

    Also popular now: