Moving media players into the future, and Camp KDE

Tomahawk Player

I’ve been pretty quiet lately, but not because I haven’t been getting my code on. I’ve joined up with Chris (muesli from amarok 1.x fame) and some others (jefferai, domme) to work on a new Qt/FOSS media player. Now before we all collectively groan and moan “not another media player!!” hear me out—we’re different.  Those of you who had the luck^W^W^W^Wtorture of attending my talks at Camp KDE or Akademy last year probably know that I am obsessed with one simple question when it comes to media players: playing you what you want. That means two things—being smart and helping you find new music and making it possible to play music that you don’t physically have on your hard drive. Tomahawk solves these problems and more:

  • Why can’t I easily listen to all the music I have scattered across multiple computers, at multiple locations, from a single interface?
  • When I am reading a website that talks about a song, and I own that song, why can’t I play my copy directly from that page?
  • Why can’t I subscribe to, and import, playlist metadata from all over the web – and then have that resolve against any/all songs that I have access to?
  • Why do I have to listen to songs I have on my hard drive, and songs from services I subscribe to, in totally different user experience silos?
  • Why I can’t I use the intelligence of services like The Echo Nest to help me discover new music that I have access to?

Tomahawk hooks your up with your friends—connect with your jabber/gtalk/twitter friends and share metadata and playlists. Any track that a resolver can play (think youtube, aolmusic, skreemr) you can play too. Playlists generated from The Echo Nest based on your criteria (example: similar to u2 and queen and fleet foxes with high artist familiarity and medium variety) that you can play across your various computers? Then played directly for you in your media player? That’s what i’m talking about. Check us out at our  homepage . We just released 0.0.1—we’re young, but we have tons of awesome plans. Stay tuned!

Camp KDE

It’s that time a year again. No, not christmas, not akademy, and not your birthday, but rather, Camp KDE! Why is Camp KDE a conference worth visiting? It’s a gathering of some of the great people who make KDE as awesome as it is, but it’s not as overwhelmingly huge as Akademy or the Desktop Summit. There’s time to mingle with the Great KDE Legends (i’m coining that phrase right now)—sitting around and chatting with Till, Sebas, and others in Jamaica in 2009 (just to name a few) made it an infinitely more exciting event than wandering around Gran Canaria watching them give well-received talks to a huge audience. So take a look at the awesome schedule for Camp KDE—keynotes from Jim Zemlin of the Linux Foundation and Carol Smith of Google’s Open Source Office, talks by Thiago, Ariya, Romain, Aleix (of KDevelop fame), Marijn (of Calligra fame), Knut and more—what’s not to look forward to. See you in San Francisco!

Advertisements

44 Responses to “Moving media players into the future, and Camp KDE”

  1. Z Says:

    I really love the idea.
    A good Last.FM integration in addition to The Echo nest would be awesome too.

    • lfranchi Says:

      What sort of integration are you looking for? Stuff like recommended artists? Or integrating with your friends? Tomahawk already scrobbles, btw.

      • Z Says:

        Yeah, recommended artists, using Last.FM playlists (I see there is already an extension for that though), etc.
        From my experience, Last.FM also gives better suggestions than The Echo Nest when it comes to lesser known artists and genres/tags.

        Of course Last.FM radio integration would also be great, but I am not sure if that contradicts with your vision?
        The same question goes for things like online radio stations.

        I haven’t yet been able to test it since I am at work, but I will make sure to try it as soon as I get home! 🙂

      • lfranchi Says:

        Yep all good ideas. I want to bring in as much recommendations as I can! It makes sense to show your last.fm playlists in tomahawk, for example.I just wish I had more time to all the stuff I want to :0

        Anyway, keep the ideas coming! Join us on #tomahawk on freenode if you want to chat or have any issues, as well.

  2. b0b Says:

    “Why can’t I easily listen to all the music I have scattered across multiple computers, at multiple locations, from a single interface?”

    You better want to access your music stored on a central server (a NAS for example) from multiple interfaces (PC, tablet, phone) via the LAN or the Internet. Scattering a music collection on multiple computers is asking for trouble.

    “Why can’t I share music with my friends, see what they are listening to, make them a playlist, and play from playlists?”

    Because your friends probably do not care. I know mine could not care less about what music I’m playing.

    “When I am reading a website that talks about a song, and I own that song, why can’t I play my copy directly from that page?”

    Because noone else in the world except you has this particular need.

    “Why can’t I subscribe to, and import, playlist metadata from all over the web – and then have that resolve against any/all songs that I have access to?”

    Because tagging cannot be 100% automated and correct without writing some kind of new AI

    “Why do I have to listen to songs I have on my hard drive, and songs from services I subscribe to, in totally different user experience silos?”

    because the ultimate music player that connects to every obscure online service commercial or not and that can disappear at anytime, do not exist yet

    • lfranchi Says:

      I’m sad to hear tomahawk isn’t for you. I encourage you to come back in a few months or years and see if we fit your needs better then. Until then, enjoy!

  3. gunni Says:

    Crossfade and N900 port and i will kiss you … well change that to you get a beer 😉

  4. Paul Says:

    Sounds great! I haven’t try it yet but I am going to download it as soon as I finish some work. Some ideas: maybe a lyrics add-on, and +1 to the last.fm playlist integration too.

  5. Alejandro Nova Says:

    Trying to compile Tomahawk Git with CLucene Git gives this (Ubuntu Natty)

    [ 38%] Building CXX object src/libtomahawk/CMakeFiles/tomahawklib.dir/database/fuzzyindex.cpp.o
    In file included from /usr/include/c++/4.5/backward/hash_map:60:0,
    from /usr/include/CLucene/util/VoidMap.h:18,
    from /usr/include/CLucene/store/RAMDirectory.h:11,
    from /usr/include/CLucene.h:38,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/c++/4.5/backward/backward_warning.h:28:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
    In file included from /usr/include/CLucene/StdHeader.h:23:0,
    from /usr/include/CLucene.h:11,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/debug/error.h:68:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/debug/error.h:76:30: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/debug/error.h:79:3: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/debug/error.h:82:26: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene/index/IndexReader.h:11:0,
    from /usr/include/CLucene.h:12,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/util/Array.h:238:58: error: ‘TCHAR’ was not declared in this scope
    /usr/include/CLucene/util/Array.h:238:64: error: template argument 1 is invalid
    /usr/include/CLucene/util/Array.h:250:20: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/util/Array.h: In constructor ‘lucene::util::TCharArray::TCharArray()’:
    /usr/include/CLucene/util/Array.h:240:26: error: ‘TCHAR’ was not declared in this scope
    /usr/include/CLucene/util/Array.h:240:32: error: template argument 1 is invalid
    /usr/include/CLucene/util/Array.h:240:33: error: expected ‘{’ before ‘(’ token
    /usr/include/CLucene/util/Array.h: In constructor ‘lucene::util::TCharArray::TCharArray(size_t)’:
    /usr/include/CLucene/util/Array.h:241:38: error: ‘TCHAR’ was not declared in this scope
    /usr/include/CLucene/util/Array.h:241:44: error: template argument 1 is invalid
    /usr/include/CLucene/util/Array.h:241:45: error: expected ‘{’ before ‘(’ token
    /usr/include/CLucene/util/Array.h: In member function ‘void lucene::util::TCharArray::deleteValues()’:
    /usr/include/CLucene/util/Array.h:244:16: error: ‘class lucene::util::TCharArray’ has no member named ‘values’
    /usr/include/CLucene/util/Array.h:246:28: error: ‘class lucene::util::TCharArray’ has no member named ‘length’
    /usr/include/CLucene/util/Array.h:247:5: error: ‘class lucene::util::TCharArray’ has no member named ‘values’
    /usr/include/CLucene/util/Array.h:247:5: error: ‘class lucene::util::TCharArray’ has no member named ‘values’
    /usr/include/CLucene/util/Array.h:248:11: error: ‘class lucene::util::TCharArray’ has no member named ‘deleteArray’
    /usr/include/CLucene/util/Array.h: At global scope:
    /usr/include/CLucene/util/Array.h:281:75: error: template argument 1 is invalid
    /usr/include/CLucene/util/Array.h: In constructor ‘lucene::util::TCharConstArray::TCharConstArray()’:
    /usr/include/CLucene/util/Array.h:283:43: error: template argument 1 is invalid
    /usr/include/CLucene/util/Array.h:283:44: error: expected ‘{’ before ‘(’ token
    /usr/include/CLucene/util/Array.h: In constructor ‘lucene::util::TCharConstArray::TCharConstArray(size_t)’:
    /usr/include/CLucene/util/Array.h:284:55: error: template argument 1 is invalid
    /usr/include/CLucene/util/Array.h:284:56: error: expected ‘{’ before ‘(’ token
    /usr/include/CLucene/util/Array.h: In member function ‘void lucene::util::TCharConstArray::deleteValues()’:
    /usr/include/CLucene/util/Array.h:287:20: error: ‘class lucene::util::TCharConstArray’ has no member named ‘values’
    /usr/include/CLucene/util/Array.h:289:12: error: ‘class lucene::util::TCharConstArray’ has no member named ‘deleteArray’
    In file included from /usr/include/CLucene/util/VoidList.h:10:0,
    from /usr/include/CLucene/index/IndexReader.h:12,
    from /usr/include/CLucene.h:12,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/util/Equators.h: At global scope:
    /usr/include/CLucene/util/Equators.h:194:27: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/util/Equators.h: In member function ‘virtual void lucene::util::Deletor::tcArray::Delete(void*)’:
    /usr/include/CLucene/util/Equators.h:192:17: error: ‘TCHAR’ was not declared in this scope
    /usr/include/CLucene/util/Equators.h:192:23: error: expected primary-expression before ‘)’ token
    In file included from /usr/include/CLucene.h:12:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/index/IndexReader.h: At global scope:
    /usr/include/CLucene/index/IndexReader.h:82:45: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:12:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/index/IndexReader.h:241:52: error: ‘TCHAR’ was not declared in this scope
    /usr/include/CLucene/index/IndexReader.h:241:52: error: template argument 1 is invalid
    /usr/include/CLucene/index/IndexReader.h:251:31: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/IndexReader.h:261:27: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/IndexReader.h:277:35: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/IndexReader.h:295:35: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/IndexReader.h:432:70: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/IndexReader.h:443:59: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/IndexReader.h:524:30: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene/index/IndexWriter.h:19:0,
    from /usr/include/CLucene.h:13,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/index/MergePolicy.h:238:35: error: ‘DEFAULT_MERGE_FACTOR’ has not been declared
    /usr/include/CLucene/index/MergePolicy.h:351:35: error: ‘DEFAULT_MIN_MERGE_DOCS’ has not been declared
    In file included from /usr/include/CLucene.h:13:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/index/IndexWriter.h:290:34: error: ‘DEFAULT_MAX_FIELD_LENGTH’ has not been declared
    /usr/include/CLucene/index/IndexWriter.h:291:34: error: ‘FIELD_TRUNC_POLICY__WARN’ has not been declared
    /usr/include/CLucene/index/IndexWriter.h:291:2: error: ‘int lucene::index::IndexWriter::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/index/IndexWriter.h:290:2: error: with ‘int lucene::index::IndexWriter::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/index/IndexWriter.h:416:35: error: ‘DEFAULT_TERM_INDEX_INTERVAL’ has not been declared
    /usr/include/CLucene/index/IndexWriter.h:416:3: error: ‘int lucene::index::IndexWriter::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/index/IndexWriter.h:290:2: error: with ‘int lucene::index::IndexWriter::LUCENE_STATIC_CONSTANT(int32_t, int)’
    In file included from /usr/include/CLucene.h:14:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/index/MultiReader.h:26:22: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/MultiReader.h:34:34: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/MultiReader.h:75:53: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/MultiReader.h:77:51: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/MultiReader.h:95:23: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/MultiReader.h:96:19: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/MultiReader.h:108:44: error: ‘TCHAR’ was not declared in this scope
    /usr/include/CLucene/index/MultiReader.h:108:44: error: template argument 1 is invalid
    In file included from /usr/include/CLucene.h:15:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/index/Term.h:35:8: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:40:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:53:36: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:62:13: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:62:31: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:70:13: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:70:31: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:77:8: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:82:8: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:85:24: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:85:42: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:94:35: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:96:17: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:96:35: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/index/Term.h:120:2: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene/search/DateFilter.h:16:0,
    from /usr/include/CLucene.h:18,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/Filter.h:39:10: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:18:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/DateFilter.h:42:22: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/DateFilter.h:46:37: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/DateFilter.h:50:36: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/DateFilter.h:58:2: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene/search/MultiTermQuery.h:21:0,
    from /usr/include/CLucene/search/WildcardQuery.h:12,
    from /usr/include/CLucene.h:19,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/Query.h:136:17: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Query.h:142:9: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene/search/WildcardQuery.h:12:0,
    from /usr/include/CLucene.h:19,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/MultiTermQuery.h:57:7: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:19:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/WildcardQuery.h:65:2: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:20:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/FuzzyQuery.h:64:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/FuzzyQuery.h:98:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/FuzzyQuery.h:100:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/FuzzyQuery.h:148:27: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:21:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/PhraseQuery.h:24:9: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/PhraseQuery.h:90:11: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/PhraseQuery.h:93:5: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:22:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/PrefixQuery.h:49:3: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/PrefixQuery.h:74:6: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:23:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/RangeQuery.h:74:3: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/RangeQuery.h:86:9: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene/search/BooleanQuery.h:13:0,
    from /usr/include/CLucene.h:24,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/BooleanClause.h:90:2: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:24:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/BooleanQuery.h:147:4: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:25:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/TermQuery.h:37:3: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:26:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/SearchHeader.h:133:15: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:27:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/Similarity.h:178:37: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Similarity.h:260:28: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:28:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/Sort.h:93:12: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:104:88: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:123:86: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:142:58: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:154:9: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:170:36: error: ‘DOCSCORE’ has not been declared
    /usr/include/CLucene/search/Sort.h:174:36: error: ‘DOC’ has not been declared
    /usr/include/CLucene/search/Sort.h:174:4: error: ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/search/Sort.h:170:4: error: with ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/search/Sort.h:180:36: error: ‘AUTO’ has not been declared
    /usr/include/CLucene/search/Sort.h:180:4: error: ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/search/Sort.h:170:4: error: with ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/search/Sort.h:184:36: error: ‘STRING’ has not been declared
    /usr/include/CLucene/search/Sort.h:184:4: error: ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/search/Sort.h:170:4: error: with ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/search/Sort.h:188:36: error: ‘INT’ has not been declared
    /usr/include/CLucene/search/Sort.h:188:4: error: ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/search/Sort.h:170:4: error: with ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/search/Sort.h:192:36: error: ‘FLOAT’ has not been declared
    /usr/include/CLucene/search/Sort.h:192:4: error: ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/search/Sort.h:170:4: error: with ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/search/Sort.h:196:36: error: ‘LONG’ has not been declared
    /usr/include/CLucene/search/Sort.h:196:4: error: ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/search/Sort.h:170:4: error: with ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/search/Sort.h:200:36: error: ‘DOUBLE’ has not been declared
    /usr/include/CLucene/search/Sort.h:200:4: error: ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/search/Sort.h:170:4: error: with ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/search/Sort.h:205:36: error: ‘CUSTOM’ has not been declared
    /usr/include/CLucene/search/Sort.h:205:4: error: ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/search/Sort.h:170:4: error: with ‘int lucene::search::SortField::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/search/Sort.h:224:20: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:236:20: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:247:20: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:253:9: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:277:3: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:384:14: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:391:14: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:401:22: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:404:22: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Sort.h:412:5: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:30:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/search/Explanation.h:20:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Explanation.h:26:36: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Explanation.h:45:8: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Explanation.h:47:28: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Explanation.h:53:10: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Explanation.h:76:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Explanation.h:77:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Explanation.h:80:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Explanation.h:89:68: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/search/Explanation.h:116:2: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene/document/Document.h:11:0,
    from /usr/include/CLucene.h:31,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/document/Field.h:130:14: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Field.h:130:33: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Field.h:136:14: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Field.h:142:15: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Field.h:144:14: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Field.h:149:8: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Field.h:154:16: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Field.h:264:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Field.h:282:16: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/document/Field.h:309:8: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:31:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/document/Document.h:95:25: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Document.h:107:26: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Document.h:115:24: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Document.h:123:8: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Document.h:144:24: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Document.h:147:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/Document.h:158:2: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:33:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/document/DateField.h:45:37: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/DateField.h:53:75: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/document/DateField.h:56:64: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:34:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/document/DateTools.h:49:9: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/DateTools.h:51:70: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/document/DateTools.h:63:36: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/DateTools.h:65:35: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/DateTools.h:86:12: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/DateTools.h:87:12: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:35:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/document/NumberTools.h:40:25: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/document/NumberTools.h:40:33: error: ‘MIN_STRING_VALUE’ has not been declared
    /usr/include/CLucene/document/NumberTools.h:45:25: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/document/NumberTools.h:45:33: error: ‘MAX_STRING_VALUE’ has not been declared
    /usr/include/CLucene/document/NumberTools.h:45:2: error: ‘int lucene::document::NumberTools::LUCENE_STATIC_CONSTANT(int*, int)’ cannot be overloaded
    /usr/include/CLucene/document/NumberTools.h:40:2: error: with ‘int lucene::document::NumberTools::LUCENE_STATIC_CONSTANT(int*, int)’
    /usr/include/CLucene/document/NumberTools.h:50:37: error: ‘STR_SIZE’ has not been declared
    /usr/include/CLucene/document/NumberTools.h:57:12: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/document/NumberTools.h:69:39: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene/store/FSDirectory.h:12:0,
    from /usr/include/CLucene.h:37,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/store/IndexInput.h:85:22: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/store/IndexInput.h:99:3: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/store/IndexInput.h:107:19: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/store/IndexInput.h:159:35: error: ‘BUFFER_SIZE’ has not been declared
    In file included from /usr/include/CLucene/store/FSDirectory.h:13:0,
    from /usr/include/CLucene.h:37,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/store/IndexOutput.h:64:25: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/store/IndexOutput.h:80:24: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/store/IndexOutput.h:103:34: error: ‘COPY_BUFFER_SIZE’ has not been declared
    /usr/include/CLucene/store/IndexOutput.h:114:34: error: ‘BUFFER_SIZE’ has not been declared
    In file included from /usr/include/CLucene/queryParser/QueryParserTokenManager.h:10:0,
    from /usr/include/CLucene/queryParser/QueryParser.h:11,
    from /usr/include/CLucene.h:39,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/queryParser/QueryParserConstants.h:56:15: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParserConstants.h:65:9: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene/queryParser/QueryParser.h:11:0,
    from /usr/include/CLucene.h:39,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/queryParser/QueryParserTokenManager.h:71:15: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParserTokenManager.h:72:15: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParserTokenManager.h:82:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParserTokenManager.h:108:9: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:39:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/queryParser/QueryParser.h:94:36: error: ‘CONJ_NONE’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:95:36: error: ‘CONJ_AND’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:95:3: error: ‘int lucene::queryParser::QueryParser::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/queryParser/QueryParser.h:94:3: error: with ‘int lucene::queryParser::QueryParser::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/queryParser/QueryParser.h:96:36: error: ‘CONJ_OR’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:96:3: error: ‘int lucene::queryParser::QueryParser::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/queryParser/QueryParser.h:94:3: error: with ‘int lucene::queryParser::QueryParser::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/queryParser/QueryParser.h:98:36: error: ‘MOD_NONE’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:98:3: error: ‘int lucene::queryParser::QueryParser::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/queryParser/QueryParser.h:94:3: error: with ‘int lucene::queryParser::QueryParser::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/queryParser/QueryParser.h:99:36: error: ‘MOD_NOT’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:99:3: error: ‘int lucene::queryParser::QueryParser::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/queryParser/QueryParser.h:94:3: error: with ‘int lucene::queryParser::QueryParser::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/queryParser/QueryParser.h:100:36: error: ‘MOD_REQ’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:100:3: error: ‘int lucene::queryParser::QueryParser::LUCENE_STATIC_CONSTANT(int32_t, int)’ cannot be overloaded
    /usr/include/CLucene/queryParser/QueryParser.h:94:3: error: with ‘int lucene::queryParser::QueryParser::LUCENE_STATIC_CONSTANT(int32_t, int)’
    /usr/include/CLucene/queryParser/QueryParser.h:121:3: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:136:15: error: wrong number of template arguments (1, should be 6)
    /usr/include/CLucene/util/VoidMap.h:156:29: error: provided for ‘template class lucene::util::CLHashMap’
    /usr/include/CLucene/queryParser/QueryParser.h:144:21: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:149:44: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:149:60: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:155:37: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:165:9: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:308:32: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:316:66: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:324:53: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:324:68: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:333:53: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:333:68: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:338:53: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:338:67: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:338:81: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:377:56: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:377:71: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:402:54: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:402:69: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:415:53: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:415:68: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:428:3: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:431:27: error: ‘TCHAR’ has not been declared
    /usr/include/CLucene/queryParser/QueryParser.h:442:10: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:451:38: error: expected ‘;’ before ‘(’ token
    /usr/include/CLucene/queryParser/QueryParser.h:453:31: error: expected ‘;’ before ‘(’ token
    /usr/include/CLucene/queryParser/QueryParser.h:455:32: error: expected ‘;’ before ‘(’ token
    /usr/include/CLucene/queryParser/QueryParser.h:458:37: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/queryParser/QueryParser.h:524:3: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene/analysis/standard/StandardAnalyzer.h:11:0,
    from /usr/include/CLucene.h:40,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/analysis/AnalysisHeader.h:17:32: error: ‘TCHAR’ was not declared in this scope
    /usr/include/CLucene/analysis/AnalysisHeader.h:17:98: error: template argument 1 is invalid
    /usr/include/CLucene/analysis/AnalysisHeader.h:17:111: error: invalid type in declaration before ‘;’ token
    /usr/include/CLucene/analysis/AnalysisHeader.h:64:8: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:69:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:78:15: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:84:14: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:84:73: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:85:17: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:85:76: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:89:3: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:122:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:125:37: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:129:21: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:158:8: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:159:21: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:176:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:259:41: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:268:49: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/AnalysisHeader.h:299:48: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:40:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/analysis/standard/StandardAnalyzer.h:29:41: error: ‘DEFAULT_MAX_TOKEN_LENGTH’ has not been declared
    /usr/include/CLucene/analysis/standard/StandardAnalyzer.h:35:27: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/standard/StandardAnalyzer.h:53:40: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/standard/StandardAnalyzer.h:55:48: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene/analysis/Analyzers.h:12:0,
    from /usr/include/CLucene.h:41,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/util/CLStreams.h:140:46: error: ‘TCHAR’ was not declared in this scope
    /usr/include/CLucene/util/CLStreams.h:140:51: error: template argument 1 is invalid
    /usr/include/CLucene/util/CLStreams.h:145:75: error: ‘TCHAR’ was not declared in this scope
    /usr/include/CLucene/util/CLStreams.h:145:80: error: template argument 1 is invalid
    /usr/include/CLucene/util/CLStreams.h: In member function ‘int64_t lucene::util::BufferedReader::mark(int32_t)’:
    /usr/include/CLucene/util/CLStreams.h:148:9: error: ‘class lucene::util::BufferedReader’ has no member named ‘setMinBufSize’
    /usr/include/CLucene/util/CLStreams.h:149:16: error: ‘class lucene::util::BufferedReader’ has no member named ‘position’
    /usr/include/CLucene/util/CLStreams.h: At global scope:
    /usr/include/CLucene/util/CLStreams.h:168:21: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/util/CLStreams.h:194:8: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/util/CLStreams.h:200:24: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/util/CLStreams.h:201:21: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/util/CLStreams.h:204:22: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/util/CLStreams.h:241:34: error: ‘DEFAULT_BUFFER_SIZE’ has not been declared
    /usr/include/CLucene/util/CLStreams.h:269:22: error: ‘TCHAR’ does not name a type
    In file included from /usr/include/CLucene.h:41:0,
    from /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:27:
    /usr/include/CLucene/analysis/Analyzers.h:21:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:22:8: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:29:33: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:34:13: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:58:25: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:80:2: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:93:25: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:101:36: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:102:41: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:110:33: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:111:41: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:147:60: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:163:45: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:247:25: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:260:36: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:261:44: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:265:18: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:294:36: error: ‘TCHAR’ was not declared in this scope
    /usr/include/CLucene/analysis/Analyzers.h:295:101: error: template argument 1 is invalid
    /usr/include/CLucene/analysis/Analyzers.h:313:28: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:314:36: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:316:41: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:319:40: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:347:31: error: ‘DEFAULT_BUFFER_SIZE’ has not been declared
    /usr/include/CLucene/analysis/Analyzers.h:366:36: error: ‘TCHAR’ does not name a type
    /usr/include/CLucene/analysis/Analyzers.h:367:41: error: ‘TCHAR’ does not name a type
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp: In member function ‘void FuzzyIndex::appendFields(const QString&, const QMap&)’:
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:121:89: error: invalid conversion from ‘const wchar_t*’ to ‘const int*’
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:121:89: error: initializing argument 1 of ‘lucene::document::Field::Field(const int*, const int*, int, bool)’
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:121:89: error: invalid conversion from ‘const wchar_t*’ to ‘const int*’
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:121:89: error: initializing argument 2 of ‘lucene::document::Field::Field(const int*, const int*, int, bool)’
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:126:55: error: ‘_T’ was not declared in this scope
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp: In member function ‘QMap FuzzyIndex::search(const QString&, const QString&)’:
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:176:70: error: invalid conversion from ‘const wchar_t*’ to ‘const int*’
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:176:70: error: initializing argument 1 of ‘lucene::queryParser::QueryParser::QueryParser(const int*, lucene::analysis::Analyzer*)’
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:179:143: error: invalid conversion from ‘const wchar_t*’ to ‘const int*’
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:179:143: error: initializing argument 1 of ‘lucene::index::Term::Term(const int*, const int*)’
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:179:143: error: invalid conversion from ‘const wchar_t*’ to ‘const int*’
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:179:143: error: initializing argument 2 of ‘lucene::index::Term::Term(const int*, const int*)’
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:187:50: error: ‘class lucene::document::Document’ has no member named ‘get’
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:187:64: error: ‘_T’ was not declared in this scope
    /root/tomahawk/src/libtomahawk/database/fuzzyindex.cpp:188:58: error: ‘class lucene::document::Document’ has no member named ‘get’
    make[2]: *** [src/libtomahawk/CMakeFiles/tomahawklib.dir/database/fuzzyindex.cpp.o] Error 1
    make[2]: *** Se espera a que terminen otras tareas….
    make[1]: *** [src/libtomahawk/CMakeFiles/tomahawklib.dir/all] Error 2
    make: *** [all] Error 2

  6. lfranchi Says:

    Hello, it looks like you are trying to compile against non-clucene-git. While you may have clucene-git installed, it seems CMake is not finding it and instead using the system version.

    • Alejandro Nova Says:

      Unfortunately not.

      root@faeris:/usr/include/CLucene# cat CLuceneConfig.cmake

      set(CLUCENE_VERSION_MAJOR 0)
      set(CLUCENE_VERSION_MINOR 9)
      set(CLUCENE_VERSION_REVISION 23)
      set(CLUCENE_VERSION_PATCH 0)

      set(CLUCENE_VERSION 0.9.23.0)
      set(CLUCENE_SOVERSION 0.9.23)

      That’s what I can get from git. This is Ubuntu Natty, so, the highest CLucene I can get through the packaging system is 0.9.21b.

      • lfranchi Says:

        Hmmm then I do not know. All the compile errors relating to clucene I have seen have to do with tomahawk accidentally finding the wrong CLucene version. I can confirm that it compiles fine with clucene-from-git, as that’s hthe only clucene that I have installed, and other users as well.

        Good luck! Come to #tomahawk if you want to debug it together 🙂

      • domme Says:

        do you still have the system clucene-dev package installed? that might interfere

      • Alejandro Nova Says:

        Yes, and yes, it did interfere. And yes, after an “aptitude remove libclucene-dev”, Tomahawk compiled and ran.

        Thank you.

  7. maninalift Says:

    You haven’t mentioned Playdar which apparently does a lot of the things you are doing here (and can be used with Amarok).

    • lfranchi Says:

      Tomahawk is built on playdar. Tomahawk in fact is a natural outgrowth of playdar, both in scope and in developers who are working on it. We support the Playdar HTTP api and the Playdar resolver API—that means if you can talk to playdar, you can talk to Tomahawk as well.

      Amarok’s support for playdar is shaky—I know, because I mentored Andy’s Playdar project during last year’s GSoC and it was my proposal in the first place 🙂 Amarok supports searching playdar for a specific track, but nothing more—since the Playdar API didn’t *(and doesn’t) support browsing yet, there is no browseable collection. For that any many other reasons, I think Tomahawk surpasses Amarok especially when talking about Playdar.

  8. nick Says:

    please sir, give us technical details: nepomuk? zeitgeist?

    • lfranchi Says:

      Not exactly sure what you are asking 🙂 No nepomuk or zeitgeist is used.

      • nick Says:

        Why can’t kde music players all use nepomuk and zeitgeist so I can freely choose the interface I like, without worrying about lost tagging, commenting and rating;

      • lfranchi Says:

        I see what you mean. Unfortunately, Tomahawk is not a KDE-specific player—it will have tight KDE integration, but KDE will be an optional dep. That makes the focus different from being “a pure kde media player using zeitgeist and nepomuk”, sorry.

      • Markus Says:

        QZeitgeist is no KDE libary and when you use Phonon 4.5 in the future, you’ll have Zeitgeist capabilities as well – they just have to be utilized 😉

  9. Num83rGuy Says:

    Looks like wonderful work you’ve done here.

    The only problem I have is I saw “media player” and thought awesome! finally a one stop, go to, on the dot program to play all of my media then all I saw was a (seemingly great) music player.

    I’m not knocking on what you have done it looks great and I will try it out but, my quest for the true media player that plays video and music in any and all forms I throw at it with a great interface for both windowed and full screen with multi-head support and low resource usage is alas but yet a dream.

  10. Markus Says:

    Which playback engine does Tomahawk use? Given it’s a Qt player, I’d assume Phonon but no Phonon-using player I know plays my music at double speed :-/

    • lfranchi Says:

      Yeah…. right now we are using RtAudio that we bundle with tomahawk. We are switching to Phonon+phonon-vlc for the next release, but there are a few bugs to iron out and we need phonon-4.5.0 (release yesterday) and phonon-vlc 4.5.0. so very bleeding edge 🙂 Switching to phonon will solve a LOT of our audio problems though, so we can’t wait.

      • Markus Says:

        You’re at 0.0.1. A bleeding edge Phonon is the least of your problems 😀

        Can’t wait either. I’m a passionate Juk user and I’m waiting for a new music player that’s alike Juk and is actually maintained apart from mere build fixes…
        Tomahawk looks to be the best candidate out there.
        Probably as soon as you’ll switch to Phonon and offer a real KDE build (with system-wide hotkeys, movable toolbars, Oxygen icon set), I’ll switch too.

  11. The User Says:

    hear me out—we’re different

    I think it is not that different: a new media-player, built from scratch, not sharing code with Amarok, Nepomuk or whatever…

    • lfranchi Says:

      You are of course free to think what you want. Go ahead and keep on using Amarok 🙂

      • The User Says:

        What I wanted to say: Of course it is not too bad, as long as it is free etc., but nobody wants to use multiple music-players and it is bad if there is one player with a very advanced interface and plugin system, another one with ultimate online-playback and sharing support etc. And I do not like redundancy, code should be shared, reused, put into libraries etc.

        PS:
        Could you remove the other, identical comment?

      • Markus Says:

        I think agreeing with the Amarok people on a stable plugin API to use with a great number of media players should benefit everyone just as KDE’s Image Plugin Interface (KIPI) benefits so many applications.
        If the API is QML/JavaScript-only, the plugins would even run on all OSes.

  12. venky Says:

    will it use telepathy for online friends integration? why only jabber/gtalk when telepathy supports multiple protocols

    • lfranchi Says:

      We would like to use telepathy indeed, and one of our developers is investigating it 🙂 We do require the protocol to allow multiple logons (you don’t want to be kicked off AIM when you open tomahawk)

      • The User Says:

        Wha I wanted to say: Of course it is not too bad, as long as it is free etc., but nobody wants to use multiple music-players and it is bad if there is one player with a very advanced interface and plugin system, another one with ultimate online-playback and sharing support etc. And I do not like redundancy, code should be shared, reused, put into libraries etc.

  13. STiAT Says:

    Great application, I wished for a media player like this for a long time. Seeing it being developed cross platform in Qt makes me even happier, so I can use it at home and at work.

    One question though, why does it install liblastfm headers? That seems quite strange to me.

    • lfranchi Says:

      hmm, are you talking about git master? we just integrated liblastfm2 which isn’t yet available separately, though we shouldn’t be installing the headers—thanks for the report. for version 0.0.1 we depend on liblastfm, we don’t even have the headers in our source tree.

  14. damian Says:

    Hi, I fail to understand what this player really is, does it support normal local collection? With playing from multiple computers, do you also refer lan, how will you share them?(samba?NFS?)
    Are the services it integrates with free? , isn’t downloading things from youtube something not quite legal?, I think they win money from ads, so you can’t just download their videos and play their music, and that goes to any music service I know.

  15. New Socially enabled Qt Music player. | Jussi01.com Says:

    […] recently came across Leo Franchi’s blog post and discovered a brilliant new music player. Its not yet packaged for Ubuntu, as some of the […]

  16. Cyrille Berger Says:

    Sounds exactly what I expect from a music player 🙂 Looking forward to see your project mature.

    And creating new projects is the what is driving innovation. Maybe it would be a good idea to create LibQtMusicPlayerKit that would contains components needed to assemble quickly new music players ;P

  17. g Says:

    The functionality that you want to introduce in this app is something which I would expect to be in Amarok. All the goals you mention are things which in my opinion fit perfectly the goal of Amarok (“(re)discover your music”). So my question is: why are you KDE guys not supporting the well-known KDE app Amarok and why you are instead complicating my life further by creating yet another music app that has some features that other music apps don’t have and which does not have all features available in the other apps? Why not help Amarok to become the app which lets me (re)discover my music wherever it is located?

    • lfranchi Says:

      Each of us has different reasons for working on Tomahawk, so I can only speak for myself. I am not motivated to work on Amarok right now, and haven’t been for the last nine or so months, for various social and technical reasons. tomahawk has different goals and a different internal architecture, too. on top of that, we don’t want a hard KDE dep because I want it to look beautiful on all platforms, win/mac/linux—integrate with KDE in linux, integrate with OSX on mac, etc. that’s simply not as easy if you bring the kde libraries along with you.

  18. bigbrovar Says:

    This is one of the best thing to happen in music management IMHO. I will sure keep an eye on this project. Keep up the good work.

  19. simon Says:

    I hate ALL the audio players in Linux since theyve all gone it seems to the Itunes ‘full page is needed to play an mp3’ mode.

    What most people want is something unobtrusive when they need it to be and maybe something mre full features on those rare occassion thats what they want.

    VLC has that basic playlist and is THE videoplayer on more than one OS so its very simple to have it be your default audio and video player.

    Less is more.

    • lfranchi Says:

      Those are big words—you don’t know “what most people want”” any more than anybody else does, so vague blanket statements like that don’t support your point. You clearly like minimal players that just let you play an mp3. VLC fits your use-case perfectly, and that’s great. But given how many people use Amarok/Banshee/Rhythmbox on linux and iTunes on OSX/Windows, at least appreciation for the fact that people want more out of their media players is in order.

      You also ignore the fact that video is different than audio—people don’t tend to have thousands of videos tagged and organized, they don;t have them grouped, watch them in sequence, etc. So VLC and Tomahawk are solving radically different problems.

      So all in all, Tomahawk is not for you—and that’s fine! We all want different things. You can continue using VLC to play your audio, and we’ll continue to make Tomahawk awesome to fit our needs and the needs of our users.

Comments are closed.


%d bloggers like this: