Accurate Tuner Pro with Guitar:
Accurate Tuner Pro is a chromatic instrument tuner, which combines two classical pitch tuning methods: Needle and stroboscope.
The needle enables fast and comfortable rough tuning, while two optional stroboscopic animations facilitate fine tuning. Both methods are used at the same time, so it’s not necessary to choose one of them. Detected notes are shown on a musical staff. Adjustable sensitivity will help in not so quiet environments.
You can set the frequency directly and also set the levels of harmonics and form the wave shape this way (not the wave envelope).
Tamara Volskaia domra, Iskrina Matveeva piano: Tchaikovsky Danse russe:
Filed under My Apps
Last september, when Windows Phone 7.5 Mango update was released, it broked my Accurate Tuner Beta. I’ve analysed the issue and was able to release the update that fixed it.
The two videos below illustrate the situation. First the trouble (Mango is installed on the phone, while the emulator still uses NoDo and works properly):
Then the solution:
I promised to explain it in detail back then, but I lacked the time to do it. Now, when I have sent Accurate Tuner Pro to the Marketplace certification, I can fulfill my promise and write a short series about this issue.
Perhaps it is not so important now, because new Tango update is behind the corner and may fix it. In the last part of this series (3rd or 4th) I will publish the source code for the Carousel object, which is used by Accurate Tuner for harvesting solid sound data from somewhat broken Mango microphone.
To map the problem I have created a simple tone generator. It produces a 500 Hz wave (B4 + 21 cents) with a specific shape: “Normal” wave has the amplitude of 5.000, while every 10th wave has the amplitude of 15.000. The resulting “hedge clipper” shape makes a growling sound and looks like this:
Click on it for a bigger picture.
Wave parameters:
Tone Generator source code:
/// <summary> /// Creates the DEBUG Wave with the debug parameters /// </summary> public void CreateDebugWave() { // DEBUG PARAMETERS _samplingRate = 16000; _frequency = 500; double _normalAmplitude = _amplitude = 5000; double markerWaveAmplitude = 15000; int markerWaveStep = 10; int waveLength = (int)(_samplingRate / _frequency); int markerSampleStep = markerWaveStep * waveLength; double doubleSample = 0; Int16 intSample = 0; byte[] byteSample = new byte[2]; double b = (Math.PI * 2) * _frequency / _samplingRate; int j = 0; // The wave buffer is one second long // // This works for whole number of waves (= integer // frequencies) only. 500 Hz or 440 Hz is OK, while // 261.63 Hz will make a snapping sound every second. // for (int i = 0; i < _samplingRate; i++) { // Marker wave creation // // This is simple and clear, but not very efficient. // It doesn't matter here. // if (i % markerSampleStep == 0) _amplitude = markerWaveAmplitude; else if (i % markerSampleStep == waveLength) _amplitude = _normalAmplitude; doubleSample = Math.Sin(i * b) * _amplitude; intSample = (Int16)Math.Round(doubleSample); byteSample = BitConverter.GetBytes(intSample); _buffer[j] = byteSample[0]; _buffer[j + 1] = byteSample[1]; // DEBUG For debug visualization purposes only _bufferInt16[i] = intSample; j += 2; } } /// <summary> /// Creates and plays the wave. /// </summary> public void Start() { // DEBUG CreateDebugWave(); SoundEffect sound = new SoundEffect(_buffer, _samplingRate, AudioChannels.Mono); if (_isPlaying) { _soundInstance.Stop(); _soundInstance.Dispose(); _soundInstance = null; } _soundInstance = sound.CreateInstance(); _soundInstance.IsLooped = true; _soundInstance.Volume = _volume; _isPlaying = true; _soundInstance.Play(); } /// <summary> /// Stops playing the wave. /// </summary> public void Stop() { if (!_isPlaying) return; _soundInstance.Stop(); _isPlaying = false; }
By the way, the more universal version of this tone generator is included in Accurate Tuner Pro.
Now the interesting part begins: To avoid any mistake in my code I’ve used the standard Silverlight Microphone Sample provided by Microsoft. It uses 500 ms long sound buffer by default. This is the record it produces on NoDo (recorded in the 7.0 Emulator of the 7.1 SDK):
I’ve carefully reviewed much longer part of the record and found no irregularities. This data is solid and can be safely used by Accurate Tuner for two purposes:
Next, let’s run it on Mango:
The growing amplitude is probably caused by the automatically adjusting microphone sensitivity of the phone and is not interesting for us now, it reaches some maximum amplitude and then stays constant. Another thing is more important – I haven’t found anything wrong with this signal too.
Is this the way Accurate Tuner records sound? Almost. 500 ms sound buffer is good enough for most recording purposes, but it is too long for tuners or sound visualizations, because you need fast response in these cases. The shortest buffer length allowed by WP 7.0 and 7.1 is 100 ms and Accurate Tuner uses this buffer length.
So let’s change the buffer length to 100 ms. The picture is wider now, so click on it to maximize it:
Folks, this is clearly wrong!
Apparently, some sound data is lost!
This explains everything: While common sound visualizations used for estetic purposes only will still look as usual, a stroboscopic animation will be inevitably completely broken. FFT will provide more interesting and confusing results, as there are still big portions of correct waves here, but these portions are phase-shifted. The final results will be unstable and very inaccurate, but not completely wrong.
Which is exactly the behavior of the original Accurate Tuner Beta algorithms.
(I’m skipping the chart of the NoDo 100 ms buffer, but believe me the record is perfect and looks just exactly as the chart with the 500 ms buffer. I would also point out that the described issue is present in the WP 7.1 Emulator too, so it isn’t specific for Samsung phones.)
What to do with it??? FFT will work correctly, if only “safe part” of the buffer is used, for example 50 ms. But it will be extremely inaccurate. In fact, even 100 ms is not enough and several buffers must be joined for the analysis to be meaningful. Or I can change the buffer size to 500 ms, but the FTT results would be very delayed in such case and almost unusable. And the wave visualization delayed by 0.5 s will be just comical.
We will see next time.
To be continued.
Filed under WP developement
Accurate Tuner Pro has been finally submitted to the Marketplace certification process! It should be available for download in a few days.
Can you tell 10 differences?
As you can see, on the surface almost nothing has changed. So sorry folks, still no Metro design. (But don’t worry too much as I plan a major design overhaul for the next major update.) This update was about improving the internals. And they have been much improved!
Another source for concern may be the apparently missing ad banner. Is the Pro version paid? Yes, it is. But don’t panic, there is a free ad-supported trial with no time limit.
Free trial version has all the features of the Beta with just one exception – it doesn’t support adjustable base frequency and has A4 fixed at 440 Hz. On the other hand, it has some additional features and even this free trial benefits from the improved algorithm with better accuracy, stability of results, sensitivity and range! The paid version has many new features.
Robert de Visée: Suite en la mineur, Prélude et Allemande, Jonas Nordberg, theorbo:
I’ve just updated the BIOS on my Sony Vaio VPCSB 1 V9E to version R2081H4 using the standard Vaio update tool.
The new BIOS killed the battery.
Filed under Hardware
Nokia has already started to tease its first Windows Phone device – Nokia 800 – in the UK. The ads are very short clips, just about one second long, flashing between other TV adverts on several channels.
MyNokiaBlog was able to join these micro-spots into one, cca 10 second long video, without sound:
The official launch of Nokia 800 and at least one more Window Phone is expected this Wednesday at Nokia World in London.
The countdown has begun!
Filed under Uncategorized
I’ve docummented the issues my Accurate Tuner Beta 1.0.0. has with Mango. Put simply, it does not work at all. After quite a lot of hours, I’ve finally managed to repair it!
Yes, it was more demanding than I expected, but all’s well that ends well. After some final testing I will publish the update, so it will be available in the marketplace in a few days. Also, I will publish my findings about the changed Microphone object behaviour in Mango on this blog.
Let’s comment on the video:
Top: NoDo OS version (WP 7.0 – emulator from SDK 7.0, spring 2011 update)
Bottom: Mango (WP 7.1/7.5 RTM, Samsung Omnia 7)
Select 720p.
When in tune, the Wave above the Needle must stand still.
This beta has better than 0.1 Hz accuracy on NoDo, but doesn’t work at all on Mango. Microsoft has changed the Microphone XNA object behavior. The FFT part (Needle) of the Tuner is less accurate and unstable now, results are completely wrong for lower frequencies. The strobo part doesn’t work at all. And the sound wave has very different shape, it seems to be flipped on both axes…
The app had average rating of 4.88 in the Marketplace before Mango. It will go down fast now, of course. It will take at last a week before the update will be published. I should have test it on Mango before the Mango public release, I know.
But I honestly hadn’t expected this kind of change… I’m trying to figure these changes in the XNA sound processing and to fix it ASAP, but it doesn’t seem to be trivial at first. Does anybody know what has exactly changed with Microphone, XNA events dispatching in Silverlight etc. in Mango?
**********
I hope I’ve already localized the issue – and yes, there is a real change of the Microphone behavior, although it probably still is in accordance with the documentation.
Unfortunately, it’ll take some work to adapt my tuner to that change, but it should be possible. I plan to describe it in my blog later this week.
Filed under My Apps
Note for English speaking readers: If you want to force your Windows Phone to Mango right now, you can! The English instructions are here.
Včera začal Microsoft distribuovat dlouho očekávanou zásadní aktualizaci Windows Phone – verzi 7.1/7.5 s kódovým jménem Mango. Update je však rozloženo do několika týdnů a jen asi 10% uživatelů bylo nabídnuto hned první den. Naštěstí existuje jednoduchý způsob, jak váš telefon k update přinutit.
A užívejte si Mango, které je opravdu chutné! Všechno ve vašem telefonu bude najednou fungovat lépe a první dlouhý stisk tlačítka Zpět (multitasking) je opravdu zážitek.
Jediné zklamání, které mi update připravilo, bylo uzamčení mého zcela legálně, avšak nestandardně, odemčeného telefonu. Nové odemčení je pro mne poněkud komplikovanější, neboť ještě nejsem registrován jako český vývojář. Ale to jsem stejně v nejbližších dnech plánoval udělat.
Naopak velmi příjemným překvapením je česká klávesnice. Domníval jsem se, že bude k dispozici jen na nových telefonech, ale update ji přineslo i na ten můj.

No vida, Mango leželo pod pultem. Tedy přesně řečeno je to přípravná aktualizace 7403. V této chvíli nezapomeňte znovu zapnout internet, já osel jsem to poprvé neudělal a vše bylo třeba opakovat.

Po nainstalování 7403 se automaticky začala instalovat aktualizace 7720, tedy vlastní Mango. Záloha telefonu znovu neproběhla.
Tublatanka, Dnes:
Filed under Windows Phone Experience
Chandrasekar Rathakrishnan, CEO of fusion Garage, presented their new mobile operating system GridOS, used by both Grid 10 tablet and Grid 4 phone, today. GridOS is based on the Android kernel, but it’s not Android. The user interface is… different.
There should be some pictures and an ordering form on their website fusiongarage.com, but I wasn’t able to find it yet. There were no mentions of a promised SDK and very little about native 3rd party software. They will open Grid Shop – their own app marketplace – soon, and Grid OS is able to run side-loaded Android software.
Tegra 2 dual-core, 10″ LCD, 1366 x 768 pixels, 1,3 Mpx front facing camera, 16 GB, microSD slot, Bluetooth, WiFi, 3G optional
Qualcomm dual-core, LCD 800 x 480, rear-facing camera 5 Mpx with autofocus, front-facing camera 0,3 MPx, 16 GB
So I was right it is not Nokia and/or Microsoft.
(Just kidding.)
Green Day, Boulevard Of Broken Dreams:
Filed under Hardware
I guess you have already seen this page: http://www.whoistabco.com/
If not, it may be the right time to see some of their teaser videos. For example that first one, made during Apple WWDC 2011, with the help of skytypers…
TabCo is (probably) a virtual company preparing a big media event for tomorrow - Monday, August 15 at 9 a.m. PDT (18:00 CET) - so less than 24 hours from now. They say they are going to launch a new tablet, that will be… er… different. They have said or shown very little so far, but let’s recap these scarce fragments.
Other observations:
What could TabCo be:
The last option is undoubtedly the most interesting one. Let’s dream about it from a developer’s perspective for a while… This would mean that there will be no big revelation at BUILD in September, exactly one month from now. On the contrary, SDK will be available tomorrow and everybody will download it immediately and will frantically play with it for the next few weeks. Many developers will take their own Windows 8 tablets to the BUILD in fact. Everything will be inside out this time…
Although so blatantly betrayed by Microsoft, most developers will be jumping for joy and consider their dreams fulfilled. This new attack of Metro UI will help Windows Phone sales too…
Top Secret Microsoft’s Corporate Exchange leak:
Steven Sinofsky: We should develop Windows 8 in a stealth mode and in just two years. That would surprise everybody and make the Wow effect we so desperately need. That would be cool!
Steve Ballmer: NO WAY! WE ARE MICROSOFT! WE NEVER! DO! COOL! THINGS!
The Kinks, You really got me:
Filed under Windows 8
My new app has found its way into the Windows Phone Marketplace. Accurate Tuner is a chromatic instrument tuner, which combines two classical pitch tuning methods: Needle and stroboscope.
The needle enables fast and comfortable rough tuning, while two optional stroboscopic animations facilitate fine tuning. Both methods are used at the same time, so you are not forced to choose just one of them.
Detected notes are shown on a musical staff with highlighted positions used by a selected musical instrument. Adjustable sensitivity may help in not so quiet environments.
With an integrated help system you won’t end up lost. Advanced settings take care of specific needs. It is simply worth a try. Download this free beta now!


Filed under My Apps
Great news from Microsoft are coming these days:
Geographic expansion: A large part of your success in Marketplace hinges on your app’s discoverability and reach. I’m excited to announce a number of new consumer and developer markets to help get your app in front of more people.
- 19 new consumer markets. Starting today developers can publish their apps to consumers in 19 new countries, in addition to the 16 that Marketplace already supports. The 19 new markets include Brazil, Chile, Colombia, Czech Republic, Denmark, Finland, Greece, Hungary, India, Japan, Netherlands, Norway, Poland, Portugal, Russia, South Africa, South Korea, Sweden and Taiwan.
- 7 new developer markets: Also starting today developers from 7 new markets (Welcome!) can register in App Hub and submit apps. The 7 new developer markets enabled include: Chile, Colombia, Czech Republic, Hungary, Israel, South Africa and South Korea.
- In a couple of months (early fall 2011), developers will also be able to register from China. We will also expand the registration support already available in India.
But what does this mean in reality? As a developer, I am able to publish my WP apps in 19 new countries now, but are people in these countries able to buy them?
I cannot change my WP device locale now, because it requires a reset to the factory state. But let’s try something much simpler – to change Zune PC client behavior. When you change the locale of your Windows 7, the Zune opens with locally available features. To be able to browse WP7 marketplace, I have my PC set to the UK locale. Let’s look at the Zune menu now:
Switching to the CZ locale…
So, that’s it. We are not there yet, it’s not possible to buy or even browse neither paid nor free apps in the Windows Phone marketplace on a correctly set PC in Czech Republic. Perhaps you may do it from a correctly set phone, but I doubt it. If any of my readers is able to reset his or her phone now and try a Live account from any of the above mentioned countries, please let me know.
The Beatles, Wait:
Filed under Windows Phone Marketplace
As I predicted on Sunday, App Hub was updated. Now it seems that new countries were added:
I didn’t complete the registration yet, so I can’t confirm there is no remaining obstacle for Czech developers, but I don’t expect it.
There are other improvements too, as many devs report. Just an incomplete list for now:
Filed under Windows Phone Marketplace
At Prague Mango Event in June this year, Ondrej Strba from Microsoft said that Czech developers will get official access to the Windows Phone Marketplace in the second half of July.
At MIX 2011, the attendees were told there will be a new version of the AppHub this summer.
@gcaughey Todd announced a new AppHub version for summer during his MIX talk. Seems the right time.
—
René Schulte (@rschu) July 16, 2011
And this notice was posted on the Microsoft App Hub (the gate to the Windows Phone and XBox Marketplace for developers) on the last Friday:
App Hub down July 18 for service upgrades
Submitted7/15/2011Pardon our dust. App Hub will be down for service upgrades for most of the day starting around 10 a.m. PST on Monday, July 18. During this period, developers will be unable to register, to access their Windows Phone developer accounts, or to use the forums.
We appreciate your patience.
So I bet the safe conclusion is that the Marketplace Access for developers from Czech Republic and other new countries is finally coming!
As I reported before, this should be the list of the new countries now eligible for the application submitting:
Sure it’s not a long list and I especially regret Slovakia is missing. However, it is still a pretty good reason for celebration for us!
And let’s hope other AppHub improvements are coming too. For example – the Marketplace can be opened for buyers from new countries. I rather doubt it, because it seems Microsoft waits for new languages to be implemented in Mango before it. Or the submission of the Mango-compatible app could be newly supported. Again, I don’t see this coming, because the Mango developer tools are still in beta and I expect Microsoft to require the final version to be used for the published apps. But on the other hand, just one big Marketplace update this summer would make sense too. Any improvement would be welcomed.
New features? XNA? Maybe my bet wasn’t so safe…
Filed under Windows Phone Marketplace