BBC BASIC for Windows
« My Latest Hit ..... »

Welcome Guest. Please Login or Register.
Apr 5th, 2018, 11:16pm



ATTENTION MEMBERS: Conforums will be closing it doors and discontinuing its service on April 15, 2018.
Ad-Free has been deactivated. Outstanding Ad-Free credits will be reimbursed to respective payment methods.

If you require a dump of the post on your message board, please come to the support board and request it.


Thank you Conforums members.

BBC BASIC for Windows Resources
Online BBC BASIC for Windows documentation
BBC BASIC for Windows Beginners' Tutorial
BBC BASIC Home Page
BBC BASIC on Rosetta Code
BBC BASIC discussion group
BBC BASIC for Windows Programmers' Reference

« Previous Topic | Next Topic »
Pages: 1 2  Notify Send Topic Print
 hotthread  Author  Topic: My Latest Hit .....  (Read 2984 times)
hitsware
Junior Member
ImageImage


member is offline

Avatar




Homepage PM

Gender: Male
Posts: 70
xx Re: My Latest Hit .....
« Reply #11 on: Jun 17th, 2015, 6:47pm »

If I rename the 2 versions, put them both in LIB, call 1 from a routine, run the routine, then call 2 and run the routine .......... Will the second version over-write the first ?
......In order to test the effectiveness.........
User IP Logged

hitsware
Junior Member
ImageImage


member is offline

Avatar




Homepage PM

Gender: Male
Posts: 70
xx Re: My Latest Hit .....
« Reply #12 on: Jun 17th, 2015, 10:47pm »

1) No matter the order entered I get an error on second iteration

2) Must listen some more. At first I was hearing clearly the noise I speak of, but when I simplified the routine as much as possible it seemed to go away (both HQ versions) Seems perhaps other things can aggravate the problem.

Code:
      *TEMPO 133

      ENVELOPE 1,0,0,0,0,0,0,0,127,0,0,-1,127,0

      CALL @lib$+"HQS_1"

      FOR x=0 TO 7
        READ n
        SOUND 0,1,n,1: SOUND 4096,1,0,10
      NEXT x

      RESTORE

      CALL @lib$+"HQS_2"

      FOR x=0 TO 7
        READ n
        SOUND 0,1,n,1: SOUND 4096,1,0,10
      NEXT x

      END

      DATA 52,60,68,72,80,88,96,100


 
User IP Logged

rtr2
Guest
xx Re: My Latest Hit .....
« Reply #13 on: Jun 18th, 2015, 05:40am »

on Jun 17th, 2015, 6:47pm, hitsware wrote:
In order to test the effectiveness

So long as you run them in separate sessions of BB4W (i.e. separate processes) they will of course be entirely independent. That's how I have been comparing different versions; commonly I have three or more copies of BB4W running simultaneously.

The alternative is to compile your programs and run the EXEs, which of course also ensures that they are independent.

Here's a good test of the difference (also worth trying without the HQSOUND library at all); it is very important that you listen with headphones:

Code:
      ENVELOPE 1,5,0,0,0,0,0,0,1,-1,-1,-1,126,0
      SOUND 1,1,148,252 

Richard.
« Last Edit: Jun 18th, 2015, 05:52am by rtr2 » User IP Logged

hitsware
Junior Member
ImageImage


member is offline

Avatar




Homepage PM

Gender: Male
Posts: 70
xx Re: My Latest Hit .....
« Reply #14 on: Aug 8th, 2016, 12:58am »

REM:m = 12*log2(fm/440 Hz) + 69
REM: key(),D(144), C(160), A(96), E(128), G(108)
key=144: DIM mn(700)

FOR jn=1 TO 700
mn(jn)=69+INT(12*LOG((jn)/key)/LOG(2)+0.5)
NEXT jn: PROC_midistart

FOR ch=0 TO 4:READ pa,le,pn
PROC_env(ch,pa,le,pn): NEXT ch

DATA 034,127,064, 107,060,127, 11,100,0
DATA 127,064,000, 127,127,064

DIM cm(29),cn(3),cr(3),da(7),db(7),d1(7),d2(7)
FOR x=0 TO 29:READ cm(x):NEXT x
FOR x=0 TO 03:READ cn(x):NEXT x
FOR x=0 TO 07:READ da(x):NEXT x
FOR x=0 TO 07:READ db(x):NEXT x
DATA 5,6,9,5, 5,6,9,9, 5,6,9,5, 8,9,5,5
DATA 8,9,5,5, 8,9,5,5, 8,9,5,5, 8,9
DATA 2,4,3,4
DATA 035,000,076,000, 035,035,076,000
DATA 042,000,042,042, 042,000,042,042

REPEAT
FOR x=0 TO 29:FOR y=0 TO 3
rr=INT(RND(3)-1): oc=2^rr
nn= mn(cm(x)*cn(y)*oc)
PROC_playnote(rr,nn)

NEXT y: NEXT x: UNTIL FALSE: END

DEF PROC_playnote(rr,nn)
SYS"midiOutShortMsg",hMidiOut%,(144+rr)+(nn<<8)+(127<<16)
WAIT 22
SYS"midiOutShortMsg",hMidiOut%,(144+rr)+(nn<<8)+(000<<16)
ENDPROC

DEF PROC_env(ch,pa,le,pn)
SYS"midiOutShortMsg",hMidiOut%,(192+ch)+(pa<<8)
SYS"midiOutShortMsg",hMidiOut%,(176+ch)+(07<<8)+(le<<16)
SYS"midiOutShortMsg",hMidiOut%,(176+ch)+(10<<8)+(pn<<16)
ENDPROC

DEF PROC_midistart
ON CLOSE PROC_Cleanup: QUIT
ON ERROR PROC_Cleanup: REPORT : END
SYS "midiOutOpen",^hMidiOut%,-1,0,0,0 TO ret%
IF ret% ERROR 100,"Failed to open MIDI output device"
ENDPROC

DEF PROC_Cleanup
hMidiOut% +=0 :IF hMidiOut% SYS "midiOutClose", hMidiOut%
ENDPROC
User IP Logged

michael
Senior Member
ImageImageImageImage


member is offline

Avatar




PM


Posts: 335
xx Re: My Latest Hit .....
« Reply #15 on: Aug 8th, 2016, 4:16pm »

nice mix.
User IP Logged

I like making program generators and like reinventing the wheel
Pages: 1 2  Notify Send Topic Print
« Previous Topic | Next Topic »

| |

This forum powered for FREE by Conforums ©
Terms of Service | Privacy Policy | Conforums Support | Parental Controls