Dead Hackers Society
Other BBSes »
 
 

68k Inside

Sommarhack 2024

Silly Venture 2024 SE
Demoscene  Coding  CT60  Buy/sell

Atari coding BBS
 
Re: Lance's 50 KHz playroutine
Posted by: ljbk Mar,08.2013-13:12 

Here are some details related to mixing result combinations:

When mixing two 7 bit values from from -64 to 63 into 8 bit(-128 to 126), one gets 99% of the add results in the 231 middle values of the 8 bit space (-128/127). We have then a 231/256 = 90.2% usage of the 8 bit space of the DACs. This is the normal 4 voices mixing in stereo (2x2).
When mixing three 6.41 bit values from from -42 to 42 into 8 bit(-126 to 126), one gets 99% of the add results in the 203 middle values of the 8 bit space (-128/127). We have then a 203/256 = 79.3% usage of the 8 bit space of the DACs. This would be a 6 voices mixing in stereo (2x3).
When mixing four 6 bit values from from -32 to 31 into 8 bit(-128 to 124), one gets 99% of the add results in the 181 middle values of the 8 bit space (-128/127). We have then a 181/256 = 70.7% usage of the 8 bit space of the DACs. This would be a 8 voices mixing in stereo (2x4).
A simple high level language algorithm will give you those results.

The situation is even worse because the sample data is not evenly distributed over the 8 bit space.
For example, the Illusion.mod from Chromix sample data has 40% of its data in the 12.5% middle 8 bit values from -15 to 15, 50% of its data in the 23% middle 8 bit values, 60% of its data in the 35% middle 8 bit values and 70% of its data in the 55% middle 8 bit values.

So you can easyly square those DAC 8 bit space usage values.
This means that with 4 voices we use around 80% of the DAC 8 bit space, with 6 voices we would use around 65% of the DAC 8 bit space and with 8 voices we would use around 50% of the DAC 8 bit space. This is why Hextracker uses amplification ...
To give you examples:
- the Illusion.mod is best played with a 1.5 (in hex 1.3125 in decimal) amplification factor. Without that only 100/1.3125 = 76% of the DACs 8 bit space will be used;
- Quantum Fluctuations, a recent (2013) 6 voices mod by Yerzmyey(http://ym-digital.i-demo.pl/music.html) is best played with 4.D (in hex 4.8125 in decimal) amplification factor. Without that only 100/4.8125 = 21% of the DACs 8 bit space will be used;
- Funky ST, a 8 voices mod by Yerzmyey(http://ym-digital.i-demo.pl/music.html and SV2011) is best played with 5.3 (in hex 5.1875 in decimal) amplification factor. Without that only 100/5.1875 = 19% of the DACs 8 bit space will be used;

So again the 8 voices replay using Lance strategy means:
- 6 bit samples as input;
- LCM usage (with non linear 4.5 bits) to handle the volume control of 2 of the 8 voices (6 bit linear value);
- only about 50% usage of the DACs 8 bit space values => low volume and low quality as it is only in fact a 7 bit output signal;
=> so all together this is a low quality replay !

To include the amplification on the Lance strategy would have costs at speed level and we would have to remove the LCM usage.

One time free solution for this is to boost the volume of the input samples but you can not overdo that othewise you will destroy the quality of the input samples.

Hextracker does it like this:
- 7 or 8 bit samples are volumed into 8 bit to 11 bit values depending on the number of voices in use (4 voices in stereo(2 to 1 mixing) -> 11bit);
- those samples are mixed into a 12 bit value: this limits the mixer to 16 voices (12 bit - 8 bit = 4bit) so in fact Hextracker could have 32 voices in stereo (2 times 16 to 1 mixing) but at 5 or 6 KHz :D ;
- only a fraction of that 12-bit space is selected to be converted to the 8 bit DAC value (this is where we have the amplification);


Enjoy,
Paulo.







[All messages in this thread]    [Start new thread]

Topic Posted by  Date 
Lance's 50khz playroutine Bod/STAX Feb,18.2013-17:35
  Re: Lance's 50khz playroutine gwEm Feb,18.2013-20:42
  Re: Lance's 50khz playroutine ggn Feb,18.2013-20:53
    Re: Lance's 50khz playroutine Bod/STAX Feb,18.2013-21:28
      Re: Lance's 50khz playroutine gwEm Feb,18.2013-23:05
        Re: Lance's 50khz playroutine gwEm Feb,18.2013-23:16
          Re: Lance's 50khz playroutine gwEm Feb,19.2013-02:21
            Re: Lance's 50khz playroutine Bod/STAX Feb,22.2013-17:08
              Re: Lance's 50khz playroutine gwEm Feb,25.2013-20:36
                Re: Lance's 50khz playroutine ljbk Feb,25.2013-23:54
                  Re: Lance's 50khz playroutine Bod/STAX Feb,26.2013-11:23
                    Re: Lance's 50khz playroutine evil Feb,26.2013-12:04
                      Re: Lance's 50khz playroutine ljbk Feb,26.2013-14:45
                        Re: Lance's 50khz playroutine ljbk Feb,26.2013-21:46
                          Re: Lance's 50khz playroutine evil Feb,27.2013-17:01
                            Re: Lance's 50khz playroutine ljbk Feb,28.2013-13:24
                              Re: Lance's 50khz playroutine ljbk Feb,28.2013-13:28
                                Re: Lance's 50khz playroutine gwEm Feb,28.2013-14:07
                                  Re: Lance's 50khz playroutine Bod/STAX Feb,28.2013-21:41
                                    Re: Lance's 50khz playroutine ljbk Feb,28.2013-22:42
                                      Sem assunto ljbk Mar,01.2013-13:27
                                        Lance's 50 KHz playroutine ljbk Mar,01.2013-15:49
                                          Re: Lance's 50 KHz playroutine ljbk Mar,01.2013-17:34
                                            Re: Lance's 50 KHz playroutine ljbk Mar,01.2013-17:36
                                              Re: Lance's 50 KHz playroutine evil Mar,01.2013-19:03
                                                Re: Lance's 50 KHz playroutine ljbk Mar,02.2013-00:18
                                                  Re: Lance's 50 KHz playroutine ljbk Mar,04.2013-17:39
                                                    Re: Lance's 50 KHz playroutine ljbk Mar,06.2013-02:21
                                                      Re: Lance's 50 KHz playroutine gwEm Mar,06.2013-13:23
                                                        Re: Lance's 50 KHz playroutine ljbk Mar,06.2013-15:57
                                                          Re: Lance's 50 KHz playroutine evil Mar,06.2013-16:48
                                                            Re: Lance's 50 KHz playroutine ggn Mar,06.2013-17:31
                                                              Re: Lance's 50 KHz playroutine evil Mar,06.2013-17:48
                                                                Re: Lance's 50 KHz playroutine ggn Mar,06.2013-23:54
                                                            Re: Lance's 50 KHz playroutine ljbk Mar,06.2013-18:18
                                                              Re: Lance's 50 KHz playroutine ljbk Mar,06.2013-21:51
                                                              Re: Lance's 50 KHz playroutine ggn Mar,06.2013-23:59
                                                                Re: Lance's 50 KHz playroutine ljbk Mar,07.2013-02:31
                                                                  Re: Lance's 50 KHz playroutine ggn Mar,07.2013-12:34
                                                                    Re: Lance's 50 KHz playroutine ljbk Mar,07.2013-14:00
                                                                      Re: Lance's 50 KHz playroutine gwEm Mar,07.2013-18:00
                                                                        Re: Lance's 50 KHz playroutine ljbk Mar,07.2013-18:51
                                                                          Re: Lance's 50 KHz playroutine ljbk Mar,08.2013-02:10
                                                                            Re: Lance's 50 KHz playroutine ljbk Mar,08.2013-13:12
                                                                              Re: Lance's 50 KHz playroutine ljbk Mar,09.2013-00:17
                                                            Re: Lance's 50 KHz playroutine ljbk Mar,06.2013-19:28
                              Re: Lance's 50khz playroutine ljbk Feb,28.2013-15:47
                                Re: Lance's 50khz playroutine ljbk Feb,28.2013-15:51
                                  Re: Lance's 50khz playroutine ljbk Feb,28.2013-18:56
                                    Re: Lance's 50khz playroutine nativ Mar,24.2013-00:07
                                      Re: Lance's 50khz playroutine ljbk Apr,13.2013-01:21
                                        Re: Lance's 50khz playroutine ljbk Apr,16.2013-16:12
                                          Re: Lance's 50khz playroutine ljbk Apr,19.2013-12:14
                                            Re: Lance's 50khz playroutine ljbk Apr,22.2013-14:54
                                              Re: Lance's 50khz playroutine ljbk Apr,25.2013-19:03
                                                Re: Lance's 50khz playroutine ggn Apr,25.2013-21:03
                                                  Re: Lance's 50khz playroutine ljbk Apr,26.2013-09:18
                                                    Re: Lance's 50khz playroutine ggn Apr,26.2013-11:28
                                                      Re: Lance's 50khz playroutine ljbk Apr,26.2013-12:13
  Re: Lance's 50khz playroutine ljbk May,01.2013-22:30
    Re: Lance's 50khz playroutine evil May,02.2013-14:46
      Re: Lance's 50khz playroutine gwEm May,02.2013-20:00
        Re: Lance's 50khz playroutine Damo May,02.2013-21:00
          Re: Lance's 50khz playroutine evil May,03.2013-13:00
      Re: Lance's 50khz playroutine ljbk May,08.2013-17:50
        Re: Lance's 50khz playroutine Cyprian May,10.2013-13:01
          Re: Lance's 50khz playroutine ljbk May,11.2013-00:22
          Re: Lance's 50khz playroutine ljbk May,11.2013-08:54
            Re: Lance's 50khz playroutine Cyprian May,11.2013-15:18
              Re: Lance's 50khz playroutine ljbk May,11.2013-15:35
                Re: Lance's 50khz playroutine Lance May,23.2013-00:02
                  Re: Lance's 50khz playroutine ljbk May,23.2013-14:44
  Re: Lance's 50khz playroutine Bod/STAX Jun,06.2013-20:32
    Re: Lance's 50khz playroutine Bod/STAX Jun,06.2013-20:39
      Re: Lance's 50khz playroutine ljbk Jun,07.2013-00:09
        Re: Lance's 50khz playroutine Bod/STAX Jun,07.2013-18:38
          Re: Lance's 50khz playroutine ljbk Jun,07.2013-21:46


Reply to this message
Name:
Topic:
Anti-troll code:

Message:

What's the anti-troll code?
That's your personal code to be able to add comments and messages on the dhs.nu site.
Don't have a code or forgot it? Fix it here.
© 1994-2024 Dead Hackers Society Contact: Anders Eriksson