I am working on TRAXE version 2 which is a chiptune tracker with 3 channels and it will be used in combination with the TIMID soundchip. I want it to have calculator generated sound as well for those who don't have the soundchip. Send me a pm and maybe you can help me with that.Erm, I didn't understand everything in that post due to the presence of too precise English words :P
Not bad. You should consider adding a noise channel. I did it in Bad Apple by reading from the r register, but having a properly random sequence of bits should sound better.A noise channel ? That would be a channel with random noise on it ??
Yes. It's commonly used in 1 bit music as a substitute for drums. Here's how I used it in Bad Apple: https://mediacru.sh/0YlhBMdyRnVn.Not bad. You should consider adding a noise channel. I did it in Bad Apple by reading from the r register, but having a properly random sequence of bits should sound better.A noise channel ? That would be a channel with random noise on it ??
It's basically an arduino which runs a SID soundchip emulator.I am working on TRAXE version 2 which is a chiptune tracker with 3 channels and it will be used in combination with the TIMID soundchip. I want it to have calculator generated sound as well for those who don't have the soundchip. Send me a pm and maybe you can help me with that.Erm, I didn't understand everything in that post due to the presence of too precise English words :P
What is a "chiptune tracker" exactly ?
Is a soundchip external hardware (external from the point of vue of the calculator) ?Not bad. You should consider adding a noise channel. I did it in Bad Apple by reading from the r register, but having a properly random sequence of bits should sound better.A noise channel ? That would be a channel with random noise on it ??
Oh wow, that would be a nice addition indeed !Yes. It's commonly used in 1 bit music as a substitute for drums. Here's how I used it in Bad Apple: https://mediacru.sh/0YlhBMdyRnVn.Not bad. You should consider adding a noise channel. I did it in Bad Apple by reading from the r register, but having a properly random sequence of bits should sound better.A noise channel ? That would be a channel with random noise on it ??
It's basically an arduino which runs a SID soundchip emulator.SID is not any clearer :P
@ Hayleia, I think it's a cool idea. I'll give it a listen later. I also love the name. It works well in English too. :D
I like how it sounds so far, especially considering you have multiple channels. It would be nice to hear a longer sound sample, though, such as a SMB1 sample.Thanks :D
I think the pitch is off too.Ah, I only tried on Wabbitemu so I don't know -.-
I'd be interested in knowing how you are combining multiple channels on a single output pin. The method I'm using for BA, where I alternate between ANDing and ORing the two channels, sounds fine in Wabbitemu.I only use OR so I guess this is why there are some problems. I store all 4 states (take two bits each) in one byte then OR all those and send them to the port.
I meant that the sound was wrong in wabbit (most likely). I Haven't had a chance to listen to it on hardware yet.Same for me, I really should get an adapter -.-
Ah so that causes the weird modulation effect. You should use PWM instead.But isn't PWM for "complicated" waves ? My player only supports squares, not sines.
Ok, so I can't find my adapter at the moment. I'm sure it's hidden somewhere in the bowels of my room. I'll look again after I clean up today.Quoting myself from another thread, cause it's relevant here too. :P
We have the opposite problem, then. I have an adapter, but I don't have a calculator. :POk, so I can't find my adapter at the moment. I'm sure it's hidden somewhere in the bowels of my room. I'll look again after I clean up today.Quoting myself from another thread, cause it's relevant here too. :P
And just to clarify, are all 4 channels square waves? Or you're gonna add a noise channel?They are all square waves, except the first channel which supports (in the next update) square waves+drums. For some reason though, the drums are very low-pitched.
So I tried your test program and I noticed note 0 is actually a G5 (784Hz)? Someone can confirm?I think I'll add a calibration option -.-
Very nice. Always good to see someone working on TI sound ;)It consumes little memory indeed, but it doesn't support more than 46 notes and that was only with the tests I made. With a calibration option, I think that number will be even more reduced. But thanks :)
I might try to implement the sound routine in HoustonTracker, considering it seems to consume fairly little memory.
Sorry for double posting, but I had to post this as soon as possible.Wow nice menu, although it's Calibrate, not Galibrate. :P
UPDATE
- Wonderful titlescreen
Here is the first screenshot ever for that program, since for once, there is something that you can see (and you can't hear).
(http://tiplanet.org/forum/download/file.php?id=1112)
ld b,h
ld c,l
xor a
ld d,a
add hl,hl ;2
add hl,bc ;3
add hl,hl ;6
add hl,bc ;7
add hl,hl ;14
add hl,hl ;28
add hl,hl ;56
add hl,bc ;57
add hl,hl ;114
add hl,hl ;228
add hl,bc ;229
add hl,hl \ rla ;458
add hl,bc \ adc a,d ;459
add hl,hl \ rla ;918
add hl,bc \ adc a,d ;919
add hl,hl \ rla ;1838
add hl,bc \ adc a,d ;1839
add hl,hl \ rla ;3678
neg
ld l,a
ld h,d
It assumes HL is the input and HL<256 (and also positive).Asm(444DAF57290929092929092929092917098A2917098A2917098A2917ED446F62)
258 t-states, you can also make it round for a few extra t-states...Asm(444DAF57290929092929092929092917298A2917298A2917298A291791ED446F62)
At the end, before the ED44, there is now a 91. The asm code is: ld b,h
ld c,l
xor a
ld d,a
add hl,hl ;2
add hl,bc ;3
add hl,hl ;6
add hl,bc ;7
add hl,hl ;14
add hl,hl ;28
add hl,hl ;56
add hl,bc ;57
add hl,hl ;114
add hl,hl ;228
add hl,bc ;229
add hl,hl \ rla ;458
add hl,bc \ adc a,d ;459
add hl,hl \ rla ;918
add hl,bc \ adc a,d ;919
add hl,hl \ rla ;1838
add hl,bc \ adc a,d ;1839
add hl,hl \ rla ;3678
sub c
neg
ld l,a
ld h,d
It rounds down, but because of rounding troubles, this is off on two values:Asm(7DB72821444DAF57290929092929092929092917298A2917298A2917298A291791ED446F62)
Asm(AF555F444D290929444D2929290929092929172917098B29172917098B298B92ED446F63)
;263 t-states, 36 bytes
Asm(AF555F444D290929444D2929290929092929172917098B29172917098BCB256C67EBED52)
It is the same size and speed and the error is less than 1/256 from the actual for all inputs.I forgot if you are building a table with this routine?Yes, that's what I do.
I tried the most recent version you posted. It works and has good volume on hardware. :)And did the calibration fix the wrong notes or was the first A too low to fit in the proposed range ?
And thanks, the first one (the one which finishes with 63) works :DRemember that the second one is fixed-point, not an integer. I actually tested that code this time and it worked :) For example, 77→18606 = 72.6796875 instead of 73. The actual value is about 72.67832208.
The second one doesn't however, but I didn't find any precision problem for now in the test music I have with that :)
Thanks :D
But I never worked with fixed point variables before o.oAnd thanks, the first one (the one which finishes with 63) works :DRemember that the second one is fixed-point, not an integer. I actually tested that code this time and it worked :) For example, 77→18606 = 72.6796875 instead of 73. The actual value is about 72.67832208.
The second one doesn't however, but I didn't find any precision problem for now in the test music I have with that :)
Thanks :D
And yup, the calculators are loud on actual hardware :PIn fact I was surprised because when I tried TruSound (with the someone else's adapter), the volume was really low.
But that also means that I have to multiply my first integer by 256, right ?It depends on what you mean. The routine I gave takes an 8-bit integer and returns an 8.8 fixed point number. To multiply that by something else, you would need to multiply the other number by 256 (which is 3 bytes, 11 cycles in Axe).
AAsm(<code>)**(B*256)
In asm, this could be optimised a bit, maybe even in Axe (not sure). However, this part of your code probably doesn't need to be really fast.
Hotdammit Hayleia, that piano roll editor looks pretty awesome, congrats.
Wow, that editor is looking awesome indeed O.O
Looks cool. I will definitely check it out once I fix my pc.Thanks :D
Just one question, how do I delete an individual note?You can't. My player supports 4 channels, which obviously means "no more" but also "no less" :-\
QUestion can you edit the cannel seetings? Like Attack/Sustain/Release/Decay?I didn't understand any of the 4 interesting words o.o°