QB64 Phoenix Edition v3.7.0 Released!
#1
QB64 Phoenix Edition v3.7.0!

https://github.com/QB64-Phoenix-Edition/...tag/v3.7.0

Enhancements
  • #315, #319, #327 - Implemented a new "Code Export" feature reachable via the "File" menu. - @RhoSigma-QB64
    • Useful for authors of tutorials, documentations or Wiki pages, they can now easily export the currently edited code and insert it in their work. The code is highlighted according to the currently chosen color scheme in the IDE and the keywords are linked to its respective Wiki pages.
    • Export is possible as Hypertext (.html), Rich Text (.rtf) or Wiki encoded text (.txt).
  • #188, #330, #335 - Added commands for rendering Unicode text - @a740g
    • _UPrintString
      acts like regular _PrintString but accepts Unicode strings.
    • _UFontHeight gives the global glyph height of a given font, which may be larger than the _FontHeight. _UPrintString uses this height.
    • _UPrintWidth acts like _PrintWidth and returns the width in pixels a Unicode string will take up when printed using _UPrintString.
    • _ULineSpacing will give the proper vertical spacing (font height + extra pixels) to vertically separate multiple lines of text.
  • #188, #335, #330 - Improve and optimize Font internals - @a740g
    • Font loading should be significantly faster due to the addition of a lazy Glyph cache.
  • #232, #330, #335 - Added a new _LoadFont() argument which allows loading a font from memory - @a740g
  • #316, #317, #318, #320, #322, #325 - Many internal libraries were updated or replaced - @a740g
    • zlib was replaced with miniz
    • stb_image.h was updated to v2.28
    • miniaudio was updated to v0.11.13
    • tinysoundfont was updated to the latest version (2/18/23)
  • #325 - Added support for using SoundFont3 (SF3) format files with $MinisoundFont - @a740g
  • #329 - Added RAD v1 file support - @a740g
  • #124, #321, #326 - Improved Declare Library header file resolution - @a740g, @mkilgore
    • If Declare Library is in an '$include'd file, then it can also find header files that are relative to the location of the '$include'd file rather than the original source file.

Bug Fixes
  • #319 - Fixed the "Update All Pages" process in the IDE. - @RhoSigma-QB64
  • #333, #334 - Fixed the Keyboard _Devices entry on Windows - @mkilgore
    • Alt+key combination will now be correctly reported.
    • Pressing left and right shift at the same time will now be correctly reported.
  • #332 - Fixed potential segfault in PLAY() - @a740g
    • BEEP was also improved so that multiple BEEPs in a row will have a short pause separating them.


Full Changelog: v3.6.0...v3.7.0
Reply
#2
Heart 
Thank you! But you have to be from the West Coast U.S.A. or Hawaii ROFL, because it's about 4:30AM where I live and in the eastern seaboard. Not healthy to stay up from bed programming too many times.

I'm having a recent problem sleeping while it's cool enough, and then doing it while it's hot and I sweat a lot. It sucks, such is my half-miserable existence.

Yay! Now we are ever closer to real Unicode support. The door is open to somebody else to create an alternate QB64 IDE with that, if he/she really really wants it.

I never heard about this "Wiki encoded text" before. I came across "markdown", like "REAME.md" format, something that could be programmed for to create special document readers instead of having to use a few text editors that support stuff like syntax coloring and might be limited to doing only that. Could be for personal use, such as my unfinished fantasy novel LOL.

EDIT:  Rolleyes well at least it wasn't like in the "early days" of the Wiki, where a decision couldn't be made to use two colons, or three, or four to delimit headings, to indicate colors and stuff like that, back then the text files were an incredible mess. Might want to assign a pseudo-variable to prevent those #F50B38 everywhere only to color numeric constants... Also a message would be nice, of successful export to the same directory as the current source file.

EDIT #2: It doesn't look like there is a lot of information about this "SF3" format which I think wasn't professionally handled because the authors of MuseScore claimed to have invented it, but that program can't create that format. I found one place that claims that it's just like SF2, but with OGG Vorbis-compressed samples instead of raw PCM. I could go further testing it with Polyphone but I don't know if it's able to create that so-called format. It's not interesting to me to create an SF2 file which features megabytes of multisamples. I have SF2 files by a different author that have multisamples long enough but won't "unpack" them because it's a violation of copyright, even if it's not going to be shared online.

So the MIDI/Soundfont playback is still in $UNSTABLE status?
Reply
#3
On Linux this program is very helpful to figure out Unicode chars in UTF-8 or UTF-16:

https://wiki.gnome.org/Apps/Gucharmap

Usually the status bar shows UTF-16, but I can't find the way to change it to UTF-8 like what fits with the code example for _UPRINTSTRING.

On Linux might want to use a better font than "Cyberbit" for the example, eg. "NotoSerif-Medium.ttf", should be available in most installations with KDE Plasma. But I tested this with EndeavourOS MATE. The example as it stood was a bit hard to read so I changed the point size to 24, tested it with two different fonts loaded, with the last parameter of the new statement. "Cyberbit" stuck a few of the Cyrillic letters together; the "Noto" font was better to read.


[Image: uprintstring-example-with-better-font.png]
Reply
#4
What was the raw string you used in the IDE in order to make it print those characters?
Schuwatch!
Yes, it's me. Now shut up.
Reply
#5
The Export As feature is awesome. I'll definitely use this in my tutorial. The ability to click on keywords that redirect to the wiki is a nice touch. Is there a quick way to change the wiki hyperlinks to open in a new window?

UPDATE

Google Sites seems to take care of opening in a new window automatically so all is good for my use. May be useful for others however to have the option of having links open in new window.
Software and cathedrals are much the same — first we build them, then we pray.
QB64 Tutorial
Reply
#6
Thumbs Up 
Always good to see these updates, keeping QB64 more that just alive.
b = b + ...
Reply
#7
(05-05-2023, 11:56 AM)Ultraman Wrote: What was the raw string you used in the IDE in order to make it print those characters?

It's the first code example shown here:

https://qb64phoenix.com/qb64wiki/index.php/UPRINTSTRING

It's tricky: the string has to be loaded by assembling bytes in hexadecimal format (have to add "&H" at the front to make it valid like &H20) taken from DATA statements. The Unicode characters require two "CHR$(x)+CHR$(y)" at a time where "x" and "y" are _UNSIGNED _BYTE's set to 128 or higher. Otherwise there's an occasional "20" which is for space and "2E" at the end which is for period.

Also for the screenshot I have purposely set a wider screen, chosen a different font and slightly larger point size. Because Cyberbit at 21 points was less clear. I can't even read Bulgarian or Russian or any other language that uses Cyrillic characters and have to depend on their proximity with Greek to try to understand, but a few glyphs in the original example ran into each other. I don't think a Russian would appreciate it, if we always had to write that large on a piece of paper.

I had to look up that the first glyph listed, and the one that looks like a "6" are the same letter, but the first is uppercase and the other is lowercase. (covers face with hands)
Reply
#8
I just updated lesson 2 using the Export As feature:

https://www.qb64tutorial.com/lesson2

So awesome not to have to create code images any longer! Now the tutorial users can copy and paste the code directly from the tutorial pages as well.

I'll get to the rest of the tutorial pages in a few days.

Thank you for keeping the QB64PE updates coming!
Software and cathedrals are much the same — first we build them, then we pray.
QB64 Tutorial
Reply
#9
(05-05-2023, 08:35 AM)mnrvovrfc Wrote: So the MIDI/Soundfont playback is still in $UNSTABLE status?

Yes, but I believe we plan to change that soon (maybe next release), along with removing the OpenAL backend. Generally speaking we haven't gotten much feedback on
$MidiSoundFont
, but perhaps that's a good sign Big Grin
Reply
#10
Another great job! Thank you for your effort!  Exclamation

Something to relax:

Dance with me (Fly with me): 


Or Edo Music:
Reply




Users browsing this thread: 12 Guest(s)