
Sometimes, it happens, you come across some kind of bug for the first time, write off everything to circumstances and forget about it. Then it repeats over and over again, forcing you to start looking for problems and, if possible, to fix them. And when you find yourself in deep night for analyzing dumping / debugging / reading_manuals, it becomes clear that you can’t leave it halfway through and the matter of principle is to bring it to the end.
Such a story happened to me at the moment of review with a colleague of
r3s consumer wireless Bluetooth
speakers Klipsch KMC 3. I was faced with a situation where the “wireless” audio stream began to shamelessly interrupt, it was enough for me to place the sound source behind me. Food for thought was given to me by another Bluetooth audio system, which behaved much better under the same conditions. Such a simple problem degenerated into a dive headlong into the interior of the Bluetooth protocol and the details of transmitting audio with it.
Under the cut of the first part of a series of articles, we’ll easily get acquainted with the main protocols of the Bluetooth stack, dig into the dump of the source and receiver connections, find out the causes of the Bluetooth and Wi-Fi conflict, and find the root of my problem - intermittent sound.
')

Let us leave behind the scenes (or move to comments) the controversy on the topic “why do we need wireless transmission of audio if we can get along with Orthodox wired solutions, saving a lot of money and winning in quality”. We agree that wireless streaming audio from any device, both portable and not so interesting to us, because with it we can:
- Play audio from mobile devices (Google Music + iTunes Match = all media library in the cloud and is accessible from any device) to wireless audio systems and receivers. Let's not forget that the phones are now winning the palm among the users' music tracks carriers;
- Sound spaces in which the installation of wired solutions is difficult for several reasons (kitchen, terraces, balconies, outdoor areas of your country estate);
- Allow guests to “put on their CD”;
- Forget about cradles, 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, one has only to dig deeper.
King bluetooth
The culprit of the celebration is the
Bluetooth technology, which received its life thanks to the initiative of Ericsson back in 1994, then standardized by IEEE (802.15-1) and still being developed by the entire interest group of the
Bluetooth Special Interest Group (SIG) . Currently, the Bluetooth SIG alliance has about 18,000 companies, among which, of course, there are those who produce audio components that can receive a stereo signal wirelessly.
Recently, I got one of these devices. The Klipsch KMC 3 system, a
review of which is on Habré , satisfied everyone except one: under certain conditions, it began to reproduce sound, terribly interrupted. Yuzkeis was as follows: Macbook Air 2012 acted as the source of the audio signal, and it was worthwhile to position it behind your own body 4 meters from the system (read “sit back to the column with a laptop on your lap) as the sound began to be interrupted. The second participant of the Bluetooth contest (review of which is waiting for you at the end of the post) - Edifier Spinnaker E30, also suffered from signal fading, but at the same time to a much lesser extent. The question arose, what could be the reason for the so different behavior of the two systems under the same conditions?
There is a problem with the propagation of the signal, but it was necessary 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 sources - reading the
Bluetooth Core Specification , analyzing network connection dumps and modifying values ​​that are important for audio codecs. To begin with, however, it was necessary to eliminate the possibility of interference between Bluetooth and Wi-Fi.
One kitchen and several cooksIt's no secret that both Bluetooth and Wi-Fi (and many more systems) work in the same frequency range - the
ISM band - within the limits of
2.400 GHz - 2.4835 GHz . Using the same frequency range to transmit information from different systems will inevitably lead to signal
interference , which means data loss. It was to the interference of Wi-Fi and Bluetooth signals that I initially sinned.
ModulationTo effectively transmit a signal (digital, analog) via radio, it is necessary to undergo a
modulation procedure. Let us allow ourselves to lower the subtleties of various processes of modulation of signals and concentrate on the facts that will help present a picture of the spectrum in the average home of the user of our days.
The
802.11n standard (and I believe that 90% of Habr's users will have it deployed at home, although the following is true for 11g) implies the use of
OFDM signal
modulation with the organization of
13 channels 20 MHz wide.
At the same time, the standard 802.11b / g / n provides for the use of one channel throughout the operation time, if its state is considered satisfactory (read “no channel interleaving”).
Bluetooth uses a different approach: the ISM spectrum organizes 79 channels 1 MHz wide, and then, using the Frequency-hopping Spread Spectrum (
FHSS ) spread spectrum technology, the radio receiver and radio transmitter synchronously change the carrier frequency according to a certain pattern at a frequency of 1600 times per second. This is done just to reduce the likelihood of signal overlap in the tiny ISM range.
If you had a spectral analyzer at home, the process of changing the carrier over the entire 2.4 GHz range would look like this:
Randomly scattered red dots - this is the Bluetooth signal that constantly changes the frequency. Green areas are the three active Wi-Fi channels.
Anti-interferenceHowever, the high-speed carrier shift technique does not eliminate interference, but only reduces the likelihood of its occurrence. The chances of a Bluetooth signal getting into the 20 MHz Wi-Fi channel band are still non-zero:
Therefore, in the arsenal of the Bluetooth stack there is an adaptive frequency shift technology - Adaptive Frequency Hopping (
AFH ). The principle of operation of AFH is as follows: out of 79 available 1 MHz channels, channels falling within the range occupied by the Wi-Fi signal are excluded:
The figure above shows how the AFH algorithm corrected the map of channels available for “jumping”, excluding those that were in channel 6 already occupied by Wi-Fi.
But I was not lucky, it was not a matter of signal interference, since I moved the WLAN to the “safe” Bluetooth band of 5 GHz (which, by the way, is the most effective method for eliminating possible problems), and the audio interruptions have not disappeared anywhere. I had to dig deeper.
Parsing Bluetooth dumpSince the problem was not interfering with Wi-Fi, it took a deeper immersion in the materiel. Let me remind you that in terms of analysis, it was interesting that under the same conditions, the two Bluetooth audio systems (Klipsch KMC 3 and Edifier Spinnaker) behaved differently. Klipsch was choking earlier, and to achieve the effect, it was necessary to simply block the body with a straight path to the column at a distance of several meters. Edifier could grunt a couple of times, but after that he continued to confidently reproduce the sound, occasionally interrupting.
Symptoms indirectly hinted at auto-tuning of certain parameters on the part of Edifair and Klipsch’s lack of it due to degradation of the signal quality. To test this theory, it was decided to remove the dump connection of two devices in order to find the source of the problem.
For the purity of the experiment, I turned off the Bluetooth module, deleted Klipsch from the list of paired devices, turned on the “blue tooth”, and, pressing the dump record button, went from searching the device and connecting to it before sending the audio.
Device initializationAfter activating the Bluetooth module, the dump is filled with HCI message records, which for the most part make the module understand what its name is, what MAC address it has, what class of devices it belongs to and includes the radio module itself.
This happens in the form of the HCI Command -> HCI Event dialog.
The stack of bluetooth only indirectly resembles the usual TCP / IP, so seeing the dump without first reading the specification was not successful.
To the credit of the Bluetooth SIG group, I note that the documentation for the root specification and all sorts of profiles is freely available on
the developer portal , and is written in simple and understandable language.
Bluetooth architecture
So my reference book for a certain amount of time was the
Bluetooth Core Specification . The 13 megabyte pdf of six volumes only seems immense at first, but a few chapters will suffice to understand the basic operations and interaction principles of the subsystems.
Core systemIn the process of searching for the source of the problems, I went from top to bottom: when I encountered high-level protocols in the dump, I tried to understand the logic of their work and the purpose of the transmitted parameters.
Certainly, the Orthodox way 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 way I will try to guide you.
The core of the bluetooth - the
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, distinguished into a separate subsystem - the Bluetooth Controller, and everything that is above refers to the Bluetooth Host.
The block diagram of the Bluetooth Core System architecture shows the location of the main architecture blocks at the model levels, denotes user-plane and control-plane traffic between the blocks and, most importantly, gives an idea of ​​the stack hierarchy.
The diagram does not focus on a very important part of the architecture - the Host to Controller Interface (HCI), which ensures the interaction of the Host software subsystem with the Controller iron subsystem. All interaction of the upper levels of the Bluetooth system with its hardware occurs through the HCI commands initiated by the driver. These teams in the dump will meet us all the time.
Let's walk through the main blocks of architecture in order to understand their main purpose:
RFThe
Radio unit (PHY), as befits a resident of the physical layer, is engaged in the conversion of a bit sequence into radio signals. The issues of modulation, spectral characteristics and physics of the bit rate providing processes are all solved at the lower level of the model.
Baseband Layer = Link Controller + Baseband Manager + Device ManagerThe
baseband level is represented in the form of three blocks, the joint task of which is to manage the physical channels (Phy channels), on top of which the physical links (Phy links) are established. Bluetooth addressing, synchronizing device generators, managing access codes to physical channels, searching for devices and establishing a physical channel between them are all tasks of the Baseband level.
Link managerAfter the two lower levels provided us with a physical connection between the master-slave devices, the matter becomes the organization of logical channels, which later become the basis for transmitting application traffic.
Link Manager is responsible for establishing, modifying and releasing logical connections between devices, as well as updating the parameters of physical connections. Link Manager uses the Link Management Protocol (LMP) for this purpose.
L2CAP Layer = Channel Manager + L2CAP Resource ManagerWe transfer to the high-level Bluetooth Host block occupied by the L2CAP level. Logical Link Control and Adaptation Protocol (L2CAP) is a protocol that works on top of the established logical connections, which provides encapsulation, segmentation, and recovery of packet data from all higher-lying applications.
Transport ArchitectureIn the process of exploring the architecture blocks, you could already have a picture of the overall Bluetooth transport architecture, which is a three-tier model:
In the following text, I will use the word “channels” to refer to Channels and “connections” for Links.
The picture above shows the path of the unicast asynchronous traffic along the transport architecture. This type of traffic is typical for the transmission of “packet” audio.
SCO vs ACLIf you look closely at the previous figure, then at the levels Logical Links and Logical Transports the most common abbreviations are ACL and (e) SCO. These are two global types of logical connections between Bluetooth devices that are used to transmit various kinds of traffic from higher-level applications.
The ACL (Asynchronous Connection-Oriented Links) sends asynchronous packet traffic to the connections with the ability to resubmit in case of loss during delivery, segmentation and flow control.
SCO connections, in turn, are essentially organized according to the principle of switching channels 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 the subscriber’s voice from the phone to the headset.
According to the Host Controller Interface architecture, 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 stage of module self-initialization and event-responses to them.
Device discovery and discoveryAfter Bluetooth gathered the “about me” information, I started searching for devices. When you hold the button down to a flashing indicator, the device is switched to the listening channel of the detection channel (Inquiry Channel). When the device hears the access code “answer all” on this channel, it will send information about its presence.
Like any process of accessing the upper levels to the iron part of Bluetooth, everything starts with the command from HCI:
Here the LAP field is of interest. In fact, this is nothing more than the analogue of a multicast address (general access code), having seen that on the detection channel, Bluetooth devices will surely notify you of their presence with a response message.
As a result, all devices that received general access code on their physical channel for detection respond with Inquiry Response messages in which:
specified MAC address of the device, its main and secondary classes (Major Class and Minor Class), as well as supported services.
I singled out 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 A2DP profile.
ConnectionAfter the search procedure, the picture of the world for a 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 the equipment. It is important to note that the physical Bluetooth channels operate in duplex transmission mode (duplex). The use of one physical channel for bidirectional transmission is carried out according to the
time division division (TDM) principle. With this approach, the transmitter and receiver must have synchronized clock generators 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 talk of any initial synchronization between them. Synchronization achieves Link Controller in the process of establishing a connection.
This happens as follows: in the course of the search, the master device receives from the responders, among other parameters, also their clock value. Then, at the connection establishment stage, the master device transmits the estimated clock offset value for the slave device (the 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 remote device identifier - 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 later walk:
If you remember, at the beginning of the article I talked about the Adaptive Frequency Hopping method, which allows you to avoid interference at frequencies already occupied? So, the map of the frequencies used is transmitted in the LMP message Set AFH. In the course of work, I noticed new occurrences of these packets with a different frequency map, which indicates a gradual monitoring of the ether for channels suffering from interference.
The result of the process of establishing a connection will be the assignment of the connection of two Bluetooth devices to the Connection Handle identifier.
PairingOK, 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 trust each other yet, which means that no user traffic is allowed to transmit.
Since Both devices support the Bluetooth 3.0 specification version, then the
Secure Simple Pairing authentication method (and its Just Works submethod) is available for them, allowing them to authenticate and authorize devices without entering any PIN codes.
L2CAP in actionIn the chapter on transport architecture, a diagram of the hierarchy of channels and connections is depicted, on top of which is the L2CAP protocol. It is his turn that comes right after the device authentication processes.
The structural diagram of the architectural blocks of the L2CAP-level tells about its capabilities for segmentation, resubmission, flow and resource management:
It is important to understand that asynchronous data from any applications will be fed to the L2CAP protocol, which will prepare the data for sending to the lower levels of the stack.
In order to transfer from the procedure of pairing devices to a direct information exchange, it would be good to know which profiles are supported by the paired device, 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 devices, the first L2CAP packet appeared, containing the following fields:
The Connection Request command, as suggested by the CO, initiates the creation of a connection with the L2CAP level of the slave device, while the packet structure contains fields of interest to us.
The L2CAP protocol uses the concept of channels, the end points 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) belongs to the signaling messages.
The next important field is PSM (Protocol / Service Multiplexer). The
PSM value indicates which protocol or service we are organizing for the L2CAP channel and, as you can see, we are talking about the channel for the Service Discovery Protocol.
Service DiscoveryL2CAP did a good job and set up a data channel for the SDP top-level protocol, 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 dialog:
- Do you know how to "any service_"?
- yes, I can, and here are its characteristics (otherwise, the answer is “no, I don’t know, ask further”).
I received a negative response to requests for all services except Audio Sink and AV Remote Controller, which means the column is logical, it can only play audio and give control signals to the master device (for example, when you press the pause button on the column, playback at the source is set to pause) ).
After SDP learned about the interlocutor everything that could, it's time to go to the direct transfer of audio, which is responsible for ...Audio / Video Distribution Transport ProtocolThis guy is responsible for organizing and managing audio / video streams. And in my case, it was possible to understand the logic of his work without even plunging into the 160-page specification .The AVDTP operation diagram is pretty straightforward . To start a stream, you need to open two channels: one control (signaling) and one, directly, for the transmitted audio / video data.As we already know, there is no escape from L2CAP, it is through its channels that the traffic of the AVDTP protocol will go.In this case, the L2CAP channel opens with a new PSM value corresponding to the AVDTP protocol.One L2CAP channel opened for signaling messages, the second for AVDTP data, and the third for the Audio / Video Control Transport Protocol (for transmitting signals from the speaker to the sound source) initiated the speaker.Pay attention to the Source CID / Destination CID pairs, these are entry points for L2CAP channels. A pair of Src / Dst CID uniquely identifies the L2CAP channel.After establishing the necessary L2CAP channels, the process of exchanging service messages between AVDTP protocols on both sides of the connection started. Among the service messages worth noting:The Discover team allows you to find out from a remote device, and, in fact, what exactly it can offer as part of an audio / video transmission. In response, a description of the possibilities should come in the form of a list of Service Endpoints.At first glance, it is not clear why the speaker has two points in the role of “audio receiver”. The following pair of messages answers this question:Pay attention to a couple of Min Bitpool and Max Bitpool values, they will soon play an important role.Since Klipsch KMC3 can understand two codecs - an SBC codec that is required for an A2DP device and an optional, proprietary AptX codec - then we see two AVDTP service points, they differ only in the type of codec supported, nothing more.AptX vs SBCAfter receiving information about the capabilities of the service points of the AVDTP protocol, the message Set Config selects the work with the AptX codec.So it was with Klipsch, but Edifier Spinnaker does not support the AptX codec, so its list of service points consisted of exactly one piece with the obligatory SBC (Low Complexity Subband Coding) codec. As a result, the dumps taken when installed to the two systems differed only in the selected codec of the transmitted audio!Okay, but AptX is so heaped up, paid, closed and fueled by CeBITs, why does he, the dog, start to “freeze” in certain conditions, and can you somehow get the Klipsch column to work with the SBC codec to make sure that the problem is in that?To test, I connected to Edifier, repeated the experience with the location of the laptop behind my body while recording the dump, and this is what I saw. Below is a fragment of the AVDTP protocol, which contains the SBC encoded fragment of the transmitted audio.Since
If the SBC codec is open, then in the dump you can see the related information related to the transmitted audio data. The A2DP specification describes in detail the operation of the SBC codec, where you can find out that one of the key parameters that ultimately affect the quality of coding is the bitpool value.From the dump, it is clear that the bitpool value for this portion of traffic is 48, but as soon as I close the path from the laptop to the column, the bitpool value began to decline, accompanied by interruptions and clicks.After the bitpool value had settled at level 30, the clicks were gone, the audio playback was again continuous. Everything indicated that the codec performed auto-tuning, noting the degradation of the signal quality.But have I really introduced such a significant attenuation with my mortal body? Well, time to look at the graph showing the power level of the received signal:A good body, qualitatively introduces attenuation, which codecs stumble upon. The only thing is that the SBC codec has been adjusted to these conditions, reducing the quality of coding, and thus the necessary bandwidth, but AptX, apparently, not.In order to make sure that AptX is guilty, I turned off its support in Mac OS X and started harassing again to Klipsch. Now the SBC codec between the macbook and the column has been agreed, since AptX'a laptop was forcibly deprived. Needless to say, with the SBC-codec, Klipsch has stopped stuttering so much in the face of a drop in the signal power level?How long is it short, but the problem is diagnosed, and because of the closedness of AptX, I had no chance to affect the codec's performance (as can be done with SBC, setting the bitpool values ​​in OS X). Therefore, it remains only not to loom with the bodies on the way of the visible signal or use the trick with disabling the AptX codec in Macosi.In any case, you can be content with the fact that thanks to this problem I learned something about the work of Bluetooth. I hope that after reading this article, and you can say the same thing.PS1By the way, it is not for nothing that AptX asks for money; the transfer of audio through it through Bluetooth is indeed better than with standard SBC. It was possible to feel this by turning off AptX on a laptop and listening to the same tracks on the same acoustics. Subjectively - the difference between SBC and AptX - something like between 192 kbps MP3 and 320 kbps - is noticeable if you listen carefully.AptX is still supported by only a narrow circle of devices , among which there are glands under OS X and top-end smartphones Samsung Galaxy, HTC One. Accordingly, the iPhone and iPad in my environment, precisely because of the lack of AptX, behaved better than the MacBook, since the use of the SBC codec was agreed with them, and the MacBook was crawled with AptX.PS2 Next AirPlay preparation.PS3And finally, a review of Edifier Spinnaker, with which the whole epic of a month’s length began.As I wrote in the introduction, this post initially was not supposed to contain a single screenshot, not a line about the protocols, but something went wrong ...In the comments to my previous review, Klipsch KMC 3 rightly noted that $ 400 for a plastic monoblock column is a bit much. To argue with this is meaningless, since it is worthwhile to hang a wireless label on the column, as the price tag immediately grows to a good hundred or two dollars. But maybe you should not lay out $ 400 for a monoblock from Klipsch, in which the brand itself, look, added $ 50-100, and turn to the products of less famous companies ?So when a colleague asked to help him bring Bluetooth speakers he liked from the USA, I agreed without hesitation. So, as a contender for the recommended wireless audio system up to $ 300, we happened to consider the product from the company Edifier - Spinnaker E30 wireless stereo system .Spinnaker began to share a 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, no one of us experienced any prejudices about Asian roots Edifier. Still, the equal sign between "made in China" and "g #% but" has long been crossed out with good products in the wired field. Moreover, at first glance it becomes clear that with the build quality everything is pretty good here.No burning sensation in the pelvic region, even when we put the spinnakers near the “reference” B & W Zeppelin Air, everything was collected soundly and conscientiously. And to collect, as you can see, there was something - the design of the columns is at least unusual.Tusks, fangs, horns - no matter what kind of associations the guests have, but sea wolves know that the spinnaker is, in fact, one of the sails of the yacht. Forty-centimeter speakers, covered with black silk fabric, definitely look aggressive, and a pair of Spinnakers should fit into the modern interior as well as possible.Let's pay tribute to fashion, a few words about the configuration. After opening numerous packages and boxes on the table, there was a decent pile of wires, because they come with: a connecting cord for communication between speakers, an optical audio cable, a 3.5 mm mini-jack, an RCA cable and a remote control with standard microUSB-USB lanyard.Honestly, such an abundance of wires for seemingly “wireless” speakers at first is discouraging, but in fact, only two cables are enough - the power supply and the 6-pin connecting cord between the speakers. The rest of the cables you get in the appendage and unnecessary in the economy certainly will not.The presence of a mini-jack and optical cables already indicates that the speakers can be connected to the playback source in the old-fashioned wired way, for which the Aux IN / Opt IN port is allocated on the connector part of the right speaker.Attentive reader will pay attention to the port Sub (Line) Out, designed to connect an external subwoofer, which, frankly, would be very useful for a pair of Spinnaker sails. But the “wired” connection is rather a pleasant bonus than the main purpose, which lies in the wireless plane.Bluetooth pairing is absolutely standard: we wait for the blue diode to flash at the peak of the right speaker and wait a couple of seconds until the Secure Simple Pairing procedure connects two devices without entering any PIN codes.As soon as the sound transmission to the external device is activated, the volume will be adjustable using the included remote control, whose button on the upper end plays the role of the Play / Pause switcher, and a long tap switches the input source (bluetooth-line_in).The console is equipped with a non-slip base cover and lights to help detect it in low light conditions. Unfortunately, the backlighting by its brightness level only reflects the charge level of the internal battery, but does not allow us to understand in which sound source mode (Bluetooth or Line In) the audio system is.But whatever the ergonomics and behavior of the console, the most important thing in the speakers is sound. From this point of view, Spinnaker can be viewed as the owner of the three emitters in each dynamics included in the tri-amp scheme! .. But this is written in a
press release (quite filled with technical details, by the way), we will describe the subjective perception of playback quality, because it is doubtful to describe high audiophile matters in a system made of plastic, and even in an “art” format.
The overall impression of listening to songs of various musical directions can be estimated on a ten-point scale by 7 points. Perhaps not for nothing, 3 pairs of emitters in the speakers are equipped with their own channels from the amplifier. On the other hand, “sounding”, as they say in the press release, we would not stigmatize this sound.
The Spinnaker E30 may not boast a record volume margin, but at the volume level up to 90% the sound was not broken in a rattle, and the tracks were played without audible distortion.
The lack of deep bass, such as, for example, KMC 3 and Zeppelin Air, we write off to the absence of a large-sized diffuser, which simply did not have enough space, sacrificed to the god of design. The largest speaker, responsible for low frequencies, is directed downwards and is located at the base of the speakers. Thus, the “sabs” already two, but their small size does not make your floor vibrate.
However, if you have an old sub from any other system, then try to connect it to the spinnakers, this symbiosis should satisfy both you and your neighbors.
The strong side of the spinnakers is, of course, in the “not crushed” middle frequencies and the general sound balance. If the same Klipsch KMC 3 has a crystal sound of high frequencies can even be attributed to shortcomings, then here the top is clearly audible without an annoying protrusion.
Let's not forget about the possibility of exploding a stereo pair. Still, the stereo sound of the speakers living in the same package is monaural at a certain distance from them. Having installed a pair of speakers on different sides of the table, we got a very voluminous sound picture, not tolerating the feeling of sound coming from one point.
The bottom line is an aggressive and memorable design, an unusual remote and a decent sound with the ability to explode a stereo base. I think that in the economy all this is definitely useful. In addition, the connector for connecting an external subwoofer will smooth the lack of bass for those who have built-in woofers will be sorely missed.
There are a couple of questions on the ergonomics of the console 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 for them once to forget about the trouble with wires.
The answer to the question “Can the Spinnaker E30 be recommended in the price segment up to $ 300?” Would be “yes” if the above described disadvantages are not critical for you. This system cost a friend Amazon $ 279.99 +
$ 55 for delivery, in Russia the retail price for Spinnaker E30 ranges from 11-12 tr.
Speaking about the closest competitors, we can note the Creative ZiiSound D3x + DSx kit, which wins in the lower ranks due to the presence of a full-fledged subwoofer, but in the upper and middle parts there is a drawdown. Top-shelf Bluetooth-acoustics, of course, cost more, and sometimes much more expensive, so is it worth overpaying for the brand, when you can get a decent sound quality and a memorable appearance now?
PS4 And, of course, nothing prevents us from talking
about “wireless plastic crafts in the oven, 1) buy Airport Express, 2) shelf acoustics 3) Profit.”