Showing posts with label translation. Show all posts
Showing posts with label translation. Show all posts

Monday, October 4, 2010

transducer

i feel like on of the big new media memes is transduction.

For example convert stock market feeds into audio sounds, or convert twitter feeds into graphical visualization.

Data visualization and audio visualization are forms of transduction - translating from one form into another. The issue with transduction is how do we perform the translation. This is where the real art of data visualization or data sonification takes place. There are infinate numbers of ways to map the frequency of #brit on twitter to a visual cue. What signifies frequency (line size?), what signifies subject matter (color?), where do you place the visualization on the screen (existence in different social networks?). All of these are arbitrary and the criterion of success is how transparent the visualization is for understanding the data, or how aesthetically pleasing the result is.

I have been writing an application called doh rae tweet which lets you compose music via twitter. Here again the mappings are arbitrary. an 'A' is a note 'a', but a space is S (it could just be a space). The default time signature is 4/4 unless you start your tweet with something else like 8|8. and you adjust the beat of a note by + or - so A- (in 4/4) would be a half note. This is all arbitrary and it is not necessarily transduction but translation. Not transforming one type of thing into something else, but representing something (musical notation) in something else (140 characters on twitter) . In this way it is much more similar to writing a compiler than writing a data visualization.

However doh rae tweet can also can be used as a transduction engine. I can feed through random twitter feed and use the music compilation engine to hear what that tweet sounds like according to my 'compiler' Although it probably wont sound very nice. Most letters will not have an audio mapping. So for this sort of application I would want to replace my compiler or lexical engine with another. Ideally anyone could create their own mapping. I think it would be interesting to do this via a GUI and feedback loop so you could adjust your mappings visually as you hear the effects of your changes.

One final though - I also want to use this mapping for other notation schemes. One that seems a natural is chess. With the 8x8 chess board mapping to the diatonic scale. However, this too would need its own mapping. ( Also what do you play, to just play the chess piece that is moved - or all the chess pieces. ) I went online to see if anyone has attempted sonficiations of chess notation and found the following:

Halfbakery This has some links relating chess to music
Chess History A list of articles and historical documents connecting chess with music (not very informative but interesting from a historical standpoint).
Music and Chess A great website with all sort of information linking chess and music. I got this from that site: "The Oxford Companion to Chess is a comprehensive encyclopedia of chess. It contains articles on history, terminology, chess players, and the relationship between chess and other subjects such as music, art, theatre, literature and philosophy. Many of the terms listed in this book are also musical terms. For example, in chess, a person who creates puzzles and problems to be solved is called a composer, and two different sequences of moves that lead from one given position to another are said to be related by transposition. Some other terms that are used in chess and music are: play, piece, notation, score, tempo, theme, variation, development, minimal composition, round, major and minor, position, second, retrograde, mirror, attack, anticipation, phase and echo."

Saturday, November 28, 2009

Lost in programming translation

So today I am starting to follow up on some work that has piled up this week...

first up rapidsms on the malawi server. This has been a big issue because we switch ISPs, then I was unable to log on, then it seemed to be an issue with verizon fios (rather than malawi ISP), and now I am actually able to log in from my verizon fios - although we just lost internet.

also up is rapidsms clean up & easy install (setup tools)

For this integration testing I will probably use the
Cruise Control tool developed or adjusted by Jez
Humble. An example with some rapidsms forks is here


Seeing that this is a ruby tool has made me feel even worse about myself not using ruby, but really I dont have all the time in the world to develop on every platform known to man, and I have heard that ruby websites have some performance issues (thats just what I hear). So does python, but not as bad as ruby. Perl is best (really c is the best or assembler)- but it encourages idiosyncratic code. I sort of like to think of all these different programming languages as evolutions of natural language. For example perl (or perhaps assembler) is like egyptian heirogylphics - you need a specialized class of people (scribes) to read and write this language. Then eventually we get coptic (egyptian written in greek), and everyone can read and write it - it is like ruby - but perhaps you lose something in this.

Another analogy - different chinese transcriptions. There are different ways of connecting chinese sounds with the roman alphabet:for example Wade–Giles and Pinyin. Each system captures certain features of chinese, but neglects others, what you get in ease of use in using either system you loose in precision (of using the actual chinese)

Translation is hard

I also succumbed and picked up a git oreilly book. I am sick of scowering the web everytime I something unexpected happens during a merge, or push, or pull and I think I just need to cuddle up with a git book and a hot toddie. My current method of using git is rather sloppy and I would like to be sure and do everything the correct way as I start integrating the rapidsms apps/core etc.. More on version control another day.