Lovely track, I'm like the harmonies you've got going on here.
The increase in data size can be mitigated if you set the end marker to the actual end of the song (press Ctrl+End on row 4536 after running RowOpt).
You are not logged in. Please login or register.
The 1-Bit Forum → Posts by utz
Lovely track, I'm like the harmonies you've got going on here.
The increase in data size can be mitigated if you set the end marker to the actual end of the song (press Ctrl+End on row 4536 after running RowOpt).
1tracker, yes, go for it! You'll either hate it or love it, but if you end up loving it, you'll soon be like "why aren't ALL trackers like this!" xD
bintracker is still at a very early stage. It implements only a very low level UI and is also rather slow and buggy. At this point it's mostly interesting for experimenting with tracker interfaces and exploring new concepts for chiptune editing. You can use it to make music for some weird systems though that aren't supported by anything else.
Hi Orjis, sorry for the much belated welcome, but here it goes: Welcome aboard!
Making the PC Speaker beep with your own code is pretty easy on DOS - just get QBasic or TurboPascal and use the built-in sound commands (that's how I started back in the day, hehe). If you want to program it directly at machine level, then PC is actually a very difficult target, at least if you want to do anything funky like polyphony. In that case I'd recommend picking a less messy and less complex platform to start with. Arduino or anything AVR based in general is much easier to get started on.
Ah yes, I saw this on your site a while back, and completely forgot to congratulate you on this outstanding achievement. This is awesome!
A quick glance at the source suggests that it uses OR-mixing? Also, one comment that caught my eye:
; Every 10ms tick, we need to update the envelopes. This is more work than will fit before the next ; shift register byte is due, so we split it into sections and handle it once every byte. Hopefully ; the user won't notice.
I think you could get away with updating at half that rate, and still have perfectly usable resolution. Just in case you need to find some clock cycles somewhere at some point ![]()
>...and Darude's Sandstorm
Heck yeah! Thats brill.
Haha, I can't help but imagine you rocking out to this in the bushy shed ![]()
Had a quick look, can't say I have much of a clue how this works. Am I correct in assuming that this essentially works like my "multicore" engines, except it has more fine-grained resolution, and cores are generated? In any case, very glad Dmitry is sharing the code, thanks for that!
https://www.youtube.com/embed/XpV8q-GFtAU
https://events.retroscene.org/files/cc2 … signal.zip
Kewl! Sounds very slick even on 48K. Hoping for a source code release.
Hi, it's not so easy, unfortunately. We don't have the source code, so we would have to recreate this from scratch. And that's a pretty big time that I don't think anyone here at the forum has enough time to tackle.
Logix4U & Highresolution Enterprises's InpOut32 and ported InpOutx64 are used for direct PC speaker control.
That's just the standard post-XP Windows solution for legacy port control afaik.
This definitely deserves a medal for kickass-ness. Would love to hear some more insight into the making of, David.
Also, not sure if intentional, but this made my day:
approximately three octaves of approximately notes
![]()
Thanks for sharing that tool!
Softsynths on the Apple 2 actually predate softsynths on both Spectrum and IBM PC! Lo and behold, the mighty Electric Duet:
https://arachnoid.com/electric_duet/
I thought I was the first to do it on a 1MHz 6502 on the PET!
Unfortunately not: https://www.pouet.net/prod.php?which=87465 https://github.com/AYCEdemo/pettan
You're definitely the first to make a proper native tracker for the thing though!
For curiosity, I've dumped my old engines here: http://irrlichtproject.de/downloads/a2snd.zip No guarantees whatsoever, I haven't looked at this code for years and I have no memories of how functional/complete it actually is.
Halleluja! That's a fantastic upgrade. Joffa Smith would be proud if he could hear this.
Interesting, sounds like the engine uses a combination of PCM samples and synth.
That reminds me, I actually have a couple of unreleased Apple II engines laying around! Never released them because I could never work out a way of building disk images that don't involve adding some proprietary blobs, but I think things have been moving in that domain in recent years. So I should get those out some day... Nothing fancy, just boring standard stuff, though.
Wow, considering all the caveats, this is actually a very convincing rendition. I suspect this is about as close as you can get without cheating by streaming the original pulse sequence or something. Thanks for sharing, and thanks for sharing the source!
I suspect Follin simply did everything by ear.
That is correct, and confirmed by the man himself, iirc.
Ahh, then I'd have to reverse-engineer that... I'll see if I can whip up some example tune, at least. Though it shouldn't be too difficult.
A few pointers:
- The first pair of channels can be combined into a Phaser channel. For this, set mix mode (M) to 2, and use for example the same note on both channels, applying a few cents of detune (d) on one of them. If M is set to 1, then these channels work like in Squat&friends.
- The last 3 channels are pin pulse with volume control, with accumulative pin pulse synthesis like in OctodeXL. Use the volume command (Vo) liberally on these. Generally you want to keep volumes in the low single digits, to prevent overloading.
- On channels 1+2, the duty setting (Du) is actually semi-independent of phasing, so if you set the duty to a low single digit you can fake some volume control on the phaser, for example.
Made 1tracker support for pindsvin. I cannot for the love of **** get the PWM import to work properly though. It imports... something, but the data is incorrect.
Another question that one could ask here is: What happens if you make the vibrato run at a rate that is faster or (especially) a multiple of the base tone frequency? In theory that should give us some sort of 1-bit FM sound, though in practise I never got it to work very well.
Perhaps one could get away without calculating the full vibrato in this case, since it only matters around the points where the output flips. Say your wave is
--------________--------________then I'd expect the effective result of applying a hyper-fast vibrato would be something like
------_-_-____-_-_----_-_-______Excellent idea. I've been playing around with something similar that will update fx every row, or every n rows. The whole thing can be made more flexible by pointing sp to a jump table and then RETurning at the end of each sound loop iteration. So, the possibilites are basically endless. One could basically implement the whole set of Protracker fx, aside from stereo stuff. However, the problem is of course that it requires ever more sophisticated converters, not least once one starts to think about how to keep the data size down.
Btw, one little trick I discovered - if you "unroll" the synth part often enough, you can get away with using 8-bit row length, thus saving one register.
Excellent release. Amazing to hear the Tuftmeister™ style applied to such a wide range of genres.
Better than the original chrchrchr
Cheers MovieMovies1, it was fun working with you on this ![]()
I think the .exe you posted dynamically links msvcrt.dll, which may not be present on systems without Visual Studio installed. I've attached a stand-alone version below that shouldn't require any additional .dlls.
Thanks for figuring stuff out! I should get some sleep, but here's one last quick attempt before I do that.
D'oh! Screwed it up again if I'm not mistaken. Ctrl+F "0.25", change to "0.125", if you wanna compile yourself, otherwise I'll upload a new binary tomorrow.
Whoops, actually paying attention while compiling may help lol
Edit: Added the upgraded E5x support, as discussed. Pls let me know if it works as intended.
Ah yes, of course. I was completely fixated on non-standard tunings somehow. I suppose overall pitch could be made configurable through a command line switch.
Edit: Variable pitch implemented. xm2tritone now takes a value for the CPU speed as an optional second argument after the filename.
Multimatograf will have a beeper compo again this year.
https://events.retroscene.org/mf2025
Deadline is May 2nd, 12:00 local time.
Hmm, having a range of -1 - +⅞ semitune would make sense from a "least surprise" pov, I guess. Otoh we could have twice the resolution if we do half of that range, since with the former setup, ranges actually overlap. Then again I'm not entirely sure it's even possible to represent that with 16-bit frequency resolution. Hmm... I'll work something out and then you can test to see what works best for you.
As far as custom tuning goes, that'd be a bit more involved, so I'd rather pass on that for now, even though I would very much like to have that available myself. Bintracker will eventually support that kind of thing, hopefully.
I think I could hack something like it into the converter. What exactly should those 15 steps in E5x represent, though? E58 is no detune of course and then I guess E50 should represent -¼ tone and E5F should represent +¼ tone. I don't like the idea of having a lookup for this, so I'd prefer to have a formula in the form of
freq = freq_base + (E5x_param - 8) * something_somethingThe 1-Bit Forum → Posts by utz
Powered by PunBB, supported by Informer Technologies, Inc.