The was supposed to be one in november, but I didn't have time to organize it after all. Next good chance would be in early spring, after Winter Chip has finished on Battle of the Bits.
In the meantime, perhaps you would like to participate in the Beeper compo at DiHalt 2017 Lite: http://dihalt.org.ru/rules5_eng.html#zx ?
576 2016-12-21 21:23:14
Re: 1-Bit Forum Compo: Results (10 replies, posted in General Discussion)
577 2016-12-02 10:07:50
Re: ti83 ht2, ti1bit (19 replies, posted in Calculators & Pocket Computers)
Neat!
"$db" is indeed a note value in hex notation, equal to 219 in decimal
I wonder what went wrong with those errors though. The line "#define db .byte" actually means the opposite in TASM, eg. "interpret '.byte' as 'db'". But as I said, back in the day when I wrote these I didn't have much of a clue about asm either. In any case, I promise to make a better version of ti1bit pack as soon as I can find the time, hopefully in January.
If you run into the "too many lines" problem, it might also suffice to put some dummy labels somewhere in the music data, eg.
db $bla
db $bla
db $bla
dummyLabel1
db $bla
db $bla
db $bla
Haven't tried this though. In any case, first thing for the new ti1bit pack will be to eliminate TASM and replace it with a modern assembler which doesn't bicker about stupid crap like that.
A note on speed: Speed conversion in ti1bit is not very accurate to begin with. But there are also other problems, some of which were discovered only recently. Namely 1) The TI-83 Parcus (the model you have) actually runs at around 7 MHz, despite the official specs claiming it runs at 6. 2) CPU speed on TI calcs fluctuates significantly depending on battery strength. On TI-83, it's not as bad as on some other calcs, but still normal to have +/- ½ MHz variation.
578 2016-12-02 09:58:05
Re: Welcome to the 1-Bit Forum (aka The Introduction Thread) (49 replies, posted in General Discussion)
Wow, you seem to be really active! Also, I think black metal will have a few fans around here
579 2016-12-01 17:17:52
Re: ti83 ht2, ti1bit (19 replies, posted in Calculators & Pocket Computers)
In theory it should just work by setting the loop point where you want it in 1tracker. I have no clue what I even meant by what's written in the ti1bit readme.
580 2016-11-29 14:33:05
Re: next gen engine ideas (135 replies, posted in Sinclair)
Proof of concept for my idea about saw wave generation:
;saw wave via square wave transform ([f,a]+[2f,½a]+[4f,¼a]...)
ld hl,0
ld de,#40
ld c,#fe
loop
add hl,de ;11
ld a,0 ;7 ;timing
ld a,0 ;7 ;timing
ld a,0 ;7 ;timing
nop ;4
ld a,h ;4
out (c),a ;12__64 ([f, a])
rrca ;4
out (c),a ;12__16 ([4f, ¼a])
rrca ;4
ds 4 ;16
out (c),a ;12__32 ([2f, ½a])
jr loop ;12
581 2016-11-28 16:29:05
Re: ti83 ht2, ti1bit (19 replies, posted in Calculators & Pocket Computers)
Ha, with a demo tune like this, it was totally worth it Looking forward to what you'll come up with. Please do post your stuff here, I'm curious.
And yeah, applying some eq is totally fine in the 1-bit world (well, in my opinion at least). Though lsengine is a pretty hopeless case. I've used it quite a bit for some time, but I never managed to get it to sound really good, neither on Spectrum nor on TI.
582 2016-11-28 12:59:06
Re: ti83 ht2, ti1bit (19 replies, posted in Calculators & Pocket Computers)
Yeah, almost there I think.
Did you remove all dots (.) from the music.asm file? If the answer is yes and it still doesn't work, attach your music.asm here and I'll take a look.
583 2016-11-28 11:52:38
Re: ti83 ht2, ti1bit (19 replies, posted in Calculators & Pocket Computers)
Hey, no problem at all. Using this crap package certainly isn't trivial and others might benefit from having these questions discussed. So no need to feel guilty.
Regarding the error, I'm a bit surprised by this one. I don't have any problem running TASM in DOSBox. But I just noticed that I'm appearantly using 3.1, not 3.2.
http://www.ticalc.org/archives/files/fi … /1504.html
Maybe using this ^ will solve the problem? Otherwise, I'd say 3.2 appears to NOT require DOS after all. So perhaps try to run in directly under Windows (though I doubt that would work under anything newer than XP)?
584 2016-11-28 09:31:15
Re: next gen engine ideas (135 replies, posted in Sinclair)
Alright, got a new idea - use a "state memory". Now wtf is a state memory? Think about how we implement accumulative pin pulse engines (Octode XL, for example). We basically "remember" the state of the carry flag from add hl,de for a given time (which, in an accumulative pin pulse engine, will control the volume). But in pulse interleaving engines, we evaluate the state only once and then discard it immediately. But it might be useful to actually remember it for some time. For example, we can implement a primitive low-pass filter like this (excuse the sloppy code, it's early in the morning )
ld hl,0 ;counter, clear it
ld de,#40 ;freq divider
ld b,0 ;"state memory"
loop
add hl,de ;nothing special going on here, just adding da stuff
ld a,h ;HL bit 12 = output state
out (#fe),a
and #10 ;store the current state in state memory
or b
ld b,a
rrca ;get old state from 8 loop iterations ago
;rrca ;2x rrca = high cutoff, 1x rrca = low cutoff (filter moves slower)
nop
nop ;timing
out (#fe),a
and #ef ;delete old state from state memory
ld b,a
ld c,0 ;timing
jr loop
High-pass could be implemented in a similar fashion, because HP_output is basically just (original_output - LP_output). There could be other uses for this "state memory" thing as well.
585 2016-11-28 08:40:31
Re: ti83 ht2, ti1bit (19 replies, posted in Calculators & Pocket Computers)
You're not giving up easily, are you? Well, with so much persistence, I don't have a choice but to help you
Ok, so first of all, you need the "other" TASM - not Borland, but Telemark. You can get it here:
http://www.ticalc.org/archives/files/fi … 25051.html
You'll probably need to run it in DOSbox, btw.
And devpac83 is here: http://www.ticalc.org/archives/files/fi … /3650.html
Just dump all the files in your working directory, where you have the asm files. "asm83.bat" goes into that folder as well.
Regarding step 5, just make sure the first two lines look something like this:
;#define TI82
#define TI83
Anything that has a ";" in front of it is considered a comment in assembly, and will be ignored by the assembler. If you just have the line "#define TI83" (without a ; in front of it), then that'd be correct. Don't worry about the "looping" part for now.
Also, don't worry about the "long song data corrupts TASM" part, unless you actually run into problems. If that happens, take this:
ptr1
loop1
db $21
db $2d
db $1e
db $2a
db $20
db $2c
db $1c
db $28
db $2a
db $1e
db $26
db $1a
db $28
db $1c
db $25
db $19
db $2d
db $2d
db $2a
db $2a
db $2c
bla bla bla...
and transform it into this:
db $21, $2d, $1e, $2a, $20, $2c, $1c, $28, $2a, $1e, $26, $1a, $28, $1c, $25, $19
db $2d, $2d, $2a, $2a, $2c, ...
Also yes, that rawp thing will be a bit easier to use. No need to fiddle with TASM, at least.
586 2016-11-27 21:19:35
Re: ti83 ht2, ti1bit (19 replies, posted in Calculators & Pocket Computers)
It's even less straightforward, actually. If you have an XM, you'll need to use one of Shiru's original XM converters to produce an .asm file, adjust some things manually, then use TASM and the ti1bit pack to compile them into a .83p. The problem is that those XM converters are meant to operate on specifically crafted templates. While it is technically possible to not use the templates, your mileage may vary wildly as far as the results are concerned. As I said, it's really one big hassle to use. Well, knowing that you are interested in using this, I'll think about rewriting the whole thing and making it more convenient to use. It'll be some time before I get around to that, though, probably won't happen this year anymore.
587 2016-11-27 20:31:03
Re: ti83 ht2, ti1bit (19 replies, posted in Calculators & Pocket Computers)
Ah, glad that's solved. Hmm, perhaps I can make things a bit more clear in the manual.
Also... you actually want to use ti1bit pack? I always assumed there's literally nobody using it, hence I haven't updated it in ages. In it's current form, it's a major p.i.t.a to use. Well, in theory you can use the engines while ht2 is installed, but I'm afraid you'll run out of RAM very quickly. On TI-83 with HT2 installed you have around 500 bytes left, of which Ion needs another 200 or so for its internal operations. So you have just 300 bytes left, but even a small 1-bit song usually takes more than 1 KB.
588 2016-11-27 19:29:22
Re: ti83 ht2, ti1bit (19 replies, posted in Calculators & Pocket Computers)
Hi there,
If you don't have "A", it means the Ion shell is not fully installed. Make sure you have done the following steps, in this precise order:
1) transfer ion.83g
2) run "ION"
3) delete ION/IONZ
4) transfer ht2.83p
If that doesn't help, let me know. We'll get there eventually Also, props for building your own cable!
589 2016-11-24 17:48:01
Re: next gen engine ideas (135 replies, posted in Sinclair)
I believe there may be another way of fak... err, I mean generating a saw wave on beeper. For this, we need to look at the frequency spectrum, rather than the waveform. In the frequency domain, a square wave is characterized by having a peak at each odd harmonic. That means, for a 440 Hz, 50% duty square wave, frequency components will be present at 440*3, 440*5, 440*7 Hz, and so forth, but not at 440*2, 440*4, 440*6 Hz etc.
A saw wave, on the other hand, peaks at both even and odd harmonics. Thus it can be approximated by mixing a series of square waves with frequencies of f, f*2, f*4, f*8, etc. With the "fast accumulation" technique (add hl,de \ ld a,h \ out (#fe),a) we can easily achieve this by rotating A to get the required multiples. Doing this with 3-4 frequencies should already give a reasonable approximation of a saw, because the missing components will be high enough to fall out of the range at which humans can reliably detect the difference.
590 2016-11-24 15:46:04
Topic: new engine: wtbeep (21 replies, posted in Sinclair)
Ok folks, last engine from me for 2016. This one is a weird beast. In terms of capabilities, it's somewhere in between Tritone, Betaphase, and qaop. However, at 3-10 bytes per row, its data format is much more compact than the latter two.
wtbeep's main specialty are 32 different "waveforms", which are realtime generated, ie. no samples involved. Also re-using the new user-configurable click drum system from povver, though at a slightly decreased quality because wtbeep's loops are shorter (184 cycles vs. 224 in povver), and I don't want to decrease overall tempo resolution just to facilitate longer clicks.
To be honest I don't even understand myself what's going on with some of these waveform generators. But hey, it works, so let's not ask too many questions
Source code and stuff is on my github as usual. I might do an XM converter and/or MDAL config later if I can find some time for it.
591 2016-11-24 15:31:16
Re: new engine: povver (19 replies, posted in Sinclair)
Cheers guys! All that digi stuff aside, my favourite engine from this year is probably Squeeker Plus. I do hope the other engines will get some love, too, though
592 2016-11-21 20:32:28
Re: New ZX Beeper tunes (1 replies, posted in Sinclair)
Ah, Jangler delivers as usual. Also nice to hear gotoandplay fiddeling with Phaser2 again. Hope to hear another full-length track made with it for the coming Winter Chip.
593 2016-11-21 20:28:58
Re: 1-Bit Projects (3 replies, posted in Sinclair)
Aye, sounds intriguing indeed, garvalf! Can we haz teasor nao?
Also yay for 15 minute Space Beeps!
Well, y'all pretty much know what I'm up to - trying to find new 1-bit tricks of course Also been spending a lot of time on that MDAL thing the past weeks. In December, I'll be taking a break from 1-bit as usual, so you won't be seeing me around these parts so often. Will see what I can finish up till then. Perhaps I'm gonna work a bit more on HT2, and maybe make one more Speccy engine.
594 2016-11-21 20:17:52
Re: SillyVenture 1-bit Compo (43 replies, posted in Atari)
Thanks! "The Wild Walker" is pretty cool.
595 2016-11-21 20:10:40
Topic: new engine: povver (19 replies, posted in Sinclair)
povver is an experimental 3-channel beeper engine for the ZX Spectrum. It
features a simple volume control mechanism which is achieved through dual
oscillators running with a phase offset. The results are perhaps not as
impressive as what can be achieved through digital multi-core synthesis, but
it consumes much less RAM.
Aside from volume control, povver also features
- simple volume envelopes
- noise mode for channel 1
- customizable click drums
- per step tempo control
- compact music data format
Source is on my github as usual.
Wrote this thing mainly to finally use the phase offset volume trick in an actual engine. I feel I still haven't quite mastered it, but this is as good as it gets for now. Aside from that, I'm also testing a new, more flexible click drum system here. The click kick has a variable starting pitch, and the noise has variable volume (and two pitch setting to chose from, though they don't sound that different after all).
I'll need to add some stuff in MDAL in order to support this engine (which I probably won't get around to this year anymore), so for the time being it's pretty much for study purposes only.
596 2016-11-21 20:06:44
Re: next gen engine ideas (135 replies, posted in Sinclair)
Cheers mate! This experiment eventually became the Phase Squeek engine. Have a look at MDAL, too, it makes composing for this engine slightly more convenient.
597 2016-11-18 19:39:27
Re: next gen engine ideas (135 replies, posted in Sinclair)
Discovered something today. It may seem trivial, but nevertheless it was a bit of a revelation to me.
So basically I answered my own question about getting rid of the second counter in a simplified phaser algo. What I came up with is this:
add hl,de
ld a,h
add a,c ;C holds "second counter" offset
and h ;xor|or|and
out (#fe),a
Now isn't it interesting how, by just swapping two bytes, this can be transformed into a regular "threshold" implementation? And yet this piece of code was derived from a Phaser implementation.
598 2016-11-18 10:45:38
Re: next gen engine ideas (135 replies, posted in Sinclair)
Yes, but then again vibrato via table lookup sucks for two reasons: One, it burns a load of cycles. Two, fixed offsets are not so useful - for a good vibrato, the frequency shift should ideally be calculated as a fraction of the base frequency. A more elegant solution would be nice to have. Though I don't see how at the moment, I'm having enough trouble pulling off normal one-way slides already (finally managed a somewhat acceptable solution in Betaphase, which is similar to what you use for synth drum generation in Phaser2 I believe).
599 2016-11-17 10:16:56
Re: next gen engine ideas (135 replies, posted in Sinclair)
Hmm, in its current form it burns a lot of registers for the buck, I'd say. But generally speaking, anything that does pitch slides is always interesting. Do you think there's any chance to turn this into a vibrato effect somehow?
Meanwhile, I got permission from Rui, so find attached the source for his "WPDM16" player. A few notes:
- main.asm is the latest version. It does not attempt full PDM mixing, but rather a simplified version thereof.
- main_old.asm is an earlier version. Not sure if this one is working at all, so I include it mainly to illustrate how the player developed over time.
- Sample data should contain only signed offsets from -64 to +64. However, as I mentioned mixing is unreliable, so I created some samples that would mix with reliable results, but violate the specs.
600 2016-11-16 22:39:29
Re: next gen engine ideas (135 replies, posted in Sinclair)
Ok, here's another, rather wild idea: Could this be of any use? Rui Martins once showed me an almost-working implementation of it, which operated on signed, range-limited PDM wavetable data. I never fully understood how it actually worked, though. It had problems in any case, mixing was unreliable. I'll see if I can get Rui's permission to publish his code here.