[HN Gopher] Bintracker: A chiptune audio workstation for the 21s...
       ___________________________________________________________________
        
       Bintracker: A chiptune audio workstation for the 21st century
        
       Author : generichuman
       Score  : 201 points
       Date   : 2023-09-04 05:53 UTC (2 days ago)
        
 (HTM) web link (bintracker.org)
 (TXT) w3m dump (bintracker.org)
        
       | katspaugh wrote:
       | > Bintracker is written in Scheme, using the CHICKEN Scheme
       | implementation. The full power of Scheme is available at run-
       | time, which means you can program Bintracker... in Bintracker.
       | 
       | Amazing! Not only can I enjoy the gameboy sounds but also program
       | them in Lisp!
        
         | LeonidasXIV wrote:
         | Except it doesn't support the Gameboy sound chip yet. In
         | general the only sound chips supported are very old and
         | limited, so unless you make 2600 chiptune this is only of
         | limited utility.
        
           | unixhero wrote:
           | Except it is on mame, so THAT is subject to evolution of
           | project
        
       | vardump wrote:
       | Chiptune audio workstation without support for the actual short
       | [looped] sample based chiptunes?
       | 
       | Looks like it only support SID, AY, FM, etc. tunes. Just
       | chiptunes missing.
       | 
       | Don't take me wrong, still interesting. But should really get
       | terminology straight.
        
         | [deleted]
        
         | exDM69 wrote:
         | It uses emulated audio chips from Mame emulator. Some audio
         | chip emulators are pretty damn good, the best thing you can get
         | without having actual analog hardware in the loop.
         | 
         | Not sure why you think samples are better.
        
           | vardump wrote:
           | It's not that I consider samples better, but what the term
           | 'chiptune' actually means.
           | 
           | I do appreciate nice SIDs, AYs etc. as well, being a kid of
           | the eighties.
        
         | flohofwoe wrote:
         | Isn't a "chiptune" specifically _not_ using sample snippets
         | (like Amiga MODs) but synthesized audio by a specialized audio
         | chip (like a SID or AY) - and thus the name _chip_ tune?
         | 
         | I'm no retro-audio afficionado, but that's what I would think
         | of when when hearing the term (of course there's a grey area
         | like the Namco WSG audio chip which uses small wavetables
         | usually stored in ROM with 32 4-bit samples each).
        
           | vardump wrote:
           | Modules that can be called chiptunes have samples that are
           | just one waveform cycle, so the length counted in bytes, at
           | most hundreds.
        
             | actionfromafar wrote:
             | The meaning of chiptune has been overloaded since at least
             | 1994 when I heard it both for what you say, simple Amiga
             | MODs and for C64 and Spectrum tunes. The first term was
             | used for MOD compos.
        
           | enqk wrote:
           | Historically the word "chiptune" came to be specifically to
           | talk about Amiga MODs emulating music made on SID, FM chips
           | with short samples.
           | 
           | That's why it's a bit weird to call "chiptune" a thing that
           | is supposed to run on the real things. (SID music on the C-64
           | aren't called chiptunes)
        
             | zokier wrote:
             | > SID music on the C-64 aren't called chiptunes
             | 
             | That is pretty contentious claim
        
               | mrob wrote:
               | In the 90s at least, chip music for the SID was mostly
               | called "SID tunes".
               | 
               | People didn't care about authenticity of real chips vs.
               | chip-style tracker music until fast Internet and large
               | disks became common. People stopped caring about small
               | file sizes, and started making chip-style music using
               | DAWs and releasing it as MP3s. There was backlash against
               | this, and people began to think that only music made with
               | hardware chips was authentic.
               | 
               | I believe tracker chiptunes were collateral damage in the
               | rejection of MP3 chip-style music, because there's no way
               | to to clearly define if tracker chiptunes are real
               | chiptunes or not. Lots of tracker chiptunes use short
               | percussion samples in addition to the looped single-cycle
               | waveforms. When there was a culture of keeping file sizes
               | small, this was accepted without question. When large
               | file sizes forced people to start thinking about what
               | counted as real chiptunes, this element of subjectivity
               | became a problem. How long a sample is too long? With
               | music for sound chips it's easy to test if it works on
               | the real hardware. There's no equivalent test for tracker
               | chiptunes. It's easiest to rename tracker chiptunes to
               | "chip style", and use "chiptune" to mean hardware chips
               | only.
        
       | u844f7gitir wrote:
       | [dead]
        
       | dinkleberg wrote:
       | This is awesome.
       | 
       | Also I think this is the first time I've seen something actually
       | built in scheme (not that I've been actively looking, I'm sure
       | there are plenty).
        
       | eole666 wrote:
       | Really cool project! I think that the home page lacks some audio
       | exemple produced with it or video captures of the software being
       | used to get a better idea of what it's like.
        
       | fuuhfr6yg wrote:
       | [flagged]
        
       | codetrotter wrote:
       | > By using MAME as emulation backend, a vast array of 8- and
       | 16-bit platforms are covered.
       | 
       | That's genius!
        
         | rob74 wrote:
         | They weren't the first ones to come up with the idea though:
         | there is at least one music player (which I only heard of a few
         | days ago thanks to another thread here) called UADE
         | (http://zakalwe.fi/uade/uade.html) which runs UAE (an Amiga
         | emulator) in the background, with the emulator running
         | Eagleplayer (the "most comprehensive soundplayer for the
         | Amiga"). I wonder how Bintracker gets around the requirement of
         | having to write native code that actually plays the music on
         | all the various platforms? But I guess that a stub that just
         | "pipes" the data through to the emulated sound hardware is
         | relatively easy to write.
        
           | mhd wrote:
           | > I wonder how Bintracker gets around the requirement of
           | having to write native code that actually plays the music on
           | all the various platforms? But I guess that a stub that just
           | "pipes" the data through to the emulated sound hardware is
           | relatively easy to write.
           | 
           | It looks that way. There's binary files for the MAME Bridge,
           | which probably orchestrate the raw music data.
           | 
           | If I remember correctly, that's rather common on the original
           | platforms, too. On the C64, there were a few "music routines"
           | that marshaled patterns of notes to the SID chip. One famous
           | example being that of composer Rob Hubbard[1], whose "One Man
           | and his Droid" still lives rent-free in my head.
           | 
           | Chicken Scheme, Tk and MAME seem like a very cool tech stack
           | for this.
           | 
           | [1]: https://www.1xn.org/text/C64/rob_hubbards_music.txt
        
             | rob74 wrote:
             | I wish somebody built a version of the article you linked
             | where you can actually click on the tunes he mentions and
             | play them. Talking about music without being able to hear
             | it is a bit... dry (I never had a C64, I upgraded from the
             | Atari 800 to the Amiga, so I'm not that into SID
             | chiptunes).
        
       | woolion wrote:
       | Cool!
       | 
       | If you're on an arch-based distro, when following
       | https://github.com/bintracker/bintracker/blob/master/docs/se...
       | in the Makefile you have to replace csc by chicken-csc (csc is
       | the Microsoft CSharp compiler), provided by the chicken package.
       | Also not sure why the dependencies don't include mame, but make
       | sure to install it before running.
        
         | grawlinson wrote:
         | Do you have a PKGBUILD available? I'm currently running into
         | this particular issue when installing the requisite chicken
         | libs:
         | 
         | building srfi-14 /usr/bin/chicken-csc -host -D compiling-
         | extension -J -s -regenerate-import-libraries -setup-mode -I
         | /home/deploy/.cache/chicken-install/srfi-14 -C
         | -I/home/deploy/.cache/chicken-install/srfi-14 -O3 -d0
         | srfi-14.scm -o /home/deploy/.cache/chicken-
         | install/srfi-14/srfi-14.so /usr/bin/chicken-csc -regenerate-
         | import-libraries -M -setup-mode -static -I
         | /home/deploy/.cache/chicken-install/srfi-14 -emit-link-file
         | /home/deploy/.cache/chicken-install/srfi-14/srfi-14.link -host
         | -D compiling-extension -c -unit srfi-14 -D compiling-static-
         | extension -C -I/home/deploy/.cache/chicken-install/srfi-14 -O3
         | -d0 srfi-14.scm -o /home/deploy/.cache/chicken-
         | install/srfi-14/srfi-14.static.o /usr/bin/chicken-csc -setup-
         | mode -s -host -I /home/deploy/.cache/chicken-install/srfi-14 -C
         | -I/home/deploy/.cache/chicken-install/srfi-14 -O3 -d0
         | srfi-14.import.scm -o /home/deploy/.cache/chicken-
         | install/srfi-14/srfi-14.import.so installing srfi-14 install:
         | cannot create regular file '/usr/lib/chicken/11/srfi-14.o':
         | Permission denied
         | 
         | Error: shell command terminated with nonzero exit code 256
        
           | woolion wrote:
           | No, I just followed the instructions, I was wondering if I
           | should make one.
           | 
           | I also had the problem, but that is something for which you
           | just need to run with sudo. Maybe there's a way to configure
           | the path so that it can be run as an unprivileged user?
        
       | davidpfarrell wrote:
       | With the simple-ish ui, I thought for a second it was terminal
       | based.
       | 
       | With that idea in mind, I googled and found [0]
       | 
       | Its the only terminal base tracker explicitly labeled as such on
       | [1]
       | 
       | Anyone know of others?
       | 
       | [0] https://github.com/danfrz/PLEBTracker
       | 
       | [1] https://linuxmusicians.com/viewtopic.php?t=20883
        
         | [deleted]
        
       | codetrottr wrote:
       | x
        
         | ArekDymalski wrote:
         | Jummbox being a web app is the most striking diffeence. Plus it
         | doesn;t seem to be "emulating" different chipsets, just general
         | chiptune style.
        
       | miika wrote:
       | Cool. Gotta try if this compiles into wasm. Having this in a
       | browser would be amazing.
        
       | joebergeron wrote:
       | Fantastic - I love seeing new tools in service of chipmusic, and
       | this one looks real sleek. The platform agnosticism sort of feels
       | like MML[0] but with a GUI, in that it has the appeal of "one
       | tool, all platforms". I wonder -- what degree of control over
       | platform-specific parameters does the software offer? Some of the
       | greatest artists who have worked on particular platforms possess
       | all sorts of arcane knowledge about the ins-and-outs of their
       | platform, and know how to use (read: abuse) platform-specific
       | quirks to their advantage. (For the curious, Phlogiston[1] is a
       | good example for the 2A03; Trey Frey[2] for the DMG.) I love the
       | generality of the idea, but would be concerned about the level of
       | control I have over platform-specific features.
       | 
       | Another thing that I would probably need in order to use this
       | seriously is compilation down to native-compatible file formats
       | for recording from hardware. Can I e.g., export an NSF for the
       | 2A03, a .MED for Octamed playback, some sort of SAV or LSDSNG for
       | the DMG, etc.?
       | 
       | It's late here, so I haven't given this a spin yet, but will
       | definitely play around with this soon - fantastic work!! :)
       | 
       | [0]: https://www.nesdev.org/mck_guide_v1.0.txt
       | 
       | [1]: https://phlogiston.bandcamp.com/album/nectar
       | 
       | [2]: https://treyfrey.bandcamp.com/album/refresh
        
       | sim7c00 wrote:
       | Awesome, I still work in Renoise tracker today :> trackers are
       | amazing (Renoise support VST3 and other modern stuff - not a
       | chiptune tracker but a full DAW based on fastTracker.).
       | 
       | Love to see this though am definitely going to give it a whirl.
       | epic!
        
         | 0xbs0d wrote:
         | I've been a fan and user of trackers since Octamed on the Amiga
         | :) Renoise is an amazing DAW and my favorite piece of music
         | software.
        
       | pezz wrote:
       | If you haven't heard of it, there's another cool tracker making
       | great strides right now, Furnace:
       | 
       | https://github.com/tildearrow/furnace
       | 
       | Allows you to compose tunes on several chips / platforms in the
       | one song.
        
         | jefurii wrote:
         | Looks pretty awesome - kinda wish it had MIDI output...
        
         | johnnyworker wrote:
         | Oh.. I am in love. And it can load Future Composer modules!
         | Finally I can play one of my favorite tunes of all time in a
         | tracker without an emulator.
         | 
         | https://files.exotica.org.uk/modland/?file=pub/modules/Futur...
         | 
         | The playback seems a bit off in places, or maybe my memory is,
         | but since the program is still being developed I don't care. So
         | happy right now. Thank you so much.
        
         | fidotron wrote:
         | Is there a standard player for these things? Or is that too
         | dependent on the chips being targeted?
         | 
         | One of the strengths of the old Amiga mods was the number of
         | libraries around for playback which made writing a player or
         | dropping a mod in your game trivial.
        
       | Jolter wrote:
       | No news updates since February. I hope it's not because the
       | developer lost momentum. It's still in alpha, after all.
        
         | rob74 wrote:
         | If you look at the activity on GitHub
         | (https://github.com/bintracker/bintracker/graphs/contributors),
         | they have been working on the project since mid 2018, with
         | almost continuous commits until mid 2021, and then some
         | activity at the start of 2022, and considerably more at the
         | start of 2023. So there seems to have been some loss of
         | momentum, but I wouldn't give up hope yet. It's just
         | unfortunate that there is basically just one contributor (I'm
         | ignoring the two others that contributed just one commit each)
         | - but I guess finding fellow LISP Jedi knights (referring to
         | the XKCD comic someone else linked) to work on this project is
         | not that easy. Aaaand I'm not sure if focusing on "lesser known
         | systems" (quote from the GitHub readme) is the right strategy.
         | Sure, there are already lots of players for e.g. Amiga MOD
         | files, but there are also more people interested in that
         | platform...
        
       | iFire wrote:
       | MIT LICENSE
       | 
       | https://github.com/bintracker/bintracker/blob/master/LICENSE
        
         | flohofwoe wrote:
         | Why is that noteworthy? MIT is the most popular license for
         | Github projects.
        
       | wpwpwpw wrote:
       | Just wanted to say the interface is beautiful.
        
       | webprofusion wrote:
       | Cool but it doesn't look 21st century at all, it would be
       | entirely at home in 1992. Retro is cool though.
        
         | flohofwoe wrote:
         | A 1992 retro UI would use a silver-grey background with 3D
         | bevels and rainbow color details in 320x200 or 320x256 pixels
         | (e.g. https://en.wikipedia.org/wiki/Protracker#/media/File:Prot
         | rac...)
        
         | dvh wrote:
         | I thought 21st century means low contrast UI and single color
         | icons
        
           | hulitu wrote:
           | And hiding scrollbars and keyboard/mouse pointers, and huge
           | icons eating screen space without any function, and tiny
           | fonts, and hamburger menu ( preferably 2), and no settings,
           | and ....
        
             | livrem wrote:
             | And push a new minor update at least once a week that moves
             | something in the UI around for no obvious reason.
        
       | lagniappe wrote:
       | > macOS builds should be possible with some minor adjustments,
       | though this is currently unsupported. Please get in touch if you
       | manage to get a macOS build running.
       | 
       | Has anyone built this on apple silicon yet?
        
         | akx wrote:
         | Getting there, but it doesn't quite work:
         | https://github.com/bintracker/bintracker/issues/20
        
         | codetrotter wrote:
         | I was not able to install the sqlite3 Chicken scheme egg on
         | macOS Ventura where I have Xcode version 15.0 beta 2 installed.
         | building sqlite3
         | /opt/homebrew/Cellar/chicken/5.3.0_1/bin/csc -host -D
         | compiling-extension -J -s -regenerate-import-libraries -setup-
         | mode -I /Users/user/.cache/chicken-install/sqlite3 -C
         | -I/Users/user/.cache/chicken-install/sqlite3 -O2 -d1 -L
         | -lsqlite3 sqlite3.scm -o /Users/user/.cache/chicken-
         | install/sqlite3/sqlite3.so         /Users/user/.cache/chicken-
         | install/sqlite3/sqlite3.c:299:23: error: call to undeclared
         | function 'sqlite3_enable_load_extension'; ISO C99 and later do
         | not support implicit function declarations [-Wimplicit-
         | function-declaration]
         | C_r=C_int_to_num(&C_a,sqlite3_enable_load_extension(t0,t1));
         | ^         /Users/user/.cache/chicken-
         | install/sqlite3/sqlite3.c:306:23: warning:
         | 'sqlite3_enable_shared_cache' is deprecated: first deprecated
         | in macOS 10.7 - Not supported [-Wdeprecated-declarations]
         | C_r=C_int_to_num(&C_a,sqlite3_enable_shared_cache(t0));
         | ^         /Applications/Xcode-beta.app/Contents/Developer/Platf
         | orms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sqli
         | te3.h:6656:16: note: 'sqlite3_enable_shared_cache' has been
         | explicitly marked deprecated here         SQLITE_API int
         | sqlite3_enable_shared_cache(int);                        ^
         | 1 warning and 1 error generated.              Error: shell
         | command terminated with non-zero exit status 256: 'clang'
         | '/Users/user/.cache/chicken-install/sqlite3/sqlite3.c' -o
         | '/Users/user/.cache/chicken-install/sqlite3/sqlite3.o' -c
         | -fno-strict-aliasing -fwrapv -fno-common
         | -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-
         | pointer -fPIC -DPIC -DC_SHARED -I/Users/user/.cache/chicken-
         | install/sqlite3
         | -I/opt/homebrew/Cellar/chicken/5.3.0_1/include/chicken
         | Error: shell command terminated with nonzero exit code
         | 256         "sh /Users/user/.cache/chicken-
         | install/sqlite3/sqlite3.build.sh"
         | 
         | All other dependencies installed fine though.
        
           | diabllicseagull wrote:
           | same here
           | 
           | apparently this didn't fix it? https://bugs.call-
           | cc.org/ticket/1335
        
           | codetrotter wrote:
           | I opened a GitHub issue about it at
           | https://github.com/bintracker/bintracker/issues/19
        
             | doublerabbit wrote:
             | Try compiling it with:
             | 
             | -Wdeprecated-declarations
        
       | compilator1 wrote:
       | Hehe, news section is honest:
       | 
       | * Loads of bugs
        
         | [deleted]
        
       | badrabbit wrote:
       | There needs to be like a chiptune piano with concerts and all.
        
         | mhd wrote:
         | Well, there's the Chipophone:
         | 
         | http://www.linusakesson.net/chipophone/index.php
        
           | badrabbit wrote:
           | I mean like a line of them people can buy and use them to
           | compose/play.
        
             | mrob wrote:
             | You could get a MIDI controller (keyboard with MIDI output
             | but not sound generation capabilities) and connect it to a
             | suitable MIDI synthesizer. There are many MIDI synths
             | available with real or emulated chip sounds.
        
       | nylonstrung wrote:
       | Very cool. How does this differ from Renoise
        
         | defensem3ch wrote:
         | renoise very much takes influence from modern daws, supports
         | vst plugins and its own native effects and uses high quality
         | samples. it's also full-fledged with tons of features, it's
         | like the ableton live of trackers. bintracker is much more
         | barebones and is still in pre-alpha, and it is primarily aimed
         | to produce chiptune faithful to hardware.
        
           | jefurii wrote:
           | It has a ton of features but unfortunately resizable fonts is
           | not one of them - the UI text is way too small.
        
         | xcv123 wrote:
         | The only thing they share in common is they both have a tracker
         | sequencer.
         | 
         | Renoise generates audio using samples and VST/AudioUnit
         | plugins.
         | 
         | Bintracker generates audio using emulated sound chips. It is
         | specifically for producing chiptunes on vintage arcade/console
         | sound engines.
        
       | matheusmoreira wrote:
       | Fantastic project. For a second I thought it was a terminal
       | application.
        
       | sitzkrieg wrote:
       | impressive use of chicken scheme
        
       | makach wrote:
       | This is so incredibly cool. It's such an amazing acknowledgement
       | of this style of music, making it easier to create and consumer
       | chip-styled music - it is also incredibly important that we all
       | continue to support this by creating software so that we can
       | access the legacy music in its original form.
       | 
       | *
        
       | diimdeep wrote:
       | Very nice ImGui showcase
        
       ___________________________________________________________________
       (page generated 2023-09-06 20:02 UTC)