8bitbubsy / ft2-clone Goto Github PK
View Code? Open in Web Editor NEWFasttracker 2 clone for Windows/macOS/Linux
Home Page: https://16-bits.org
License: BSD 3-Clause "New" or "Revised" License
Fasttracker 2 clone for Windows/macOS/Linux
Home Page: https://16-bits.org
License: BSD 3-Clause "New" or "Revised" License
I see the mouse slows down a lot when using Linux in Full screen... If I enable "Software Mouse" it gets a bit better but still it's slow, while if I exit full screen mouse is working normal as expected.
I'm using an XM converter and noticed that it gets the note volumes (volume column byte) wrong. The converter assumes that the values are in the 00-64
range, but they are actually offset by 16
, i.e. in the 16-80
range. The same is true for XMs produced by MilkyTracker. I cannot find any information that suggests using this range in the XM specs that I have looked at.
The first spec doesn't really specify any range. The second one suggest a volume column byte in the 00-64
range:
+2 1 byte Volume column byte 00 (0..64, 255)
I'm assuming that the converter is the one that gets it wrong, but I'm curious about why. So I'm wondering if I'm missing something in the spec.
Stupid question, might be a user error :-)
I'm using v1.68 build, fresh install.
I click space to edit, then start pressing buttons. Strangely, it is not recording a single block, but rather a diagonal pattern. See picture below, easier. Is that the intended behaviour? :-) Looks pretty strange to me.
Hello! I would like to report a bug. I run FT2 on a fullscreen vsync'd setup, on Debian 11 running XFCE (AMD64). The application compiles fine and all, but I am having an issue where the size of the mouse is half as big as it was before, reaching the size of the normal one on non-FT2 setups (though you can change the type of the mouse in FT2 settings, just that it still looks wrong size-wise). I tried running the software mouse and it reverts back to the original position, albeit with obviously a bit of a delay due to vsync. This behavior didn't happen in previous releases of FT2 (Had 1.71, upgraded to 1.77)
Cheers!
MetalMaxMX
The delete key doesn't seem to work. Is there something I need to setup or change in system config?
Hello,
I've recently tested the latest revision of ft2-clone on my machine. I'm running Arch Linux with the i3 window manager.
When ft2-clone uses the hardware mouse, the cursor position doesn't match with what I'm clicking on, if I do the following:
Activating the software mouse fixes the issue… and it looks better in my humble opinion, since the cursor position have to be aligned with the pixels drawn on the screen.
Hello. I tried to use a version FT2C that I downloaded many months ago. Whenever I would launch it, it would open a blank window which instantly crashed. And then a minute later, my Windows 10 64 OS would get a BSOD with the message IRQL_not_less_or_equal, and then my PC would reset. I tried the program multiple times and each time the same thing would happen.
I've now downloaded the latest version of FT2C. When I launch it, the program window loads, and it appears like it should (it isn't blank), but it still crashes within a second of launching. However, I don't get the BSOD as frequently with the latest version. I was able to launch it, and watch it crash, multiple times without getting the BSOD. But then on another launch it gave me the same BSOD. And after my PC restarted, I did the same thing: Launched it and watched it crash multiple times without getting a BSOD, but then on another try getting the BSOD after it crashed.
Attached is a photo of the BSOD. By the way, your ProTracker 2 clone hasn't crashed on launch or caused a BSOD on my system during the time that I've tested it out.
My system is running Windows 10 LTSC 1809 with 16 GB of RAM on an i7 2600k, and has an Auzentech Prelude sound card.
I set up a basic instrument where I mapped different samples to keyboard notes.
For example I made a simple drum patch with kick, hat, snare, on 3 notes on keyboard. See screenshot of mapping.
But when I reload the saved instrument, the key split mappings are lost and rest to all 0s.
What am I doing wrong?
For example, take the first 16 channels as FM and the last 16 channels as PCM? Just like the chord mobile phone sound source equipped with YMU762MA-3 sound chip, FM timbre instruments can be customized? Will this idea come true?
Some files are missing in CMakeLists.txt
. After adding these two lines, it works.
"${ft2-clone_SOURCE_DIR}/src/modloaders/*.c"
"${ft2-clone_SOURCE_DIR}/src/smploaders/*.c"
Found strange issue: ghost note played pitched up. Too difficult to explain, but here mod in witch i found issue. Best to hear in first
pattern, track 3. Tested in others trackers, including your protracker clone, all plays same not pitched sound.
mod.zip
尊敬的開發者大大:請問FT2可以順利的移植到移動安卓設備上嗎🤔?如果可以的話就讓他在移動設備上再次大放廣彩吧😊!
Dear developer: Can FT2 be successfully ported to mobile Android devices🤔? If possible, let him show off again on mobile devices😊!
I compile ft2 1.44 on Fedora 33.
At the end of the compilation, I've got a link problem:
/usr/bin/ld: /tmp/ft2-clone.wMgGnp.ltrans2.ltrans.o: in function `doLoadMusic.lto_priv.0':
/home/collette/rpmbuild/BUILD/ft2-clone-1.44/src/ft2_module_loader.c:187: undefined reference to `loadDIGI'
/usr/bin/ld: /home/collette/rpmbuild/BUILD/ft2-clone-1.44/src/ft2_module_loader.c:184: undefined reference to `loadSTM'
/usr/bin/ld: /home/collette/rpmbuild/BUILD/ft2-clone-1.44/src/ft2_module_loader.c:183: undefined reference to `loadS3M'
/usr/bin/ld: /home/collette/rpmbuild/BUILD/ft2-clone-1.44/src/ft2_module_loader.c:185: undefined reference to `loadMOD'
/usr/bin/ld: /home/collette/rpmbuild/BUILD/ft2-clone-1.44/src/ft2_module_loader.c:182: undefined reference to `loadXM'
/usr/bin/ld: /home/collette/rpmbuild/BUILD/ft2-clone-1.44/src/ft2_module_loader.c:186: undefined reference to `loadSTK'
/usr/bin/ld: /tmp/ft2-clone.wMgGnp.ltrans5.ltrans.o: in function `loadSampleThread.lto_priv.0':
/home/collette/rpmbuild/BUILD/ft2-clone-1.44/src/ft2_sample_loader.c:107: undefined reference to `loadWAV'
/usr/bin/ld: /home/collette/rpmbuild/BUILD/ft2-clone-1.44/src/ft2_sample_loader.c:106: undefined reference to `loadIFF'
/usr/bin/ld: /home/collette/rpmbuild/BUILD/ft2-clone-1.44/src/ft2_sample_loader.c:109: undefined reference to `loadRAW'
/usr/bin/ld: /home/collette/rpmbuild/BUILD/ft2-clone-1.44/src/ft2_sample_loader.c:108: undefined reference to `loadAIFF'
collect2: error: ld returned 1 exit status
Hello, I try to copy sample or instrument using S.E.Ext and always get a crash. version 1.47 Win 10
Fn+Enter doesn't work, unfortunately.
Is there any way to rebind the short keys somehow?
Does not play stereo .mod files in stereo.
Does FT2 support stereo output?
Dear developer,
I was trying to compile ft2-clone in Linux (I am using Arch Linux) and I had to replace two lines inside CMakeLists.txt:
The lines that had to be replaced where:
target_link_libraries(ft2-clone
PRIVATE m asound pthread ${SDL2_LIBRARIES})
And they were replaced by:
target_link_libraries(ft2-clone PRIVATE asound SDL2::SDL2)
Without this change, Linux is unable to build ft2-clone, it does not find SDL2 libraries.
As I remember in FT2 by pressing the "space" key the Song will start or stop playing.
Hello,
ALT + F3/F4/F5 not work in 1.71 on Windows 11, older versions worked. Tried with GeForce Experience uninstalled, not work too.
Hi!
I recently wanted to add ft2-clone to Fedora, and it was pointed out to me (and I indeed missed that) that ft2-clone includes some non-free graphics unlike pt2-clone:
https://github.com/8bitbubsy/ft2-clone/blob/master/src/gfxdata/bmp/LICENSE.txt
This raises several questions:
Thanks.
Hello,
default directories not work anymore after patch 1.21 on windows 10
Hi @8bitbubsy
First I must congratulate your for the brilliant and excellent work you are doing.
I am sure you may have looked at this. However, I want to understand your choice of linking against the DLL version of MSCRT instead of the static version.
I see that you have a text file explaining folks to download and install the Microsoft Visual C++ Redistributable
. However, you could avoid this by just linking against LIBCMT.lib
(/MT
) in the VS Solution. This will allow you to get rid of the above text file and save your users one step.
Hello,
can't find a key to enter "volume slide up" command in volume column. '+' nor "shift + '+'" not work for me. US keyboard layout.
In NixOS we use cmake to build this package, and I noticed that it'd only require a few CMakeLists.txt modifications to make it work on mac os too, namely:
__MACOSX_CORE__
instead of __LINUX_ALSA__
when building on mac os-framework CoreAudio -framework CoreMIDI -framework CoreServices -framework Cocoa
linking flags when building on mac os (not sure how this is done in cmake)asound
when building on linuxthis would make it possible to drop the ad-hoc make-*.sh
scripts
on wayland, when using hardware mouse, the mouse click is not registered where the mouse cursor is.
i tinkered a bit and this could be a good fix:
diff --git a/src/ft2_video.c b/src/ft2_video.c
index 026a8e6..49b4f79 100644
--- a/src/ft2_video.c
+++ b/src/ft2_video.c
@@ -1006,10 +1006,10 @@ bool setupRenderer(void)
else
SDL_ShowCursor(SDL_FALSE);
- // Workaround: SDL_GetGlobalMouseState() doesn't work with KMSDRM
+ // Workaround: SDL_GetGlobalMouseState() doesn't work with KMSDRM/Wayland
video.useDesktopMouseCoords = true;
const char *videoDriver = SDL_GetCurrentVideoDriver();
- if (videoDriver != NULL && strcmp("KMSDRM", videoDriver) == 0)
+ if (videoDriver != NULL && (strcmp("KMSDRM", videoDriver) == 0 || strcmp("wayland", videoDriver) == 0))
video.useDesktopMouseCoords = false;
SDL_SetRenderDrawColor(video.renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
i've tested above change in:
and it seems to fix the issue (and not break on xorg).
I'm running Pop_OS! and whenever I click on a setting to increment it up or down it increments far too fast for me to be precise. Settings such as BPM, speed, pattern, anything to do with the GUI is incredibly difficult to get to a specific value. I've tried both the pre-compiled binaries and building it from source myself and they both yield the same result.
I try to build 1.41 on Fedora 32 64 bits and the build fails with the following error:
[ 15%] Building C object CMakeFiles/ft2-clone.dir/src/ft2_events.c.o
/usr/lib64/ccache/cc -D__LINUX_ALSA__ -isystem /usr/include/SDL2 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DNDEBUG -o CMakeFiles/ft2-clone.dir/src/ft2_events.c.o -c /home/collette/rpmbuild/BUILD/ft2-clone-1.41/src/ft2_events.c
/home/collette/rpmbuild/BUILD/ft2-clone-1.41/src/ft2_config.c: In function 'setConfigFileLocation':
/home/collette/rpmbuild/BUILD/ft2-clone-1.41/src/ft2_config.c:636:4: error: 'result' undeclared (first use in this function)
636 | result = chdir(".config");
| ^~~~~~
How to reproduce:
Start FT2 clone, add 2 channels (making it 10) and keep pressing TAB. On the last channel, the view does not wrap around to channel 1 and the cursor is stuck in a weird place in between channels 9 and 10.
Something like this (where the square brackets should represent the cursor):
CH9 CH10
--- -- 0[00 -]-- -- 000
Note inputs then end up on channel 1.
This is with v1.28 on Win64.
I am using FT2 Clone with a Windows 8 tablet, and it works great except the touchscreen has one issue: when I touch to click, the click appears always in the last position I touched the screen, not the one I am currently touching. Basically if I touch twice in the same place it will click the button under the touchscreen, but if I try to touch something else, it always click first on the last position. A sort of workaround is to not click (touch) but drag and position where I want to click, then touch twice and goes ahead, which makes all the experience ultra slow and cumbersome. Is there a reason for this? I only have this issue with FT2 Clone and with PT2 Clone, all other app works as expected with touchscreen
thank you
After updating from version v1.80
to v1.81
, the following regression occurs:
ft2-clone /tmp/some.xm
The audio track plays normal but 'Error' box appears:
As soon as OK is pressed the player crashes:
Segmentation fault (core dumped)
Here is what I get from gdb:
$ gdb /usr/local/bin/ft2-clone
GNU gdb (GDB) 14.1 [GDB v14.1 for FreeBSD]
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-portbld-freebsd14.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/local/bin/ft2-clone...
(No debugging symbols found in /usr/local/bin/ft2-clone)
(gdb) r
Starting program: /usr/local/bin/ft2-clone
[New LWP 213570 of process 72069]
[New LWP 213571 of process 72069]
[New LWP 213572 of process 72069]
ALSA lib seq_hw.c:529:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
MidiInAlsa::initialize: error creating ALSA sequencer client object.
Thread 4 received signal SIGSEGV, Segmentation fault.
Address not mapped to object.
[Switching to LWP 213572 of process 72069]
0x00000000002e414c in ?? ()
(gdb) continue
Continuing.
Audio write: Invalid argument
[Detaching after fork from child process 72269]
[LWP 213571 of process 72069 exited]
Thread 4 received signal SIGSEGV, Segmentation fault.
Address not mapped to object.
0x00000000002e414c in ?? ()
(gdb) bt
#0 0x00000000002e414c in ?? ()
#1 0x000000000027c7a1 in ?? ()
#2 0x000000000027cddf in ?? ()
#3 0x000000080045a2ad in ?? () from /usr/local/lib/libSDL2-2.0.so.0
#4 0x00000008004e83f9 in ?? () from /usr/local/lib/libSDL2-2.0.so.0
#5 0x0000000800518a75 in thread_start (curthread=0x804f70900) at /usr/src/lib/libthr/thread/thr_create.c:290
#6 0x0000000000000000 in ?? ()
Backtrace stopped: Cannot access memory at address 0x7fffdfbfc000
The following SDL versions are present on the system:
sdl2-2.30.1
sdl2_gfx-1.0.4
sdl2_image-2.6.3_5
sdl2_mixer-2.6.3_1
sdl2_ttf-2.20.2
Seems like the copy paste keybindings dont work. When I ALT + F4 it prompts me if I want to exit or not. When I try to paste nothing happens.
Im using the version in Linux Mint software repository.
Is there a way around this? It has to do with permissions to use audio input
also would be great a way to stop audio recording without keyboard
thank you
(i know, not a big deal, but thought you might want to know)
When setting the desktop color to black, all the obstacles in nibbles are invisible. Could be a case of "it's not a bug, it's a feature" (aka blind mode), but maybe a warning message would be nice if the desktop color/luminance is set too low to play without surprises. :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.