Archive for the ‘Other’ Category

New narration panel

Wednesday, May 26th, 2010

We try to be very efficient at Hear a Blog. We try to not develop a tool until we need it (although sometimes it’s just too much fun and we code it anyway). Something that have been clearly needed for some time already was a better narration panel so we created.

This tool is only for the narrators, of course, but we still wanted to share it, so here’s a screenshot of it.

Seedcamp Paris was not what we expected

Sunday, April 25th, 2010

We had our expectations going into Seedcamp, who wouldn’t?
It was nothing like we expected, however, but the truth is, it was something much more valuable that we would’ve thought.

Through the mentoring sessions, we realized we hadn’t done some of the things we should have before going to Seedcamp. But most importantly we found out we were doing things we didn’t need for our business, or we were doing them in the wrong order.

Thanks to Seedcamp, our roadmap changed completely, we got weeks ahead in launching our new product, Glycast, which is now going to be at the same time simpler, more focused, and more valuable.

We haven’t yet talked publicly about what Glycast is at all, and I’m glad because now it’ll be something different. We still can’t talk but there were some tweets about it that you can try to dig up if you are really interested.

Our little piece of humble advice to other teams going to Seedcamp: Go with your mind really open. It will probably not be what you expect it to be, it will be something completely different, something you don’t know you need, but much more valuable than what you hoped to get out of it.

Oh! and the trip got even more interesting thanks to the volcano.

Hear a Blog goes to Seedcamp Paris

Monday, April 12th, 2010

We’ve been selected as one of the 20 finalist for the Mini Seedcamp Paris. We are very excited about it. We are going to present our next product that for now it’s secret (hint: Glycast).

We are having very busy days while preparing for it. It’s amazing the amount of work needed for an event. It’s our first event, so maybe the second one will be only a fraction of the effort.

One side effect of preparing a 5 minute presentation was distilling our ideas to its essentials. Find what’s core and what’s a side feature. What’s worthy of mention and what isn’t. I wouldn’t lie if I tell you that this is helping shape or roadmap. One of the founders even said “I now believe more in the idea”.

Content is global, but advertisement is local

Wednesday, February 3rd, 2010

Content is global. In every corner of the world there’s people wanting to read, listen to and watch content produced in every other corner of the world. The only thing that slows it down is language; cultural differences not so much.

Advertisement is not global. A restaurant wants to advertise only to people that could actually go to it, not to people that lives across the continent. Even global companies run very different advertisements in different countries and regions. In some places, competitive advertisement (where you mention your competition) is illegal, in others it’s the norm, maybe in some it’s allowed, but considered low. Nudity is OK in some places, illegal in others. Advertisement is local.

During the old-media days, that wasn’t a problem because content distribution was local. TV, radio, newspapers, magazines could reach only people in some well defined region. Content was mixed with ads in each region and shipped or broadcasted. No issues there.

But content distribution today is global and it’s called the internet. And this seems to confuse and startle a lot of people. What do we do with ads? Do we show USA-based ads in all the world? That means that most people won’t care about the ad, and even if they do, they won’t be able to buy the products. A huge waste. The solution: let’s break the internet into regions and limit the distribution of our content. Wrong!

We are not mixing ads and content manually at a central location an then shipping it anymore. Today we have these amazing machines called computers that can mix ads and content every single time a viewer or listeners asks for the content; and every single time the result can be different. A New Yorker using a Mac listens to one ad, a New Yorker using a PC listens to another ad, a Berliner listens to another ad, and an Australian to a different ad. That is how we deliver ads at Hear a Blog. Our content is for the world, and our ad market is also the world.

Mixing audio in C# using NAudio

Thursday, January 7th, 2010

Processing audio is one of our core tasks. When you create a startup there are a thousand things that you could do manually or automate. Which ones do you automate? We decided to automate as little as possible. Yes, you’ve read it correctly; as little as possible.

Automating is great because you solve a problem once and you don’t have to do it ever again. If you know that you’ll have to do it again. In a startup, you don’t know what you’ll be doing tomorrow. They are higly experimetal endevours. We decided to do all the audio processing by hand; and we did it until Audacity, an excellent audio processing tool, became a recurring character in our nightmares.

We decided to automate. We picked the library NAudio because it’s free and apparently capable of doing what we need. We struggle with it at first, but it turned out there was a bug, which was solved quite quickly by the developers. Surely they deserve all the donations they can get, as soon as we are profitable, we’ll make one.

Our process is simple:

  1. The intro starts
  2. 6 seconds after that the main audio starts
  3. 30 seconds after the main audio finishes, the outro finishes.

That ensures the proper synchronization of our amazing intro and outro. And the code is quite simple.

First, we load the intro, the outro and the main audio:

var intro = new WaveFileReader("Intro.wav"));
var outro = new WaveFileReader("Outro.wav"));
 
var audio = new WaveFileReader(OriginalAudioFileName);

Then we create the mixer stream:

var mixer = new WaveMixerStream32();
mixer.AutoStop;

Out of the loaded audios we create new ones with the proper time offsets (note: the intro doesn’t need an offset):

var audioOffsetted = new WaveOffsetStream(
   audio, TimeSpan.FromSeconds(6), TimeSpan.Zero, audio.TotalTime);
var outroOffset = TimeSpan.FromSeconds(6) + audio.TotalTime +
   TimeSpan.FromSeconds(30) - outro.TotalTime;
var outroOffsetted = new WaveOffsetStream(
   outro, outroOffset, TimeSpan.Zero, outro.TotalTime);

All our wavs are stored as 16bit, but the mixer expects 32bit wavs, so we convert them before adding them to the mixer:

var intro32 = new WaveChannel32(intro);
intro32.PadWithZeroes = false;
mixer.AddInputStream(intro32);
var outro32 = new WaveChannel32(outroOffsetted);
outro32.PadWithZeroes = false;
mixer.AddInputStream(outro32);
var audio32 = new WaveChannel32(audioOffsetted);
audio32.PadWithZeroes = false;
mixer.AddInputStream(audio32);

Pad with zeros is set to false because otherwise you end up with pretty big files. When we forgot that we ended up with a 10GB wav, not sure if we stopped it or it crashed.

Once our mixer is set up we save that wav to a temporary location

WaveFileWriter.CreateWaveFile(tempwav, new Wave32To16Stream(mixer));

tempwav is the full file name of the temporary wav. Note that we go back to 16bit wavs. After that comes the ugly part of converting to MP3 which is left as an exercise for the reader.

We hope you find this information useful.

The age of wasting time is over

Thursday, May 21st, 2009

Zürich tramIt is almost unbelievable that not so long ago we would waste our time whenever we were doing mindless activities like house chores, driving, running. In an effort to try to fill that void we would consume whatever the big media wanted to feed us, without question. Now we have a choice, now we have more choice.

The devices we carry in our pockets get smarter and smarter. Today they can contain whole libraries, thousands of hours of music or podcasts, even movies! The only reason we can’t say that we are at edge of carrying the whole production of human kind, be it music, movies, books, etc in our pockets is because the rate of production is accelerating as much as our technology.

We are entering the age of participation and that means we’ll have much more interesting and much more choice of content to fill the mindless voids of our lives. More than that, we won’t be filling the voids to keep us entertained but to learn, grow, improve. We’ll start searching for voids to fill with such a rich experience.

Blogger Character

Subscribe

Search


Recent Comments

  • Michele Vitale: hallo Pablo and Daniel, congrats for your post, I agree 100%...
  • pablo: As expected, Apple already broke the protocol for iTunes, so Palm Pre...

Categories


Archives