Steffest Digitale Pulptuur
Je bekijkt alle berichten met de tag: "in English".
Bekijk terug alle berichten.

Bassoon Tracker

Presenting a new project:

Bassoon Tracker!

It's a Browser based old-school Amiga Music Tracker in plain old javascript.

Bassoon Tracker

If you have ever heard of Protracker or Fasttracker, then you know the drill,
if not, then you are probably too young :-)

Check it out at http://www.stef.be/bassoontracker/

Tracker music originated way back in 1987 on the Amiga computer.
This was an era where PC's only made bleep sounds.
Even as the Atari could produce some funky chip sounds, then there was this all-singing-all-dancing Amiga machine that could produce 4 channel wave-audio.
Ok, it was still 8-bit sound, but suddenly everybody could access a digital music creation tool for an affordable price where previously you would have to spend a fortune on hardware samplers and midi interfaces to get the same possibilities.
My first sampler I soldered myself: You could plug it into the parallel port of the Amiga to "record" analog audio signals into 8-bit samples. It produced very low quality samples, but ohh... the wonder of it all!

It also was en era where user interface design was non existent so yes: the interface is a bit ... "special" :-)

Bassoon Tracker Sample Editor

Tracker programs where made by developers for developers: You don't enter notes on a musical bar, you enter notes as numbers in a grid with your computer keyboard and you apply effects by entering even more numbers.
All in hexadecimal of course, as plain decimal number are for pussies.

I especially like the format because you sort of get the sheet-music AND the instruments together with the song.
If you hear a cool piece and go like "Wow, how did they do that?" you can jump right in and examine what samples are used and what effects are applied.
It's like an open-source music format where you can do a "view source" to see exactly how it's done and fiddle with it, much as you can do with any website or web application.

Just like much of my early javascript and css knowledge was build by inspecting the source of other applications, much of my early musical knowledge was build inspecting mod files on the Amiga.

The golden age of the Amiga is long gone, but the tracker format lives on. There have been countless spin-offs and remakes.
Even in modern audio software like Renoise, Radium and Sunvox the tracker spirit is present.
And of course there's openMPT: It doesn't have a cool and snazzy interface but it's the most compatible and complete true tracker around.

Remember: these are not just mp3 files you hear, the music is reproduced using samples that are played and manipulated in sequence in real-time.
This is why mod files in general are quite small, making them perfect for (early) games and other projects where file size is important.
Even the super popular Unity game platform still has support for tracker formats

Playing mod files in a browser is nothing new, but still I wanted to create my own tracker for the following reasons:

  • I wanted to research Web-Audio, especially real time audio manipulation.
  • I wanted a real tracker where you can open, edit and save mod files, not just a player.
  • It should perform well on mobile browsers.
    Most mod players don't work that well on mobile browsers.
    They tend to implement a very low level way of handling audio, doing the resampling and mixing all in the javascript layer, maybe because the code is ported or recompiled from other platforms.
    I took a high-level Web-Audio approach which makes it perform really well on mobile browsers. Even if the UI slows down, the music should never stutter.
  • I wanted to build a SCALABLE cool retro user interface.
    Most old-school trackers have a fixed size user interface.
    I wanted a pixel-retro interface that scales with the screen.
    You could call it "responsive design" but then for HTML canvas :-)
    That's a pretty cool feature even if I say so myself!
  • I wanted to have a decent music playback engine to be able to build upon: a drum-sequencer? a midi-player? real-time online collaboration? all rather straightforward once the main playback engine is in place.

Anyway - here are some examples!



Even more?
The ModArchive hosts thousands of tracker songs and they have an API so you can directly access them from within Bassoon Tracker.

The source files are available on GitHub.


Have fun, and if you think of any cool feature you're missing: let me know!

Tags: in English, Music, ProgrammingGeef je reactie (1)
 

Physical buttons for your Sonos

I totally love my Sonos system.
The Sonos players are expensive but they are worth every penny and i haven't regretted any of my Sonos purchases for a minute.

There's one thing missing though ... hardware buttons!
Even as a smartphone or tablet to control your appliances is perfect (remember 2009?), sometimes you just don't have your smartphone ready at hand and you find yourself hunting for your smartphone to control your Sonos.

Yes, each Sonos has some hardware buttons, but they are only used to play/pause the current song, or to adjust the volume of that particular player.

Enter D.I.Y.
I'm a big fan of old tube-based radio's. If they are not too far gone they get repaired, otherwise they just look cool.
One particular little radio-bugger was beyond salvation and received another purpose: controlling the Sonos with some presets, volume and play/pause with its old-school tactile click-clack buttons.

The final contraption looks like this:
Sonoscontroller main

very incognito. looks like a radio, no?

On the inside the buttons are wired to a little Arduino.
When you press a button or turn the volume knob, one of the digital or analog inputs of the Arduino is activated, allowing you to define a resulting action in software.

Sonoscontroller hardwarebuttons

 

There's a little WiShield attached to the Arduino allowing it to communicate over wifi with other devices.
Although it's possible to talk to the Sonos devices directly using the UPnP protocol, it's easier to use a some sort of middleware like the excellent Sonos Http Client by Jimmy Shimizu .

Sonoscontroller arduino

 

The WiShield is rather old in terms of IT-gadget-age and its libraries are not compatible with the current generation of Arduino IDE.
I had to patch them a little to make them work on Arduino 1.x and up. You can find my fork here.

The little Arduino sketch that controls everything is also on my GitHub.

A little status led completes the setup, giving some feedback on your actions.

Sonoscontroller colors


With the radio buttons i can now activate the 5 presets we use the most, change the volume of the grouped sonos speakers and pause/play everything.
The presets are currently 3 radio stations (Studio Brussel, Radio 1, Radio Nostalgie), the Spotify favourite list (starred tracks) and a random Spotify playlist.

Due to some wonderful coincident the labels of the buttons also EXACTLY match the preset they trigger:

Sonoscontroller button map

How convenient!

The concept is a bit hard to explain to people who don't have a wireless speaker system.
Most of the time they just stare blankly and go
"Uhm ... so you've build a radio that you can use to ehm ... turn on the radio? ... Ok ... cool ..."

Exactly!
Just like software controllers as Ableton Live end up up creating matching hardware controllers with LOTS of buttons, let's hope this is the start of a trend.
There's nothing like the feeling of pressing a big chunky button down and make it go *CLACK* , far more satisfying than using the non-tactile buttons of a touchscreen controller ... .

Hmm, I still have this thing somewhere in my garage ... what still needs controlling?

 

Tags: Arduino, in English, Programming, TinkeringGeef je reactie (2)
 

Airwave Pong Style!

Wave you hands in the air and pong it like you just don't care!

I like old stuff: it has a story, it is used. it has flaws.
And exactly those imperfections are interesting. Waba-Sabi you know?

That's why I ditched all my CD's and moved back to Vinyl,
and that's also why In my opinion most "pre-computer music" sounds better.

When you take a basic step sequencer or midi program, it's a robot: all notes are aligned on a fixed grid and it usually takes some effort to get a "human feel" to your music.


Now what if you could ease it up a bit in a fun way?
Let's take the graphical representation of a "beat" in most common step sequencers.
and let's take this thought one step further: the graphical representation defines the music, right?
So what if we alter the graphics, would the music change too?
For example, if we want to add a fade, we can just as well use photoshop to add some blur, right?

And if we want to loosen up that fixed grid, why not use a graphical filter to make it more "wobbly"

This way we can use graphical tools to mold your music into a more organic shape.

And more!
What if we could "read" any image in a musical way?
An image consists of lot's of coloured dots, each dot has some info we can use. on a computer screen, this is for example the amount of red, green and blue and the transparency.
We can sample that info from an image and use it for something musical.
An example: move you mouse over this image of a jungle, to explore it in an audio-way. (Well ... after you click on it to open the demo, right?)


To pour that into something musical, we can use "the bouncing ball" effect: a ball bouncing around in a rectangular box has 2 rhythms that are both fixed but as the sides of the box are not equal, the rhythms are constantly shifting.
It has the predicable structure of a beat box, but also the unpredictability of 2 patterns intermingling: Exactly the interesting effect we are looking for.
Try it out for yourselves!

(Seriously: leave it running on chrome or safari for a few hours: it's very relaxing!)


Of course we don't have to use a static image, we can use a video or ... a camera!
That is when things really get interesting: when you connect a camera as your graphical/musical input source, you can interact with your musical model live, in front of your camera.
Add a little motion-tracking and color-tracking, and you get a pretty accurate way of triggering musical events using your webcam.
To go all the way back to music software, we can even add some MIDI to trigger midi events using your webcam, and to record everything you do in your midi sequencer to take it further along towards a full musical production.

Wham! Before you know it, you got yourself a playful musical instrument.

Of course, it's a bit hard to control. It's probably wise to limit yourself with some quantization or some predefined chord schematics to get the sound you want.

Fiddling around with all my prototype toys, I created this demo song - I call it "Airwave pong" (You now: Wave you hands in the air in front of your webcam - combined with pong)

To be honest, I had to do a lot of post-processing on the midi data ... my motion tracking routines are somewhat crude and fly all over the place.

If you want to try it out for yourself, come find me a Barcamp Antwerp 7 this saturday, where I will be doing a live demo and will release all the tools I used.

Yes indeed: barcamp STILL is one of the most inspiring events EVER.
The concept is simple: short and open talks about anything you're passionate about. The presentations won't be perfect, but they will be real and honest, which makes them far more valuable then about 90% of al other talks on "professional" events.
So if you happen to be in the vicinity of Antwerp, do yourself a favour and drop by #BCA7
I can't wait !

Foto door Simon Schoeters

Tags: Graphics, in English, Music, Programming, Tinkering, VideoGeef je reactie (0)
 

My Little DrummerBot

Yay! finally took the time to finish a little Arduino project.
It's a another bot, more specific: a web controlled drummerbot!

Yes yes, the same old trick: web interfaces to physical objects: Me LUVS them.
Give me an Arduino and a browser and I'll build you your rainbow

Hey, I feel a song comming up!

 



Tap the drum pattern on your phone and this little bot will rock it!

drummerbot 



You control it like most drum computers: you draw the beats on a pattern of sixteen dots, perfectly suited for generic 4/4 rhythms.
There a 8 lines, each controlling 1 servo motor.

Most of the servo's have a percussion item both on the left and the right, that's why the pattern buttons have 3 states: off, left, right.
 That makes 14 distinct percussion sounds for the drummerbot.

The pattern in the webbrowser is packed into a string, which get send to the Arduino via HTTP.
You can use a wifi module and a http server on the Arduino, or you can use another device attached to the Arduino through a comm port.
The Arduino receives the string, unpacks it back to a pattern and simple loops over the steps controlling each servo.


drummerbot_grid


the "DrummerBot Step Seqeuncer V 0.01 very-much-alpha" page is here

You can also download the Arduino code here.

I must admit: the drums sound a bit dry without amplification though.
I recorded everything into Ableton Live and did the final mix there. (Shocking, right? The videoclip is actually NOT a live performance :-) )

I'm specifically fond of the "Horns"
They are 2 little fans with a servo pushing a piece of plastic against the blades.
A hell of a noise but when you add heaps of fuzz, chorus and overdrive effects they are pretty convincing.
I call them F*CK-YEAH-HORNS

If you want to jam along yourself: hop over this saturday to Barcamp Antwerpen, where I'll be giving a presentation with/about the bot.

Let's play!

Tags: Arduino, in English, Music, Programming, TinkeringGeef je reactie (4)
 

Warning! contains facts, analyst says

Analyst says that 50% of you will read this blogpost.
How about you, are you reading this post?

This is part 2 of the "How to be a full time tech blogger" series.

I've done some extensive analysis myself by reading less then half a dozen blogposts - in specific, 4  blogposts about the analysis of the effect of the new iPad.
Boy Genius reports: "Canaccord Securities analyst Mike Walkley says ..." that "Android tablets can’t compete with the iPad"
Meanwhile, just one day before, the same blog claims that "Analytics firm Strategy Analytics reports ..." that "Android tablets finally dent iPad market share"
At the same time, "global market intelligence and consulting firm IDC" predicts that Android tablets will overtake the iPad in 2016.
Hey, but what do they know, they're just market intelligence and consulting dudes, not analysts like "Needham analyst Charlie Wolf" who sees that "Apple’s iPad will still dominate tablet market after a decade"

Confusing? not at all, that's the beauty of it: since everything is an opinion, everybody is right!

Currently I'm writing a whitepaper on a method of analysis of technology related articles aiming to chart the relationship between relevant info and specific vocabulary,syntax and grammar.
I don't have any hot graphics for you just yet, but I do have some useful insights I'm willing to share:

  • the amount of the word "analysis" seems directly proportional to the amount of "IMPORTANT RELEVANT INFO"  in the article
  • the location of the word "analysis" is a duality: small to normal amounts of "IMPORTANT RELEVANT INFO" seem to prefer the word "analysis" at the start of the sentence but for the greatest impact, the really big "IMPORTANT RELEVANT INFO" put the word at the end, right after the comma. e.g. "in 4 decades time, plain paper will be completely replaced by electronics, analyst says"
  • Every "call to action" doubles the "IMPORTANT RELEVANT"-value of the preformentioned IMPORTANT RELEVANT INFO.

Let me clarify that last point.
Every writer knows that every blogpost should end with a big fat "Call to Action" - right?
No post is worth reading - let alone worth writing - without one.
Don't take my word for it - everybody says so
To really spice up your point, you must engage your readers, pull them in, get them clicking - and the ultimate weapon of choice is "ask them for their opinion so they can be an authorative analyst too" , right?

It's all a matter of efficiency.
What's the most time consuming part of writing non-fiction articles?
It's checking the facts.

Now here it is: the golden tip:
Everytime you write about what someone else says or predicts or sees some interesting correlations happen

  1. You don't have to hunt for news yourself as someone else already has written it down for you
  2. There are no facts. Ergo:  you never can go wrong.
  3. Lifting the simple fact of fact-checking out of the equation, cuts your valuable writing time in half.

That's not a Win-Win , that's a Win-Win-Winning!
Cover it up by asking your reader for their analysis and BOOM! the easy-peasy never-wrong instant formula for filling up your tech blog.

Everyone can do it - so can you.

So, What do you think?
Aren't you glad you've read this highly valuable important relevant piece of info?

Tags: Blogging, Gezeur, in EnglishGeef je reactie (3)
 

whatever versus whatever

Marco Arment "translates" (or trashes) The Ars Technica Galaxy Tab 10.1 review.

Translation: Android tablets have managed to copy the iPad's hardware well enough - the easy part - but have failed to provide good software and significant third-party app choice - the hard part.

So, with similar hardware with similar capabilities selling at similar prices, why should someone choose an Android tablet over an iPad?

Only die-hard Android fans should buy this, and even most of them won't enjoy it.

Dude, why so narrow minded?
You love your iPad. Good for you.
Why is it so hard to see that other people have other needs, tastes and preferences?
The ongoing Android versus IOS debate is a moot point.
You know that shouting game? 2 groups of kids shouting which is the better color, Red or Blue
Same thing.
(and FYI, scientific study shows that red seems to have the upper hand )
It's like arguing which soccer team is better, FS Barcelona or Manchester United.
Which is the better car? BMW or Mercedes ?

In fact: even more scientific studies point out that the love for all things Apple is like a religion
No point in arguing.
People are grasping at whatever they can just to defend "their side": objectivity is for the weak!

I too have my preference and without emotional arguments I can simply observe my own behaviour:
I'm not a die-hard Android fan but I'm a die-hard tablet fan.
I have both an iPad and Android tablets in various sizes.
The iPad is a very nice toy and yet: when I crash in the couch, when I'm on the train, when I'm answering nature's call in the bathroom, when I'm in a meeting ... it's an Android tablet that's with me.
As smooth and fun as the iPad may be, the Android tablets are just more functional and easier for the things I want to do.
I'm not saying an Android tablet is better, I'm saying it's better suited for me.

If mister Arment can't see why some people prefer an Android tablet over the iPad then he certainly isn't troubled with an overly broad perspective.
Oh well, each to his own.

but if we all can agree that this debate is pointless, let's avoid polluting the interwebs (and my feedreader) with such garbage and focus on building kick ass applications, shall we.
On whatever platform, using whatever technology.

Tags: in English, MobileGeef je reactie (6)
 

Closing down Telenet Yelo

As somewhat expected, Telenet didn't took long to respond to this article.
Here's the letter (In Dutch)

 

Mechelen, 20 april 2011
per post en per mail

Betreft: Yelo-applicatie

Geachte heer,

Wij verwijzen naar uw blogpost http://blog.stef.be/YeloMobile.

Na onze vorige waarschuwingen i.v.m. digiprogrammer dienen we 
opnieuw vast te stellen dat u de gebruiksvoorwaarden van de
Yelo-applicatie miskent. Het mogelijk maken van Live TV
streaming naar andere devices zonder toestemming van Telenet
is een duidelijke inbreuk op deze gebruiksvoorwaarden. Wij stellen u thans formeel in gebreke bovenvermelde activiteiten
onmiddellijk stop te zetten. Wanneer u deze activiteiten niet
onmiddellijk staakt, zullen wij niet nalaten uw toegang tot de
Yelo-applicatie te beëindigen en gerechtelijke stappen te
ondernemen. Bovendien zal u Telenet dienen te vrijwaren en
te vergoeden voor elke schade, verlies, kost, vordering of uitgave
die voortvloeit uit het oneigenlijk gebruik van de Yelo-applicatie
door uzelf of door anderen. Volledigheidshalve wensen wij u er op te wijzen dat het beschikbaar
maken van Yelo op Android devices slechts mogelijk is wanneer er
sluitende afspraken zijn met de rechtenhouders. Op dit ogenblik zijn
deze afspraken er nog niet. Acties zoals deze maken de afspraken
rond copyrights erg complex en hebben een contraproductief effect. Onderhavig schrijven geldt als formele ingebrekestelling als naar
recht en wordt u verzonden onder voorbehoud van alle rechten en
zonder enige nadelige erkentenis. Inmiddels verblijven wij, Met de meeste hoogachting, Voor Telenet nv, xxx xx xxxxx, Legal manager

 

Oh well ...
I'm a nice guy so I took down the project and removed the references to the internal Yelo API.
After all, my goal was to demonstrate that bringing the Yelo App to Android wouldn't require that much work as all the key elements are in place already.
Maybe I should write a letter asking for "official permission", heh, we'll see how that goes :-)

I was expecting they would quote their Terms of Use that it isn't allowed to reverse engineer their software or that it isn't allowed to ask other customers for their password.
But they didn't.
Instead they state that "making Live TV streaming available for other devices isn't allowed without permission"
This is not something I read in their terms but then again: I'm no lawyer, just a customer. (shouldn't these things be written for customers?)
Further they claim that bringing Yelo to Android is not possible "because the necessary licensing deals are not in place" 

Erm... they seem to forget that - as stated here and there - most Android devices support Flash and you can simply browse to yelo.be and look at the flash based TV streams ON your Android.
This works - but playing the m3u8 streams like I did works much better.

To all Android users who have the daring balls to open a website like www.yelo.be, log in and watch the flash base live stream: STOP! YOU ARE IN CLEAR VIOLATION!

No? So playing flash videostreams on a website doesn't require a seperate licensing, and playing http live streaming video in an app does?
OK ... if you say so.

Forgive me for breaking the news to telenet, but if that's true they have made themselves a HORRIBLE deal if they have to renegotiate their license for every platform or technique separately.
This almost sounds like the story that TV Channels wanted separate (and cumulative) licenses for rebroadcasting their channels using analog or digital channels.
Oh wait ... didn't Telenet went to court for that and WON? (and of course the Belgian Bloodhound gang of copyright societies appeals)
The reasoning behind their court action was that Telenet has an "All Rights Included" license for broadcasting some TV channels, so if it is allowed to broadcast it through analog cable, it is also allowed to broadcast it through digital cable.

The issue centers around a single question: have viewers the right to view content, for which they paid, anywhere in the home on any device?

The Telenet actions against the copyright societies in court seem to indicate that their stand is a clear: YES!
But if that's the case, why would viewing on iPhone be OK and on Android not?
That's not even a question of "digital" or "analog", it's a micro issue of "what platform"
It's like saying that you can watch digital TV on a Sony TV, but NOT on a Samsung one.

I get it of course: Telenet probably had to made some serious concessions to the TV Channels (and copyright societies) to even be able to stream SOME channels to SOME devices over the internet, and there comes this insensitive cowboy developer walking by, meddling with the precious balance between broadcasters and copyright holders.
But as time proves over and over again, when technology clashes with rigid business models, especially when digital content and intellectual property is involved, it is the business model that has to adapt, NOT the technology.
As for digital TV: Streaming to all kinds of devices can't be stopped

So, Telenet, with your new court victory in your pocket, don't let a small shrimp like me stand in your way and make it happen: Video content (for which customers have paid) available anywhere in the home on any device.

If you do, you'll certainly get my money as customer (As you do now already, lot's of money for lots of years, I might add :-) )

GO!

 

Update: Official reaction by Telenet after the ZDnet picked up the story and after lot's of retweeting on twitter. Thanks for all the support guys!
in short: Yes: you can use the yelo website on Android, no there won't be an Android app soon as the needed security and content rights are not sorted out yet.

Very weird:
1: What a mess: this - again - shows you better build a good webapp then to meddle around with native mobile apps.
2: I'm going to inform me about exaclty what rights customers (endusers) have with digital content. Apparently this is a legal swamp with some VERY bizar twists

 

 

Tags: in English, LifelogGeef je reactie (10)
 

Opening up Telenet Yelo: TV on your android

Part 2 in the Telenet Yelo series. (following this and this)

Update:
Due to a formal complaint from Telenet I have edited this post and removed all references to their internal API and closed down the demo program.



Telenet is working on an Android app for Yelo. Yes, but when will they release it, if ever?
Luckily, there's no need to wait.
As the Android platform get more and more mature, also the streaming video app gets better.
The HTTP Live streaming format that Apple invented and Yelo is using can now also be played on non iOS platforms like Android.
The only thing we need is the URL for the TV stream.
After some sniffing, here's a super easy way to get them.

the front door is located at *removed*

Where you replace *yourlogin* and *yourpass* with your telenet credentials.

You get a little XML in return stating something like

*removed*

That code in the response tag is your session ID.
You'll need that as the TV-streams are tied to your telenet account (you didn't think you're watching anonymous, did you?)

What TV channels are available is located at *removed* (it's an XML, so you might need to do a "view source" to see them)

Every channel has an ID.
e.g.

 *removed*



The livestream then is contructed as  *removed*

for the example above, that would be *removed*

That's it, nothing more to it.
if you copy that url into your browser on your iPhone or IPad it will play.

on Android 3.0, this should also work (theoretically, never tested it) but as most of us are on Android 2.2 or less, we need an extra tool.
Thankfully, BelgianWaves (who's also from Belgium, could you tell?) did the INCREDIBLE job of writing a http live stream player from scratch and released it as Mirage.
This has nothing to do with Yelo, it is a generic video player (and an Airvideo client, I might add - again: INCREDIBLE work by BelgianWaves) and it happens to play the yelo streams just fine.

Ok, this works, but copy/pasting urls and sessioncodes around is annoying and should be automated.
I wrote a little script that does exactly that: it takes your login and pass as input and returns a list of urls of all TV channels available.

The script is  *removed*. nothing fancy just a quick 1 file script.

As a demo - and for my own personal use - I wrapped in a little webfrontend at http://www.stef.be/projects/yelo/ (*offline*)

It works fine on any iOS device and on Android (with the help of Mirage)
Theoretically it might work on Safari on a recent (Snow Leopard) Mac, but that's untested.
In fact... I only tested it with my own login, but there's no reason it wouldn't work for all Telenet users.
One big note: the Yelo streams are tied to your IP address too and they only work when you're connected using a Telenet connection. It won't work on any other provider (yet ... but more on that another time)

Here are some screenshot from iOS
yelomob1 yelomob2  

And an Android device playing Yelo TV
yelomob3
yelomob4

Have fun with it, and - for peeps sake - DON'T go entering your Telenet credentials in any webform you see, if you have any doubt that this or this is not safe, get the url's manually as described above. (or write your own script of course)

Probably for their (future) Android Yelo App, Telenet is using a different video streaming technology but in my opinion, maybe they should reconsider that.
HTTP Live streaming is turning into a valid video streaming technique for multiple platforms.
Android 3 has native support for it and Mirage supports it to.
You should think that Telenet is happy with that development, no?
They already have a decent HTTP Live streaming backend in place, serving their iPhone and iPad users.
It would be common sense to use that same backend for other devices, right?


That's not what Telenet must be thinking. On the contrary: they contacted the Mirage author and specifically asked them to stay away from Yelo.
Argh ... instead of saving themselves lot's of time and effort, they bully a small developer to halt his activities.
Come on, Telenet: the internet is open by design: locking your web services to your apps and your network only doesn't work and will never work. Someone will ALWAYS find a way around it.
Do yourself a favour and license the Mirage technical core, wrap it into your Yelo service and release it as Android client:  it will be far far cheaper (and faster) than developing your own solution.


Anyway: now with Yelo usable on Android devices, the next step is to make it usable from anywhere, even outside the Telenet network.
More on that in part 3.
Enjoy!

PS. Why is this post in English? Darn, I have written too much code lately :-)

Tags: in English, Mobile, ScriptingGeef je reactie (21)
 

Javascript library: 9-dot Pattern Lock

patternlock_example
You have probably seen this on a touchscreen smartphone: to unlock it,  instead of typing a password you are presented with 9 dots and you have to draw a pattern.
It works great: drawing a shape on a small touch screen is far easier than typing on those bl**dy small keyboards AND far easier to remember too.
Once you've got used to it, typing passwords in general gets pretty annoying: you want to swipe your way through every login screen you see.

For my own mobile web apps, I wanted to replace that standard password box with a familiar pattern lock, but was surprised I couldn't find one that was targeted towards web apps.
Maybe it does exist but i missed it?

Oh well, Do It Yourself! : my never ending mantra that I keep repeating over and over and over and over again :-)

Enter the 9-dot pattern lock javascript library.
It's pretty much drag-n-drop: just include the JS file and give your password box the class "patternlock" : It will be replaced with a nice touchy patternlock.
I wanted it to be free of any dependencies on frameworks like jQuery or Moo so it's completely standalone.

A live demo is at http://www.stef.be/dev/javascript/patternlock/

It's targeted towards large touchscreen devices such as Android phones/tablets, iPhone and IPad, but it works fine on any major desktop and mobile browser.

The idea is that each dot is a number from 1 to 9, when you draw a pattern, you're actually entering numbers into the password box.

It's free and open source, grab it here if you find it useful.

Parameters

  • it has 2 parameters
    • patternlock.autoInit
      If set to true all input elements with the className "patternlock" will be replaced
      If set to false you have to manually initiate it by patternlock.generate(IDofElement)
    • patternlock.autoSubmit
      If set to true your form will be submitted when you stop drawing the pattern
      If set to false the user will have to submit it manually

Possible enhancements for the future:

  • maybe rewrite it as a jQuery plugin ?
  • it would be much cooler to use the HTML5 canvas element to draw the dots and lines in runtime instead of using images. But since that's not supported on all browsers, I used images to keep it compatible.

Known issues

  • the default Android browser has a really slow "ontouchmove" trigger: if you draw very fast on your android phone, you will miss some dots. (I hate to admit it but the iOS browser clearly is the most potent mobile browser for touch stuff at the moment)
  • If you draw outside of the box you can connect non-adjacent points. allthough that's perfecty fine, no lines will be drawn between those points.
  • Using multiple patternlocks on the same page probably won't work.

If you bump into other issues or have any improvements: let me know!

Tags: in English, Mobile, Programming, ScriptingGeef je reactie (9)
 

GarageBand for iPad - a review

Garagaband iPad
A big splash this week for the iPad: Apple released GarageBand.
I'm not going to write a complete review for it, there are more then enough off them already.

In short

  • Yes, its amazing
  • Yes, it's awesome
  • Yes, it looks so gorgeous and sexy you want to lick your screen
  • Yes, it's one of the coolest and slickest apps on the iPad
  • Yes, it's incredible easy to use and fun
  • Yes, if you have an iPad, you should buy it
  • But..... but but but.

It could have so easily have been THE ultimate music app that would dwarf all other music apps on whatever mobile platform.
But it's not.

Apple bashing? certainly not

This is not going to be an Apple-bashing piece. When it comes down to music apps on mobile devices, i love Apple: they are lightyears ahead of any other platform. (again: when it comes down to music creation apps)
On Android, for example, I can count the amount of decent music apps on 1 hand and STILL have several fingers left to pick my nose.

This is going to be a usability piece.

If you give GarageBand on iPad  to your kid or your mum, no doubt they will enjoy themselves silly whipping out great sounding tunes like it's nothing.
It's great to toy around with and it's fun to use. So easy!
And that's the key: "it's great to toy around with"

If you would give it to an (amateur) musician with the actual intention to create something unique, it would be a frustrating experience beyond repair.

Before you start screaming that GarageBand iPad is not meant for the half serious musician, ask yourself why not!
Clearly it has one of - if not THE - most powerful music engines on the iPad and it hosts some very advanced features.
But at the same time it lacks some super obvious things that most other music apps DO have.
I'm not talking about advanced stuff, but basic things like copy/paste, or the ability to do small edits after you recorded a track, or fades,... things that are plain necessary if you want to do more than toying around.

Some examples

For example: you've just played and recorded the best piece ever on the touchpiano. It gets recorded to midi, nicely visualized in the sequencer.
There's one spot you played a note out of rhythm or out of key.
Currently there's no way to fix that, other than re-record it.
Would it harm the fun or usability in any way to add midi editing?

Or the lack of copy paste: you can't copy one track to another project, or copy a sample to another app.
This is an issue  that is solved already a long time ago with the system wide pasteboard, first made popular by Intua and perfected by Sonoma.
About all music apps support it, allowing you to copy paste your sounds between apps, creating your own perfect mix.
All music apps ... except for GarageBand.

Musicians create music with whatever they find.
They build the best grooves with Rebirth, record the fattest guitars with Amplitube, fine-tune the ultimate synths with Nanostudio, and then combine it all with the best sequencer for the final mix.
All this is already perfectly possible with the iPad, but not when you want to use GarageBand: there's no usable way to get your sound in or out GarageBand.
Connecting the iPad with your Mac and use the full GarageBand doesn't count (and doesn't function yet anyway)
I want a mobile studio, independent of other hardware device. If you have a Mac lingering around, you wouldn't use the iPad to record, you would use the full GarageBand.

Why?

Why didn't apple add those features?
Because they would stand in the way of the user experience?
Because they don't target the more demanding musicians?
Maybe, but that would imply that they see GarageBand on the iPad as a toy themselves. Does this then mean they see the iPad as a toy?

The answer is pretty obvious if you ask me:
If you have a Mac lingering around, you wouldn't use the iPad to record, you would use the full GarageBand.
The reverse is also true: if GarageBand on iPad could do all the things that the full GarageBand could, one wouldn't need a Mac ...
And there you have it. It's my opinion that Apple deliberately created a crippled version of GarageBand to avoid cannibalizing their Mac products.
This is the same reason the iPad is still forced to sync with bloody f*cking iTunes - with a cable none the less, how 20th century like.
It would be a far better user experience to let the iPad sync wirelessly, or not force it to sync at all, but then people would start using the iPad INSTEAD of a laptop, not NEXT TO a laptop.
Obviously, this would hurt the apple sales: they want to sell you 2 devices, not 1.
Yes, Apple values the user experience very high, but not nearly as high as making money.
That's perfectly fine, but this means they will not allow the iPad to be as good as it could. (why would they, its good enough already to sell millions and millions)

Obviously, this means a huge opportunity for other developers that don't have these restrictions.
The best example is the software for jailbroken iPads. It seems those "rogue" developers are the ones that are pushing the iPad forward the most and often Apple is copying the best gems of the jailbroken apps later on in their official software.
Things like multitasking and folders are examples of this.

An example of a super useful app for jailbroken devices that Apple yet has to copy is Retinapad, which enables the high res mode of iphone apps on your ipad.

But back to the point: in the regular app store there are also some true gems of music apps  that DO target the more demanding users.
No, they are not that slick, but double as useful.


Usability

One more example of how bad the usability sometimes get with GarageBand (and iPad in general):
Say you recorded a killer riff on the guitar, but you want to speed it up a bit for even more awesomeness. GarageBand can't do this (it can speed up midi tracks, but not samples)
Studio HD can.

Now if only there would be a way to get your track in studio HD ...

Oh wait! There is! its just a few clicks away (ahem ...)

You can export your track in Garageband

bfoto 2


Then email it to yourselfves
bfoto 3


Hey you got mail!
Luckily multitrack DAW can import samples from email attachments.
bfoto 4


Your track gets imported in multitrack DAW
bfoto 5 

There you can copy it to the pasteboard.
afoto 2 

Open studio HD, and paste it in a track, then alter the speed.
afoto 3 afoto 4
afoto 5


How's that for usability, eh? that was only 17 clicks, 3 apps and a roundtrip to the mailserver!

But wait, if you want to get your track back into GarageBand you're out of luck: there's no way to do that (that doesn't involve jailbreaking  your device)

Come on Apple, audio copy/paste is everywhere, surely this should be added in the next update.

And speaking of Studio HD: I don't know who copied who, but come on: the 5 months old Studio HD on the left, the brand new GarageBand on the right.
I kind of hope I'm missing something here...  Maybe those are standard iPad design guidelines or something?
cfoto 2 cfoto 1

Playing around

Not to be all talk and no action I created a very small tune with GarageBand.
The tune was recorded and arranged in about 15 minutes. Very Easy and fast.
The guitar is a cheap toy (acoustic!) guitar recorded with the internal mic.
The drums and Bass are "smart instruments"
Here's the tune.

Or download the mp3 file

Points

Good points

  • very easy
  • incredible slick touch based interface
  • very powerful music engine: it's the only music app to my knowledge  that can combine midi and sample tracks
  • perfect for jotting down fast music ideas
  • accessible for everyone, no music knowledge required

Bad points

  • no audio copy/paste
  • no midi editing
  • no fades
  • very limited time signatures (only 4/4)
  • currently no working export to full GarageBand

Conclusion

GarageBand for iPad is awesome, it really is, but it's a toy.
There's nothing wrong with that, its genuine fun to use.
It's also great as a fast and easy multitrack recorder if you want to record and edit on the move.
However, if you want to use your iPad as standalone recording studio, (like I do) there are far better options. Check out Multitrack DAW, Studio HD (which does time stretching!) or Beatmaker 2.
If you're a guitar player, Ampkit and Amplitube provide a much better sound, features and experience.


As a software developer, I marvel at the beauty and technical excellence.
As an amateur musician, I find it almost unusable.
Let's hope I'm completely wrong about Apple's strategy with GarageBand and they'll address its shortcomings in a next update.

 

Tags: in English, Mobile, MusicGeef je reactie (2)
 

In silence

Tinkering with digital audio, I love it!
A few months ago I was exploring the use of the Ipad as digital recording device.
A small tune came out of it.
nothing too fancy, just a piece made from scraps i created as test with various audio apps.
Great fun!

My plan was to draw a videoclip for it - also on the iPad.
Yes: ... draw ... even at 1 frame a second, it meant lot's of work and grew tired of it.
It's one of those things that end up on the "to do whenever I find some time for it" pile, which is dangerously close to the "never" pile.
This image is one frame of it. 

insilence1203_33

We'll see about the videoclip part, but here's the audio track already.

You can download the mp3 here
It's called "In Silence"

It's completely recorded on the iPad, only using iPad apps, the internal mic and a (real) acoustic guitar.
Why? Because making music using toys is fun!

Nanostudio
The synths, bassline and effects are from Nano Studio

beatmaker
The drums are done with Beatmaker, which also functioned as copy/paste glue between apps.

MultiTrack-DAW-iPad
The recordings of voice, guitar, final sequencing and mixing was done with multitrack DAW.

Conclusions: using the iPad as mobile music studio is fun.
Some pretty good results can be achieved, considering the cheap guitar I used and the internal mic.
There are some pretty awesome apps out there which make the iPad a valid mobile recording studio.

However, one has to jump through some really weird hoops if you want to combine multiple apps and get the most out of it.
The lack of (access to) a file system makes it sometimes daunting to get the samples and tracks from one app to another.
You end up spending as much time swapping apps and moving files around then to actually create some music.

It's Apples vision to prefer usability over features.
That's great, but sometimes they end up in the paradox that their quest for usability actually makes the product less useful.
As Einstein reportedly used to say: "Everything should be made as simple as possible, but not simpler." , right?

More on that later in my GarageBand for iPad review

Tags: in English, Music, TinkeringGeef je reactie (3)
 

My biggest disappointment of 2010

a picture called Photojan03211225.jpg (click to enlarge)

I really try to keep a positive mindset,
but sometimes I have to whine a bit :-)
Looking back at 2010, the biggest disappointment of the year is .... digital magazines.
The future looked so bright:
sexy consumer devices like the iPad would save the publishing industry and everyone would be happy.

Publishing software companies like Adobe rushed out digital publishing solutions like the Digital Publishing suite.
Every publisher and newspaper went head over heals to release some form of iPad app, pushing their digital content to thousands of eager new readers.

One slight problem: THEY ALL SUCK !
Really, everybody who's happy about the current state of iPad magazines must have had really low expectations.
Almost all publishers took the fast and easy approach and just whipped up some sort of image viewer offering their existing  print-ready documents to the screen.
Very understandable: it's the safest thing to do with the lowest amount of risky new investments.

As in most cases, the fast and easy approach rarely is the best one.
It results in substandard products that are a mere shadow of what they could have been.

Simply copying the paper based layout to a screen does NOT result in pleasant reading experience: as most readers screens are too small to display one standard printed page in a readable manner, you end up zooming and scrolling in all directions, hunting for the flow of an article.
So called "premium content" mostly consist of making  links clickable  and whacking YouTube video on top of static pages.

And it's such a shame: there's so much great content out there and thousands of people willing to pay for it.
I would gladly pay for a decent magazine, after all creating content is a tough job, there's a reason why there are professional journalists.
Is it too mush to ask for an enjoyable reading experience?
Stop converting paper pages to the screen: it didn't work for the web and it certainly doesn't work for e-readers.

Digital publishing still is a niche, but the only way to expand it is to create a compelling product specifically targeted for e-readers.
To all publishers: take a look a the various eBook readers as they already solved most of you problems

  • offer customizable fonts
  • offer adjustable font sizes and FLOW your text: there's nothing as annoying zooming in and having to scroll from left to right constantly because the text doesn't wrap.
  • provide both landscape and portrait layouts. yes, that's more work for your understaffed design team but it's a need-to-have , not a nice-to-have
  • DON'T publish you magazine as a series of static  image files, unless you're a comic. Keep text as text, images as images.
    This is an example of a zoomed in page of 'The Tijd" newspaper app (which is a series of jpeg images)

    It's hurting my eyes! 
  • integrate multimedia directly from the start into the articles, don't add them later as some form of icing on the cake: don't decorate, design.
  • don't launch your readers outside your magazine with your external links, handle them internally.
  • avoid scrolling, paginate
  • if it's too expensive to design a digital version of your magazine, leave out the design and just offer the articles as text.
    Whatever you do, DON'T simply reuse your paper design.

Reading an eBook on e.g. iBooks, Stanza or a Kindle is relaxing and comfortable because they follow those rules.
Reading a magazine or a newspaper on the iPad is frustrating and annoying.

One shining good example is the Wired tablet app: very well made, good use  of media, optimized layout.
The only thing missing is scalable fonts.

The worst examples are all those Magworld magazines. For example the music magazine OOR. That's one example that is SCREAMING for a digital multimedia version, but in its current offering it's completely crap on a digital device. What a missed opportunity ....

Am I alone in this frustration? Some seem to think so, but again: don't settle for "good enough"
"good enough" won't stick, and ultimately: "good enough" won't keep selling.

Maybe I missed some magazines that DO get it right?
I hope so, please let me know.

Tags: Gezeur, in English, Web 2.0Geef je reactie (2)