Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /storage/content/49/145849/famitracker.com/public_html/forum/classes/dbHandler.php on line 29 FamiTracker
Login:
Menu:
Post: Author:
FamiTracker > General > Source and development > So, I'm working on a Linux version of FamiTracker Owner: NukeThePotato New post
Page 1 of 6 Sort: Goto Page: [1] [2] [3] [4] [5] [6] Next >>
So, I'm working on a Linux version of FamiTracker Posted: 2012-06-07 14:27  (Last Edited: 2013-01-03 23:23) Reply | Quote
NukeThePotato

Avatar

Member for: 3678 days
Location: Calgary, AB, Canada
Status: Offline

#35553
Well, it's really more of a set of previews at the moment. They're very WIP. Use at your own discretion.

---

[size=3][url=http://code.google.com/p/famitracker-cx/]Google Code project page

[size=3][b][u]Downloads[/u][/b]
June 7 - Preview 1:
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview1-src.tar.gz]Source (117.1kB)
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview1-src-git.tar.gz]Source with git tree (1.6MB)
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview1-x86.tar.gz]32 bit binary (88.7kB)
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview1-x64.tar.gz]64 bit binary (76.0kB)

June 14 - Preview 2 [url=http://famitracker.com/forum/posts.php?id=3568&pid=35788#35788](post)
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview2-src.tar.gz]Source (158.5kB)
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview2-src-git.tar.gz]Source with git tree (1.6MB)
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview2-x64.tar.gz]64 bit binary (6.4MB)

August 2 - Preview 3 [url=http://famitracker.com/forum/posts.php?id=3568&pid=37663#37663](post)
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview3-src.tar.gz]Source (193.9kB)
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview3-src-git.tar.gz]Source with git tree (2.5MB)
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview3-x64.tar.gz]64 bit binary (6.9MB)

January 3, 2013 - Preview 4 [url=http://famitracker.com/forum/posts.php?id=3568&pid=43287#43287](post)
[url=http://code.google.com/p/famitracker-cx/downloads/detail?name=famitracker-cx_0.4.1a-p4_src.tar.gz&can=2&q=]Source (282kB)
[url=http://code.google.com/p/famitracker-cx/downloads/detail?name=famitracker-cx_0.4.1a-p4_x64.tar.gz&can=2&q=]64 bit binary (6.7MB)

---

So, a pet project of mine for the past 12 days or so has been trying to port FamiTracker to Linux. Given the entangling labyrinth of source code, I wasn't sure if I would follow through. Well, I decided to try anyway.
This is my first porting project, and doing this port has been a valuable learning experience.

I'm releasing a preview for two reasons.
[li][ul]To receive useful and constructive feedback from users and developers[/ul][/li][li][ul]To warm people up to a Linux release instead of (completely) surprising everyone in the end.[/ul][/li]

[size=3][url=http://code.google.com/p/famitracker-cx/wiki/InitialProjectFAQ]Frequently Asked Questions (by nobody)

[u]Objectives and todo[/u]
- Get Famitracker running natively on Linux (duh)
-- Ubuntu/Fedora packages (<1 MB)
-- Other .tar.gz package, bundled with Qt4 and libstdc++ (~6-7 MB)

- Build on Windows and OS X. I don't have a Mac, so someone else can do this.

- Allow use of the player in open source projects

- Create a command line interface for simple jobs
-- Exporting to WAV/NSF
-- Playback
-- Piping sound to stdout (eg. $ famitracker -p song.ftm | thisprogramplaysaudio)

- Remote control interface (through named pipe or stdin)

- PulseAudio, SDL audio, Jack playback

---

I've been using FamiTracker since around 2008 (leisurely), and dabbling into the NES homebrew scene in 2010. I'm not that new to the NES scene, but I've been more of a lurker.
Also, the wall of text may make it seem like I'm overpresenting this a bit. I'm just being [i]really[/i] verbose.

[b]Anyway, have fun![/b]

Posted: 2012-06-07 20:49  (Last Edited: 2012-06-07 21:20) Reply | Quote
PJ

Avatar

Member for: 3724 days
Location: Poland
Status: Offline

#35562
OK, first thing: I'm not familiar with CMAKE, but following your steps exactly like in readme does not work, i can't compile this thing. I tried other directory names(it could be just a typo) but it doesnt work anyway:
[quote=]
[root@blaszak fami]# mkdir famitracker-bin
[root@blaszak fami]# cd famitracker-bin/
[root@blaszak famitracker-bin]# cmake -DCMAKE_BUILD_TYPE=Release ../famitracker
CMake Error: The source directory "/home/piotrek/Pobieranie/fami/famitracker" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.
[root@blaszak famitracker-bin]# cmake -DCMAKE_BUILD_TYPE=Release ../famitracker-bin
CMake Error: The source directory "/home/piotrek/Pobieranie/fami/famitracker-bin" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
[root@blaszak famitracker-bin]# cmake -DCMAKE_BUILD_TYPE=Release ../Source
-- The C compiler identification is GNU 4.7.0
-- The CXX compiler identification is GNU 4.7.0
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found ALSA: /usr/lib/libasound.so (found version "1.0.25"
CMake Error at CMakeLists.txt:58 (setup_libs):
Unknown CMake command "setup_libs".


-- Configuring incomplete, errors occurred!

[/quote]


However, binary works! I tried a few songs and it plays them! Great job so far!
Edit: I found FTM that causes segfault. It's [url=http://famitracker.com/forum/posts.php?id=1713]here. It has engine speed changed, i don't know if that is important.

And one thing more, this time to forum software authors: this is kind of ridiculous that i get this error:
[quote=]Text to long max 50 characters[/quote]
just because i respond in this topic and "RE:" part makes title too long :P



Posted: 2012-06-08 00:04 Reply | Quote
NukeThePotato

Avatar

Member for: 3678 days
Location: Calgary, AB, Canada
Status: Offline

#35565
[quote=PJ]OK, first thing: I'm not familiar with CMAKE, but following your steps exactly like in readme does not work, i can't compile this thing.[/quote]
Ah. You should create famitracker-bin outside of the directory you extracted all the files in. So, not the same directory as ReadMe.txt, but the one before it. I should have been more specific. (I referred to the 'source' directory as the entirety of the source, not the "Source" directory. Yeah, confusing. ) It's been updated.

[quote=PJ]I found FTM that causes segfault. It's [url=http://famitracker.com/forum/posts.php?id=1713]here. It has engine speed changed, i don't know if that is important.
[/quote]
It appears to use the FDS expansion chip (which is unimplemented atm), but it never plays anything from it. So it accesses a channel set to NULL (it doesn't exist) when playing the notes and then segfaults.
Resaving the file with Internal only (Module -> Module Properties) plays the file.
Then I found it was going REALLY slow. The player wasn't accounting for the engine speed, so now that's fixed. The binaries are updated.

[quote=PJ]And one thing more, this time to forum software authors: this is kind of ridiculous that i get this error:
[quote=]Text to long max 50 characters[/quote]
just because i respond in this topic and "RE:" part makes title too long :P
[/quote]
Sucky. The title I was going to give was originally too long, so I made it EXACTLY 50 characters. I knew I didn't need that "So, ". :/


Attachments:
metroid_complete_ost_2.ftm (45 Kb)
Posted: 2012-06-08 02:58 Reply | Quote
TechEmporium

Avatar

Member for: 4485 days
Status: Offline

#35572
It's a good thing that you're making it a terminal program (greater compatibility across all Linux distros,) but do you intend to implement a GUI eventually (i.e.: X-Windows GUI instead of something desktop-dependent)?

I compiled it under the latest Linux Mint just fine & so far, other than the missing FDS support, it works pretty well.

Some people do, however, avoid using FamiTracker in WINE entirely & either dual-boot to Windows, or use a VM running Windows (I use VirtualBox & QEmu).

_______________________
Technology: the one thing that's hated & cursed at by all engineers, technologists, scientists & technicians!

(Lousy modern technology! )
Posted: 2012-06-08 03:16 Reply | Quote
NukeThePotato

Avatar

Member for: 3678 days
Location: Calgary, AB, Canada
Status: Offline

#35573
[quote=TechEmporium]It's a good thing that you're making it a terminal program (greater compatibility across all Linux distros,) but do you intend to implement a GUI eventually (i.e.: X-Windows GUI instead of something desktop-dependent)?

I compiled it under the latest Linux Mint just fine & so far, other than the missing FDS support, it works pretty well.

Some people do, however, avoid using FamiTracker in WINE entirely & either dual-boot to Windows, or use a VM running Windows (I use VirtualBox & QEmu).[/quote]
I'm currently working on a Qt GUI. The terminal playback was for the sake of the preview, but it'll also be in the final product using a flag argument.

$ famitracker -p ./playsinterminal.ftm
$ famitracker ./playsingui.ftm

I have in dev screenshots of the work-in-progress gui. It really doesn't do much at the moment. No editing or anything.


Attachments:
screenshot_from_20120607_190940.png (471 Kb)
Posted: 2012-06-08 14:20 Reply | Quote
PJ

Avatar

Member for: 3724 days
Location: Poland
Status: Offline

#35588
OK, I managed to compile it. And the metroid ftm indeed plays slow, you updated binary, but not source

Posted: 2012-06-09 14:27 Reply | Quote
NukeThePotato

Avatar

Member for: 3678 days
Location: Calgary, AB, Canada
Status: Offline

#35625
[quote=PJ]OK, I managed to compile it. And the metroid ftm indeed plays slow, you updated binary, but not source [/quote]
The sources [i]should[/i] have been up to date since the last time I updated them. Try it again. (the readme has the "Create a new directory outside of the extracted directory" bit)

I should also have a GUI preview up [i]very[/i] soon now. For the meanwhile, have a screenshot.

[url=http://dl.dropbox.com/u/17479048/famitracker/screenshots/Screenshot%20from%202012-06-09%2006%3A07%3A29.png]Screenshot!

Posted: 2012-06-09 18:40 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#35627
I don't use linux, but I think it's really cool that you're doing this. Good effort, Nuke!

Posted: 2012-06-10 04:21 Reply | Quote
particlese

Avatar

Member for: 3663 days
Location: US
Status: Offline

#35646
Cool! I will definitely be testing this out tomorrow. I fiddle around with music mostly on Linux, so it would be great to have Famitracker there, too.

Thank you for working on this!

Posted: 2012-06-10 04:37  (Last Edited: 2012-06-10 07:29) Reply | Quote
com63

Avatar

Member for: 4288 days
Location: North Van, BC, Canada.
Status: Offline

#35647
Awesome work! I use OpenSuse 12.1, myself; if you can't build OpenSuse RPMs for it later down the line, I could possibly do it. I've been screwed over in the past by lack of OpenSuse-compatible RPMs.

Stoked for Jack support.

I might be able to port it over to the GPH Caanoo, which supports QT, but with some limitations.

_______________________
Everything moves real slow when it's 40 below.
Posted: 2012-06-11 00:25 Reply | Quote
particlese

Avatar

Member for: 3663 days
Location: US
Status: Offline

#35665
Sounds great so far (tested with multi-song 2a03+VRC6 files), and it was a breeze to compile with whatever dev packages I already had. The commented wave-out works nicely, too. I'm definitely looking forward to the Jack support and to playing around with that .ui file I spy in the screenshot, assuming you decide to keep going with that option.

I'm trying to come with a question or two to keep things interesting, but that wall of text keeps getting in the way. Keep up the good work!

Posted: 2012-06-15 06:37 Reply | Quote
NukeThePotato

Avatar

Member for: 3678 days
Location: Calgary, AB, Canada
Status: Offline

#35788
Update:
Preview 2 is up! You get the Qt GUI this time. (console player also included)
[i]Note: The GUI is very incomplete![/i]
[url=http://dl.dropbox.com/u/17479048/famitracker/screenshots/06-14-snapshot.png]Screenshot

I'll update the main post with the download links from now on. To also save on walls of text, all other important text will be in the included README.
A custom compiled version of Qt 4.8.1 is bundled in the binary, and I'm not sure how well it runs on other systems. I think there's a GTK+ dependency for the styling support, but it should still run on a majority of Linux distros. If it doesn't run, let me know what the errors are.
There's also no 32 bit binary at the moment because cross compiling on Ubuntu is a pain in the ass. However, you can still compile from source.

Oh yeah, and [b]FDS support[/b]!

[url=http://dl.dropbox.com/u/17479048/famitracker/screenshots/jack.png]JACK support is in the works. It's a [i]biiiit[/i] different from ALSA, so it'll take some time to get right.

To run the binaries, just launch the .sh files.

[u][b]Downloads[/b][/u]
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview2-src.tar.gz]Source (158.5kB)
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview2-src-git.tar.gz]Source with git tree (1.6MB)
[url=http://dl.dropbox.com/u/17479048/famitracker/famitracker-preview2-x64.tar.gz]64 bit binary (6.4MB)

Posted: 2012-06-15 08:59 Reply | Quote
zephemeros

Avatar

Member for: 3944 days
Location: Campbell River, British Columbia
Status: Offline

#35794
This is just absolutely amazing. The time you're taking to make this port is very well appreciated, trust me!

_______________________
| [url=http://www.youtube.com/zephemeros1]youtube | [url=http://www.soundcloud.com/zephemeros]soundcloud |
Posted: 2012-06-15 09:25 Reply | Quote
Gamma

Avatar

Member for: 3816 days
Location: Alaska
Status: Offline

#35796
I entertained the idea of trying out linux, and came up with a list of software i'd need to be able to use natively in the OS in order to seriously consider the switch. Famitracker was obviously on this list - so, thank you for your efforts!

Posted: 2012-06-15 18:03  (Last Edited: 2012-06-15 18:10) Reply | Quote
PJ

Avatar

Member for: 3724 days
Location: Poland
Status: Offline

#35806
Hey, it really works! Great job!

However, when i move window into another desktop, Control Panel turns off spontaneously - it just disappears, and an option in menu View->Control Panel becomes unchecked. I'm using Awesome WM.

Also, when window is too narrow and you can't see all five channels, there is no horizontal scrollbar.

Edit: I just noticed that there were some icons on the screenshots. I don't have any icons, there are just titles.

Page 1 of 6 Sort: Goto Page: [1] [2] [3] [4] [5] [6] Next >>