Coder Social home page Coder Social logo

schismtracker / schismtracker Goto Github PK

View Code? Open in Web Editor NEW
1.1K 1.1K 85.0 9.84 MB

An oldschool sample-based music composition tool.

Home Page: https://schismtracker.org

License: GNU General Public License v2.0

Makefile 0.35% M4 0.50% C 96.77% Shell 0.11% Python 1.02% Objective-C 0.80% Roff 0.38% Perl 0.08%
audio impulsetracker music tracker

schismtracker's Introduction

Schism Tracker

Schism Tracker is a free and open-source reimplementation of Impulse Tracker, a program used to create high quality music without the requirements of specialized, expensive equipment, and with a unique "finger feel" that is difficult to replicate in part. The player is based on a highly modified version of the Modplug engine, with a number of bugfixes and changes to improve IT playback.

Where Impulse Tracker was limited to i386-based systems running MS-DOS, Schism Tracker runs on almost any platform that SDL 2 supports. Currently builds are provided for Linux, Mac OS X, and Windows. Most development is currently done on 64-bit Linux. Schism will most likely build on any architecture supported by GCC4 (e.g. alpha, m68k, arm, etc.) but it will probably not be as well-optimized on many systems.

See the wiki for more information.

screenshot

Download

The latest stable builds for Windows, macOS, and Linux are available from the releases page. Builds can also be installed from some distro repositories on Linux, but these versions may not have the latest bug fixes and enhancements. Older builds for other platforms can be found on the wiki. Installing via Homebrew on macOS is no longer recommended, as the formula for Schism Tracker is not supported or maintained by anyone directly involved in the project.

Compilation

See the docs/ folder for platform-specific instructions.

Packaging status

Packaging status

schismtracker's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

schismtracker's Issues

Explanation of the mixing modes

The mixing modes (no interpolation, linear, cubic spline and 8-Tap FIR Filter) aren't documented for schism (l couldn't find doc).
l'm wondering which impact exactly they have on cpu usage, sound quality and deviation from the original/supposed sound.

l could hear some differences: no interpolation sounds noisy (of course), linear sounds like cubic and 8-Tap FIR Filter lacks volume of high frequency sounds.

Xircon IRC highlight interfering with Schism

Abridged IRC log:

there's also a bug where schism will hang if someone nick highlights me in irc...this one isn't as detrimental, but its still a big bug because when you're tracking and someone says your name on irc, it doesn't fully take away functionality, it disables (or better yet, recognizes it as your shift key being held) output so that if you hit any function keys while tracking, it just disables the channel youre listening to
what client?
well the irc one, i use xircon...so when someone says my name, it makes the num lock blink
something i just did has locked the + and - keypad in the f3 screen..i dunno if its related to xircon interfering or what

MIDI output config is totally ignored

courtesy of yogi at chipmusic.org

One thing that I don't understand is the Midi Output Configuration page. The init values were:
start=FF
stop=FC
tick=
So I changed these to:
start=FA
stop=FC
tick=F8
At one point I wanted to see the Start/Stop message behaviour better, so I reset the tick field to blank. But ticks continued to be sent. Then also blanked the Start field but Start messages also are sent regardless of the values on the Midi Configure Page. Am I misunderstanding the use of this page? It does update the config file and I have tried re-starting Schism. Or does it describe how/what the tracker responds to?
It's not really an issue for me but just trying to understand,
Yogi

see https://github.com/schismtracker/schismtracker/compare/midi-out-config

Recent windows binaries?

The wiki links to the releases but these are all in source form only, I can't find any recent windows builds but would really really love to try some. Any help appreciated (but if I can avoid compiling that's preferable)

(not sure where else to ask this question if this isn't the place for it)

Configurable key bindings

(un)muting a channel using alt+F doesn't work for channel 1 and 2, except if l hit ctrl+d to lock the mouse, else lubuntu or lxde opens the startmenu (alt+F1).

When listening to some it file, changing playback speed or volume doesnt work with my kezboard map, l need to change it to us *e.g. on the startup hook(. As you can see, l can't write correctly if l use that map. So switching to the us keyboard layout temporary isn't a suitable solution for me.
l'd prefer configurable key combinations. (they can't be configured yet, can they?)

l'm using lubuntu 14.04 and the newest schismtracker release.

"ALSA: Resource temporarily unavailable" when selecting first MIDI port on a device

In the MIDI configuration screen. When I go down the list of devices, I can only activate the second or later instance of each device. I.e. on my firewire interface with two MIDI out ports I can only activate the second port, the first one stays locked to "disabled." Using a simple 1-port USB dongle I can't enable it at all, it's stuck on "disabled" and nothing can be done. Pressing spacebar to activate the port generates an "ALSA: Resource temporarily unavailable" error in the message console.

More details & screenshot for explanation here (scroll down) :
http://chipmusic.org/forums/topic/18439/what-happened-to-schismtrackerorg/page/6/

The issue occurs for me on Fedora 21, Mint 17, Mint 18, and AVLinux 2016 (Debian), including on a freshly compiled version with no preexisting config file. I'm using the latest 2016.11.14 snapshot, compiled by myself, and it occurs on all of them. I built the exact same source tarball on my Mac (OSX 10.8) and it doesn't happen there. It was also present at least as far back as version 2016.07.31.

Happens regardless of whether the ALSA or Pulse driver is being used, but does NOT happen on the "dummy" driver. I haven't tried OSS yet.

Anyone have an idea how to fix this? I have a live act coming up early in January and I really want to incorporate Schism into it.

Note-off + instrument behaviour is incorrect

This has been wrong for years and Modplug users have been making wrong IT files for years because of this (I had to fix Janky the Ghost's Funk Parade because of this Modplug bug). I've forgotten the exact behaviour of this, sadly. Something like this:

Modplug version: Ignore instrument and just do a note-off.

Real version:

  • Reset the volume to the sample volume of the target sample.
  • If there is a sample default pan, reset the pan to that too. (Not tested with instrument pan but it's likely that fires too.)
  • Switch to the new instrument + sample but KEEP PLAYING THE CURRENT SAMPLE.
  • If "Old Effects", switch to the new instrument envelopes and run them from the start.

If there really aren't any legitimate cases as to why the hell you would use a note-off with an instrument number then the easiest fix is to strip them on load, but that idea makes me feel bad inside. It would be more sensible to make it spew out a horrible sound, although you'd probably want to make sure that b-knox never touches it, otherwise he'll abuse the living shit out of it.

At this stage, libit216 plays this "as intended" (read: wrong) so either there's a mistake in my transcription or my sound driver isn't accurate. Seeing as both SB16 and GUS seem to behave in the same way here, and there are still a few songs that break in libit216, I'll need to find out where the C code and the reference assembly code diverges. It's probably buried in the goto soup somewhere.

Toggle sample quality without converting distorts sample

Original sample (16-bit):
before

After toggle quality without conversion:
after

After toggle quality with conversion:
after2

Only happens with certain samples. Impulse Tracker does this too, but it seems very wrong and not at all useful. Most samples just become noise.

keyjazzing starts a neverending stream of MIDI tick codes

If we play a note keyjazz-style, a stream of MIDI ticks starts which continues until e.g. the stop key is pressed - even once the keyjazzed sample has finished, the ticks will go on.

While maybe keyjazzing is technically (or is in implementation terms) playback, IMHO for MIDI tick code purposes this probably isn't what we really want.

Any opinions?

File/Folder browser automatically reads larger files - perhaps could be lazier

Maybe it's just my machine but when navigating into directories that have larger .wav files, ST tends to want to read all of them even if i'm trying to navigate into another folder of samples. Could the File/Folder browser check just file-size instead and if the file is above X mb then load it for waveform viewing/playback only if the caret/selection falls on that file.

I know in the meantime to avoid directories with large files, but eventually maybe this can be considered.

Crash on launch

After upgrading to OS X 10.11.5, Schism Tracker has started crashing on launch. Here's the relevant bits from console:

08.07.2016 00.48.41,669 schismtracker[71999]: CPSGetCurrentProcess(): This call is deprecated and should not be called anymore.
08.07.2016 00.48.41,669 schismtracker[71999]: set_foreground_operation_state(): This call is deprecated and should not be called anymore.
08.07.2016 00.48.47,462 schismtracker[71999]: WARNING: The Gestalt selector gestaltSystemVersion is returning 10.9.5 instead of 10.11.5. This is not a bug in Gestalt -- it is a documented limitation. Use NSProcessInfo's operatingSystemVersion property to get correct system version number.
Call location:
08.07.2016 00.48.47,462 schismtracker[71999]: 0   CarbonCore                          0x9b1c4e3d ___Gestalt_SystemVersion_block_invoke + 135
08.07.2016 00.48.47,462 schismtracker[71999]: 1   libdispatch.dylib                   0x997e283f _dispatch_client_callout + 50
08.07.2016 00.48.47,462 schismtracker[71999]: 2   libdispatch.dylib                   0x997e271b dispatch_once_f + 78
08.07.2016 00.48.47,462 schismtracker[71999]: 3   libdispatch.dylib                   0x997e3fa5 dispatch_once + 31
08.07.2016 00.48.47,462 schismtracker[71999]: 4   CarbonCore                          0x9b1408e1 _Gestalt_SystemVersion + 1047
08.07.2016 00.48.47,462 schismtracker[71999]: 5   CarbonCore                          0x9b14008a Gestalt + 154
08.07.2016 00.48.47,462 schismtracker[71999]: 6   sdl.dylib                           0x001b347b SDL_SoftStretch + 22203
08.07.2016 00.48.47,473 schismtracker[71999]: Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
08.07.2016 00.48.47,523 schismtracker[71999]: 00:48:47.523 WARNING:  140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h.
08.07.2016 00.48.47,598 com.apple.xpc.launchd[1]: (com.apple.xpc.launchd.oneshot.0x100001ad.schismtracker[71999]) Service exited due to signal: Illegal instruction: 4
08.07.2016 00.48.48,576 ReportCrash[72001]: Saved crash report for schismtracker[71999] version 20120105 (20120105) to /Users/bitbear/Library/Logs/DiagnosticReports/schismtracker_2016-07-08-004848_BitMac.crash

And here's the crash log.

Minipop slider click areas offset by one cell

HybridDog writes:

By the way, there's another problem: The areas where mouse clicks for spawning the minipop are recognized have a left one-character-sized unwanted offset:
2016-09-15-083754_1920x1080_scrot
the red box shows where you need to click, the blue one shows the area without the unwanted offset

Panning view (Alt+V) *

in the F1 there's a star beside this command, what does that mean?

I recall that the volume track had a secondary panning view, which used differently colored digits to indicate you were editing a track panning. Is my brain deceiving me or is this function not implemented in schism / put under a different shortcut.

Valid MTM module detected as corrupted

Transcript from https://bitbucket.org/Storlek/schismtracker/issues/1/:

jamesbond3142:

ftp://ftp.modland.com/pub/modules/Multitracker/Rush/joseph%20mega-mix.mtm

Recent versions of schismtracker (from 2015 onwards) cannot load this file anymore, it always detects it as corrupted (but it is not). VLC compiled with libmodplug can play this file; XMP can also load and play this file.
Schismtracker compiled under 64-bit Linux.

Star:

Hey there! Sorry it took a while to get back with you. I'd noticed this bug myself, never had the time to figure it out, but now that it seems there's some dev interest - though it's not on here and so I'm having to migrate everything back to github. Kind of annoying, but I'll make sure this issue gets transferred over, and fixed!

Error: possibly undefined macro: AM_PATH_SDL

I'm trying to set up a continuous integration build of Schism Tracker on AppVeyor and I'm struggling with getting the thing to compile. I've installed SDL with pacman and while the necessary files (I think) are on disk, they are probably not on the PATH or another environment variable and I can't get autoreconf to find the AM_PATH_SDL macro. Here's what I'm trying to do:

autoreconf --install --include=/mingw32/include/SDL

But this is failing with the following exception:

configure.ac:58: warning: macro 'AM_PATH_SDL' not found in library
configure.ac:58: error: possibly undefined macro: AM_PATH_SDL
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.

I've tried numerous different paths for the --include argument, but nothing seems to be working. I've also tried to include most of these paths on the PATH, but that also doesn't help. Even explicitly copying /mingw32/share/aclocal/sdl.m4 to the build directory has no effect. Ideas?

Linking error on Mint 17.2

When compiling on Linux Mint 17.2, I got this linking error:

/usr/bin/ld: schism/util.o: undefined reference to symbol 'powf@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line

I managed to successfully link it eventually by manually adding libm to the failed command ( -lm).

Compiled from master branch, HEAD was at f5f711a.

Fullscreen video & aspect ratios

Hi all,

I've been working on trying to fix fullscreen video, which has never worked right on my machine. I think I've improved the code that gets the fullscreen resolution, and now it gives the native resolution of my monitor.

However the aspect ratio of my monitor's native resolution (16:10) is Schism's native aspect ratio anyway, so it's not surprising that it's now working for me. More testing is needed.

Would be grateful if y'all could answer this survey (particularly if you use a monitor that isn't 16:10 - and no, changing your desktop resolution doesn't count!):

  1. What's your monitor's native resolution?
  2. Do old versions (or the current master) give the right aspect ratio, when in fullscreen, for you?
  3. Does the fullscreen43 branch give the right aspect ratio, when in fullscreen, for you?

Hoping for the best here but if I broke it for all the rest of you I guess it's back to the drawing board.

GitHub import from hg repo broken

A bunch of commits that are fine in the hg repo are completely broken after being imported from GitHub. The most recent example of this is a39e55e2fef31d748282890a3e068f4253c91fdc ("rm unused param"). It would be really nice to be able to git blame and such properly, so I'm going to try other means of converting the repo over to Git.

This inevitably means some git push -f, but I'd rather overwrite the history than have the history be all but useless.

RFC: willing to try getting it to compile on MSVC

Unless there is a strong opposition, I'd like to give a try getting schismtracker to compile with Visual Studio's community edition compilers.

From my cursory look today, the mingw32 compiler is necessary for two main reasons:

  1. posixy platform calls for file acess, time management
  2. gcc-ism in the codebase

About 1, I'm thinking it shouldn't be too hard to put some of these behind an easy to port platform layer.

About 2 at least for now one can use the experimental clang frontend that ships with MS' latest compilers

Before attempting 1. I'd like to gauge the temperature for this kind of effort.

Automatically select window type (Channels)

If you play a file, three windows appear. The channel window, the lowest one, is always set to display 24 possible channels:
2016-09-29-124210_1920x1080_scrot
Instead of setting it to 24, it could automatically detect the amount of used channels and configure the window type that every channel is visible:
2016-09-29-124325_1920x1080_scrot
So no space is wasted (more detail instead) and with more than 24 used channels every channel would be displayed.
For people who don't like this behaviour, a setting can be added to disable it.
To not break existing configurations, the setting is disabled by default.

MIDI clock messages sent much too infrequently

Schism currently sends one MIDI clock message per 8 rows, which is desperately incorrect. The MIDI spec says that 24 clock messages should be sent per quarter note at the default PPQN (pulses per quarter note). Sending one clock message per Schism tick at speed 6 works out perfectly if you think of four rows as one quarter note.

Tracking at speed 2 would give you a "quarter note" of 12 rows, which may or may not be what you want. Tracking at speed 5 would give you a "quarter note" of 4.8 rows, which is almost certainly not what you want.

Ideally there would be a PPQN sort of option in Schism, but that's beyond the scope of what we're trying to do right now. I don't know much about MIDI synchronization and have never used it myself, but my advice to users is that if you want the Schism "tempo" to mean "beats per minute" and four rows to equal a "beat", use either speed 6 or A08 A04 swing. Or configure the receiver to expect a different PPQN.

Commit hash on Shift-F5 screen

Nice idea that came up in IRC discussion—have the first seven digits of the Git commit hash in low-contrast style in the bottom-left corner of the Preferences (Shift-F5) screen, like the http://schismtracker.org/ link that's in the bottom-right corner. Would be occasionally theoretically helpful for debug purposes, since it's at a higher resolution than the version number, which is the commit date.

combine velocity and volume bars

Currently you can press v to switch between volume and velocity bars.
Instead of that both could be shown at once by using more colours instead of just yellow.
The volume could keep the colour yellow and the velocity could use e.g. purple.
The colours are mixed where both bars are overlapping each other.
2016-07-10-153002_1920x1080_scrot
Instead of mixing the colours, the upper part of those studs can get one colour and the lower part the other one.
2016-07-10-153002_1920x1080_scrot

How I what OSX?

How system OSX Schism Tracker make download zip then start app how compile method system unknown difficult to guess no documentation for osx system install update compile method.

help?

Automate the release process

With Travis' GitHub Release Uploading, we can have Travis automatically upload SchismTracker binaries to the accompanying Release. This requires that the release process of this repository matches what we configure in Travis, though.

Given an API key created by one of the repository owners, something like this should work:

deploy:
  provider: releases
  api_key: "GITHUB OAUTH TOKEN"
  file: "FILE TO UPLOAD"
  skip_cleanup: true
  on:
    tags: true

The on: tags: true part ensures that uploading is only done when the built commit has a tag. And as long as every tag should have an accompanying release, I think this is a safe default. If this description matches the release process you have, I think we should go forward with this.

What needs to be done, is to go into the settings part of schismtracker on Travis and add a secret environment variable for the GitHub OAuth Token. When that's done, I can go ahead and create a pull request for the required modification of the .travis.yml file.

Due to #42 not being implemented yet, we won't get a nice .app download for OS X yet, but having easy access to the binary to manually put into the application bundle is still better than having to build the binary locally, imho.

Thoughts?

minipop_slide: the mouse cursor is not always above the knob

Currently if you click to get the minipop_slide, the mouse is not moved to the knob, so the knob then becomes moved away far from its current place.
For convenience, the cursor should jump to the knob in lieu. So you can e.g. change pattern 2 to pattern 3 without carefully moving it back to where it should be.
Alternatively, the minipop_slide could be placed with an offset that the knob appears under the cursor.

And additionally being able to change the value with the mouse wheel when the cursor is above the number would be pleasant.

CI stuff broken

Builds are failing for reasons unrelated to code changes.

SDL2 port (Mac OS X SDL 1.2 deprecated)

This might be related to #23 which then caused a crash, but after self-recompilation instead causes this warning to be dumped in the console:

2016-08-15 19:41:45.264 schismtracker[77281:6776834] 19:41:45.264 WARNING:  140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h.

Since this is just a warning (on OS X 10.11.6, I don't know the state on macOS 10.12), I don't think we need to rush to fix this, but we might keep this issue here to track it and share ideas on how to fix it.

/scdev/ autotools patches

Looking through the /scdev/ file dump that @Storlek provided, I see two patches that haven't been integrated, both dealing with autotools files. Without the context of the original posts/threads it's hard to know the reasoning behind the changes, and since I am not proficient in autotools I'm not even sure what the patches do. But here they are:

http://rigelseven.com/dl/schism-files/scdev/bsdconfigurefix.diff (at least this filename is a clue)

http://rigelseven.com/dl/schism-files/scdev/schismtracker.patch (whereas this one is no help at all)

Update Linux build notes

Scanning through the Linux build notes, I noticed that a lot of the package info for Arch Linux was way out of date. Fixed that (at least partially), but testing is required to figure out whether the listed dependencies are actually correct. The Ubuntu / Debian package list is probably similarly outdated.

Also, the "i586-mingw32" bits look highly suspect. I'm pretty sure we're not targeting Pentiums anymore.

On a related note, @mb14, feel free to tear up the Windows build notes where prudent.

Create Xcode project

In the build instructions for OS X, there is mention of an Schism Tracker.app bundle that somehow got to exist, but which source seems to have been missing for a while. What I believe we need to get a fully automated OS X build of Schism Tracker is a fully working .xcodeproject that outputs an Schism Tracker.app.

The AUTHORS file mentions a mister Tim Douglas (is @timdouglas the one?) that "maintained the original Mac OS X packages", but the commit history has no traces of his name and I can't find the source code he maintained anywhere.

I believe the easiest way to achieve success here is to resurface the Xcode project file and related source code that was used to build the Schism Tracker.app bundle to begin with, but if that's impossible, we need to create a new Xcode project that successfully builds and packages everything up into an .app bundle.

Qxx behaviour when sample has ended

In Impulse Tracker (and OpenMPT), Qxx only retriggers a sample if the sample is still playing. It doesn't restart a sample that has already ended.

QXXTEST.zip

The first note (row 0) should retrigger as usual, because the sample hasn't yet ended by tick 4.

The second note (row 16) should just play once (three octaves up), because at this pitch the sample is already ended by tick 4. In Schism Tracker, this retriggers, and sounds like a three-octaves-up version of the first note.

The third note (row 32) should also just play once, because the sample has ended by row 36. In Schism Tracker, this plays once on row 32, and twice more on row 36.

Arguably the Schism behaviour is more useful, but it's better to be compatible (to get the current behaviour, put a loop of silence at the end of any Qxx'd samples).

Could not run SDL test program

As mentioned in #35, I'm trying to set up a continuous integration build of Schism Tracker on AppVeyor and I'm struggling with getting the thing to compile. The step that now fails is:

./configure --prefix=/mingw32/

As can be seen in the result from this build on AppVeyor, configure fails to link against SDL with the following error message:

checking for SDL - version >= 1.2.10... no
*** Could not run SDL test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means SDL was incorrectly installed
*** or that you have moved SDL since it was installed. In the latter case, you
*** may want to edit the sdl-config script: /mingw32/bin/sdl-config
configure: error: *** SDL version >= 1.2.10 not found.

I have tried installing 32-bit msys2, but since I can't figure out a way to execute msys2-i686-latest.exe "headless" or "silent" (see this Qt Installer Framework issue for details) I'm unable to progress the 32-bit build any further.

The 64-bit build, however, fails with the same exception so I'm now pretty confident that the problem isn't bitness, but something else. Have any of the @schismtracker developers seen this problem before and if so can you please provide some sorely needed assistance?

Thanks! 😄

[Docs] Build help: macro AM_PATH_SDL not found in library

During autoreconf, I get the following warning:

configure.ac:58: warning: macro 'AM_PATH_SDL' 

Later, this crops up as an error in ./configure:

./configure: line 5134: syntax error near unexpected token `1.2.10,'
./configure: line 5134: `AM_PATH_SDL(1.2.10, , as_fn_error $? "*** SDL version >= 1.2.10 not found." "$LINENO" 5)'

Under Debian-based systems (Ubuntu, Debian, Raspbian), this can be solved thusly:

$ sudo apt install libsdl1.2-dev
$ autoreconf -vif
$ ./configure

After successfully building the library, I was able to use ldd and apt-file to get a list of debian packages that provide the necessary set of dev dependencies:

libselinux1-dev
libasound2-dev
libasyncns-dev
libcaca-dev
libdbus1.0-cil-dev
libflac-dev
libgcrypt11-dev
libghc-bzlib-dev
libghc-libxml-sax-dev
libgpg-error-dev
libjson-c-dev
liblzma-dev
libncursesw5-dev
libogg-dev
libpcre2-dev
libpulse-dev
libsdl1.2-dev
libslang2-dev
libsndfile1-dev
libsystemd-dev
libtinfo-dev
libvorbis-dev
libwrap0-dev
libxau-dev
libxcb1-dev
libxdmcp-dev
libxext-dev

This will also install the library dependencies for runtime. If you just need the runtimes, chop off the '-dev' portion.

Additionally, (in case this is anyone's first build) for the build system, you'll need:

autoconf
build-essential

Apt one-liner, for the lazy:

sudo apt install build-essential autoconf libselinux1-dev libasound2-dev libasyncns-dev libcaca-dev libdbus1.0-cil-dev libflac-dev libgcrypt11-dev libghc-bzlib-dev libghc-libxml-sax-dev libgpg-error-dev libjson-c-dev liblzma-dev libncursesw5-dev libogg-dev libpcre2-dev libpulse-dev libsdl1.2-dev libslang2-dev libsndfile1-dev libsystemd-dev libtinfo-dev libvorbis-dev libwrap0-dev libxau-dev libxcb1-dev libxdmcp-dev libxext-dev

Increasing window size makes schism look blurred

ALSA support questionable

Schism plays fine on Pulse, but when I switch to software mixing on ALSA, Schism always uses a "dummy" device instead. SoX, MPV, dumbplay, modplay, SunVox, DOSBox, and Chromium are perfectly content playing audio with my configuration by default. MPD needed a couple lines of config file, but now works great.

Schism didn't work with the default ALSA config on a debian-sid crouton either.

Interpolation bug at sample loop points

In this song: ftp://ftp.cubic.org/pub/audiotorium/1995/lasse.zip starting in pattern 2, there is an instrument (a bass) that sounds distorted. ModPlug and XMP play it right. MikMod doesn't play it totally right, but almost (it plays other parts wrongly).

Sorry, I don't know if it's the sample or the instrument. The pattern uses effect E40 (pitch down by 40) for the instrument to behave as a bass.

Tested with d7594cf (current HEAD at the time of writing).

I otherwise love the audio quality of Schism for mod-to-wav conversion. Great job!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.