FUQL v0.91 Available

Anything QL Software or Programming Related.
Post Reply
spkr
Bent Pin Expansion Port
Posts: 98
Joined: Tue May 04, 2021 6:52 pm

FUQL v0.91 Available

Post by spkr »

Hi there boys and girls,

there is stuff brewing in the QL development, and as such, FUQL is updated once more. This time its version v0.91, with some improvements on the UI visibility and UI interaction.

Image

Changes:

Code: Select all

FUQL Track v092 Changes:
- Patternsheet editor now supports more than 16 patterns for editing
- Updated pattern loop and song playing capability to support abovementioned fea
ture

FUQL Track v091 Changes:
- Visible key explanation in tracker
- Separate `keyboard-throttle' values for different interactions (increased delay for pattern editing, decreased delay for instrument editing)
- Supporting copy paste of pattern values in the pattern-sheet editor
- Temporarily removed demosystem-playback support (])
- Altered screen setting at init to hopefully prevent black screen occurring.
The example song of Bars 'n Beats is provided for educational purposes.

Download link:
http://frummel.org/~weedz/atari/prods/ql/fuql_v092.zip

Kind regards,
Wietze
Attachments
Screenshot 2023-01-27 at 11.39.17.png
Last edited by spkr on Wed Jul 26, 2023 10:08 pm, edited 4 times in total.


User avatar
Cristian
Aurora
Posts: 965
Joined: Mon Feb 16, 2015 1:40 pm
Location: Veneto

Re: FUQL v0.91 Available

Post by Cristian »

Above all, thank you for the update ad your efforts.
And now... bug report time.
The program does not run with Minerva Rom (both with Qemulator and with real QL).
I found problems also with my Supergoldcard + JM Rom (I have a Superdgoldcard clone, maybe someone else could try with the original one).
The tracker runs on real QL+JM Rom, but sometimes loses the display (black screen); anyway it can load and play the song.
The pitch of higher notes goes slightly down (on real QL at least).
Said that, the program is really promising and innovative in QL scene. I hope this little bug report will help you to improve the tracker!


spkr
Bent Pin Expansion Port
Posts: 98
Joined: Tue May 04, 2021 6:52 pm

Re: FUQL v0.91 Available

Post by spkr »

Cristian wrote: Sun Jan 29, 2023 8:13 pm Above all, thank you for the update ad your efforts.
Thanks, feedback is essential!
Cristian wrote: Sun Jan 29, 2023 8:13 pm The program does not run with Minerva Rom (both with Qemulator and with real QL).
I only target Stock QL, the rest is YMMV. If you want to use it, use stock QL.
Cristian wrote: Sun Jan 29, 2023 8:13 pm I found problems also with my Supergoldcard + JM Rom (I have a Superdgoldcard clone, maybe someone else could try with the original one).
Ditto.
Cristian wrote: Sun Jan 29, 2023 8:13 pm The tracker runs on real QL+JM Rom, but sometimes loses the display (black screen); anyway it can load and play the song.
Ditto.
Cristian wrote: Sun Jan 29, 2023 8:13 pm The pitch of higher notes goes slightly down (on real QL at least).
Im not sure what you mean by this. Would you please elaborate? I found that ALL Emulators do not match the sound of the actual Sinclair QL. Im therefor not sure if you're mentioning something about FUQL or about the emulator.
Cristian wrote: Sun Jan 29, 2023 8:13 pm Said that, the program is really promising and innovative in QL scene. I hope this little bug report will help you to improve the tracker!
I appreciate you taking the time to report. Please dont mistake my narrowminded/blunt responses for lack of appreciation. I just want to be clear that I have no intention to support anything else than stock QL :). Please let me know about what you mean with the pitch; it could very well be I made an error in my note mapping somewhere.

Kind regards,
Wietze


User avatar
dex
Gold Card
Posts: 286
Joined: Thu Dec 23, 2010 1:40 pm

Re: FUQL v0.91 Available

Post by dex »

What means "stock QL", if Minerva ROM or JM ROM machines arent "stock QL"?


User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: FUQL v0.91 Available

Post by mk79 »

Cristian wrote: Sun Jan 29, 2023 8:13 pmThe program does not run with Minerva Rom (both with Qemulator and with real QL).
Minerva derives the location of the system variables from the SSP, which the code moves to another location. Switching to the original SSP before a TRAP might fix this, but yeah, this code doesn't look like it's meant to play well with other environments. Still pretty cool (though I have only heard the QemuLator version for now, too lazy to power up a real QL ;) )
spkr wrote: Sun Jan 29, 2023 9:26 pmIm not sure what you mean by this. Would you please elaborate? I found that ALL Emulators do not match the sound of the actual Sinclair QL. Im therefor not sure if you're mentioning something about FUQL or about the emulator.
Not for lack of trying... emulating the IPC sound is amazingly difficult, IIRC the IPC code even relies on uninitialized registers.

All the best, Marcel


spkr
Bent Pin Expansion Port
Posts: 98
Joined: Tue May 04, 2021 6:52 pm

Re: FUQL v0.91 Available

Post by spkr »

dex wrote: Sun Jan 29, 2023 10:20 pm What means "stock QL", if Minerva ROM or JM ROM machines arent "stock QL"?
You are probably right here. Afaik JM ROM is the one that the machine was originally shipped with. Incase we have bugs on stock ROM, this may be interesting; but if it doesnt hamper functionality it surely is minor :)


spkr
Bent Pin Expansion Port
Posts: 98
Joined: Tue May 04, 2021 6:52 pm

Re: FUQL v0.91 Available

Post by spkr »

mk79 wrote: Sun Jan 29, 2023 10:27 pm
Cristian wrote: Sun Jan 29, 2023 8:13 pmThe program does not run with Minerva Rom (both with Qemulator and with real QL).
Minerva derives the location of the system variables from the SSP, which the code moves to another location. Switching to the original SSP before a TRAP might fix this, but yeah, this code doesn't look like it's meant to play well with other environments. Still pretty cool (though I have only heard the QemuLator version for now, too lazy to power up a real QL ;) )
This is interesting to know, but I am indeed an elephant in a porcelain closet; I just want to get it to work on my QL machine+emulator. Indeed, I do move the stackpointer to an absolute address once I relocate the code. In the end this is just a means to an end to make tracks to be used in demos. The UI looks bad and has very limited userfriendlyness; but it works :).
spkr wrote: Sun Jan 29, 2023 9:26 pmIm not sure what you mean by this. Would you please elaborate? I found that ALL Emulators do not match the sound of the actual Sinclair QL. Im therefor not sure if you're mentioning something about FUQL or about the emulator.
mk79 wrote: Sun Jan 29, 2023 10:27 pm Not for lack of trying... emulating the IPC sound is amazingly difficult, IIRC the IPC code even relies on uninitialized registers.
Correct. What I do sometimes, is `split up' the QL sound command over different VBLANKS (simply because sending commands to the IPC too fast locks the system, and poll-waiting for the IPC to become availabile over the course of a complete sound command may take UP TO 70%). By splitting out the sound command into several bytes per frame, this wait delay is sliced to manageable size. However, this does also mean that the sound command effects, such as random and pitch etc, are only altered once the command is received. This is not emulated on correctly. Furthermore the sound emulation on Qemulator for windows and osx have different implementations, where Qemulator relies on the DirectX sound driver; in case this one is buffered, it has the tendency to miss notes when notes are entered subsequently in QL. Similarly, on the actual QL, rapidly successing notes may not be heard at all.

The after-market IPC rom changes this behaviour slightly.

JobOne was so kind to provide me with a hermes chip. The results were interesting to compare. What I compared was:
- hermes vs stock ipc rom
- sound command issues in 1 VBLANK, or spread over multiple (in my case 4 VBLANK).

hear for yourself:
hermes.zip
zip file containing 4 recorded sound recordings from real hardware, different rom and sound driver implementations
(6.51 MiB) Downloaded 24 times


User avatar
Cristian
Aurora
Posts: 965
Joined: Mon Feb 16, 2015 1:40 pm
Location: Veneto

Re: FUQL v0.91 Available

Post by Cristian »

Wietze, I'll try to explain better:

I also utilized an actual "stock QL" with its original Sinclair JM Rom. Sometimes the graphic interface doesn't appear (black screen) even if the program can load and play the song. In the same "stock QL" with its original JM Rom, the sound of higher notes is slightly out-of-tune (lower pitch). The medium and lower pitch notes seem perfectly intoned.
Please feel free to ask if something unclear.
Thanks


spkr
Bent Pin Expansion Port
Posts: 98
Joined: Tue May 04, 2021 6:52 pm

Re: FUQL v0.91 Available

Post by spkr »

Cristian wrote: Mon Jan 30, 2023 6:11 pm Wietze, I'll try to explain better:

I also utilized an actual "stock QL" with its original Sinclair JM Rom. Sometimes the graphic interface doesn't appear (black screen) even if the program can load and play the song. In the same "stock QL" with its original JM Rom, the sound of higher notes is slightly out-of-tune (lower pitch). The medium and lower pitch notes seem perfectly intoned.
Please feel free to ask if something unclear.
Thanks
You mean that when you run a high pitched note, it is not as you would expect it to be? E.g. some A# doesnt exactly sound like an A# or something? The only explanation is that I can think of, is that the QL is not able to match the actual humanly expected tone/frequency with its availabile note frequencies. The QL has a tone selection consisting of 255 steps, with some arbirary scale, and thus not any specific desired frequency. I have graphed these frequencies and mapped them to a note layout approximation (the instrument editor allows yout o explore all 255 settings):

Code: Select all

tone_b6		equ -1
tone_a6b	equ -1
tone_a6		equ -1
tone_g6b	equ -1
tone_g6		equ -1
tone_f6b	equ -1
tone_f6		equ -1
tone_e6		equ -1
tone_d6b	equ -1
tone_d6		equ 1			;	real:1175		ql:1176
tone_c6b	equ -1 
tone_c6		equ 2			;	real;1047		ql:1066

tone_b5		equ 3			;	real; 988		ql: 974
tone_a5b	equ -1			;	real; 932		-
tone_a5		equ 4			;	real; 880		ql: 897
tone_g5b	equ 5			;	real; 831		ql: 831		
tone_g5		equ 6			;	real; 784		ql: 774
tone_f5b	equ 7			;	real; 740		ql: 725
tone_f5		equ 8			;	real; 698		ql: 681
tone_e5		equ 9			;	real; 659		ql: 642
tone_d5b	equ 10			;	real; 622		ql: 608
tone_d5		equ 11			;	real; 587		ql: 577
tone_c5b	equ 12			;	real; 554		ql: 548 
tone_c5		equ 13			;	real; 523		ql: 524

tone_b4		equ	14			;	real; 494		ql: 500
tone_a4b	equ	16			;	real; 466		ql: 460
tone_a4		equ	17			;	real; 440		ql: 442
tone_g4b	equ 19			;	real; 415		ql: 410
tone_g4		equ 20			;	real; 392		ql: 395
tone_f4b	equ 22			;	real; 370		ql: 370
tone_f4		equ 23			;	real; 349		ql: 358
tone_e4		equ 26			;	real; 330		ql: 327
tone_d4b	equ 28			;	real; 311		ql: 309
tone_d4		equ 30			;	real; 294		ql: 293
tone_c4b	equ 32			;	real; 277		ql: 278
tone_c4		equ 35			;	real; 262		ql: 259

tone_b3		equ 37			;	real; 246.94	ql: 248
tone_a3b	equ 40			;	real; 233.08	ql: 233
tone_a3		equ 43			;	real; 220		ql: 219
tone_g3b	equ 46			;	real; 207.65	ql: 207
tone_g3		equ 49			;	real; 196		ql: 196
tone_f3b	equ 53			;	real; 185		ql: 184
tone_f3		equ 56			;	real; 174.61	ql: 175
tone_e3		equ 60			;	real: 164.81	ql: 165
tone_d3b	equ 64			;	real: 155.56	ql: 156
tone_d3		equ 69			;	real; 146.83	ql: 146.02
tone_c3b	equ 73			;	real; 138.59	ql: 138.87
tone_c3		equ 78			;	real; 130.81	ql: 130.85

tone_b2		equ 83			;	real: 123.47	ql: 123.7
tone_a2b	equ	89			;	real; 116.54	ql: 116.11
tone_a2		equ 94			;	real; 110		ql: 110
tone_g2b	equ 101			;	real; 103.83	ql: 103.4
tone_g2		equ 107			;	real; 98		ql: 98
tone_f2b	equ 114			;	real; 92.50		ql: 92.44
tone_f2		equ 121			;	real; 87.31		ql: 87.45
tone_e2		equ	129			;	real; 82.41		ql: 82.37
tone_d2b	equ	137			;	real; 77.78		ql: 77.84
tone_d2		equ	146			;	real; 73.42		ql: 73.31
tone_c2b	equ 155			;	real: 69.30		ql: 69.28
tone_c2		equ	165			;	real; 65.41		ql: 65

tone_b1		equ	174			;	real; 62		ql: 62.07
tone_a1b	equ 186			;	real; 58.27		ql: 58.24
tone_a1		equ 197			;	real; 55		ql: 55
tone_g1b	equ	209			;	real; 52		ql:	52.09
tone_g1		equ 223			;	real; 48.99		ql: 48.94
tone_f1b	equ	236			;	real; 46.25		ql: 46.34
tone_f1		equ 251			;	real; 43.65		ql: 43.66
tone_e1		equ -1
tone_d1b	equ -1
tone_d1		equ -1
tone_c1b	equ -1
tone_c1		equ -1
Either way, there is nothing I can do here.

Regarding the black loading screen, perhaps I had some garbage at the init, I have removed it, and will pack it up and update the link in the original post Not sure if it fixes it, but could be. Please do test :)

Kind regards,
Wietze


Post Reply