Vision and Sound From the Ideally Bare Numeric Impression giZmo 38
jones_supa writes "Ville 'viznut' Heikkilä presents us with an interesting project. 'As demonstrated by the video, IBNIZ (Ideally Bare Numeric Impression giZmo) is a virtual machine and a programming language that generates video and audio from very short strings of code. Technically, it is a two-stack machine somewhat similar to Forth, but with the major exception that the stack is cyclical and also used at an output buffer.' The main goal of IBNIZ is to provide a new platform for the demoscene. Something that would have the potential to displace MS-DOS as the primary platform for sub-256-byte productions."
simple but fairly clever (Score:5, Interesting)
The simplicity of the code you can write in this language seems to be mostly due to the cyclic nature, which is something other beat-oriented computer-music languages also have: once you have "repeat" as a built-in thing, anything built on regular repetitions is easy to program. But it adapts it in a way that feels more low-level and demo-scene-ish by tying it to a cyclical "stack" in a bastard-son-of-Forth sort of way. Will have to play around with it a bit.
libglitch and making music a with C compiler (Score:5, Interesting)
I wrote something similar to IBNIZ, yet vastly simpler, a composing software called glitched [github.com] (needs pygame 1.9.1). The forth variant I use has no subroutines or recursion and is not even turing complete and the stack has only 256 fields. However, it is compatible with that of several other implementations (see README). Like IBNIZ, it has live editing and stack visualisation [dieweltistgarnichtso.net].
It is important to note that sound made with this kind of tools is not limited to chiptunes. There is a video of an older version of glitched [dieweltistgarnichtso.net], doing Karplus-Strong-string synthesis [wikipedia.org].
(Apologies in advance to the users of a totally unrelated glitch library [rhydd.org], which is also written in python. I have met one of it's developers last night and we agreed insane troll logic dictates a merger of our two projects to rectify the namespace collision. I may have to bring that up again when he is sober.)