uFMOD.bi -> code too long to post it here directly -> check out https://pastebin.com/Li5gbNCK
uFMOD.dll will be extracted automatically if doesn't exist.
Example1 (play from memory):
Code: Select all
#include "uFMOD.bi"
declare Function CharRepeat(iRepeatCount as UByte, sChar as String = "#") as String
'Generated by *FB File2Bas Code Generator v0.50 build 2017-03-15 beta*
Dim Shared As UByte __1999xm(0 To ...) = _
{&h45, &h78, &h74, &h65, &h6E, &h64, &h65, &h64, &h20, &h4D, &h6F, &h64, &h75, &h6C, &h65, &h3A, &h20, &h31, &h39, &h39, &h39, &h20, &h62, &h79, &h20, &h57, &h41, &h56, &h45, &h20, &h2F, &h20, &h4D, &h2E, &h6F, &h2E, &h4E, &h1A, &h46, &h61, &h73, &h74, &h54, &h72, &h61, &h63, &h6B, &h65, &h72, &h20, &h76, &h32, &h2E, &h30, &h30, &h20, &h20, &h20, &h04, &h01, &h14, &h01, &h00, &h00, &h01, &h00, &h00, &h00, &h0A, &h00, &h01, &h00, &h01, &h00, &h01, &h00, &h18, &h00, &h85, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h09, &h00, &h00, &h00, &h00, &h40, &h00, &hE3, &h04, &h83, &h31, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h83, &h25, &h01, &h8D, &h61, &h10, &h0C, &h83, &h50, &h01, &h85, &h61, &h10, &h83, &h19, &h01, &h85, &h61, &h10, &h80, &h80, &h83, &h34, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h31, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h34, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h4C, &h01, &h80, &h80, &h83, &h2F, &h01, &h9B, &h34, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h28, &h01, &h83, &h4B, &h01, &h80, &h80, &h83, &h1C, &h01, &h80, &h80, &h83, &h36, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h2F, &h01, &h9B, &h34, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h83, &h44, &h01, &h80, &h80, &h80, &h80, &h83, &h36, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h2D, &h01, &h9B, _
&h33, &h01, &h0E, &hDC, &h80, &h80, &h83, &h27, &h01, &h80, &h83, &h47, &h01, &h80, &h83, &h1B, &h01, &h80, &h80, &h80, &h83, &h34, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h80, &h9B, &h45, &h01, &h0E, &hDC, &h80, &h80, &h83, &h2D, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h34, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h83, &h44, &h01, &h80, &h80, &h80, &h83, &h30, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h2C, &h01, &h80, &h80, &h80, &h83, &h20, &h01, &h80, &h80, &h83, &h38, &h01, &h9B, &h39, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h30, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h83, &h20, &h01, &h80, &h80, &h83, &h3F, &h01, &h83, &h14, &h01, &h80, &h80, &h80, &h83, &h38, &h01, &h9B, &h39, &h01, &h0E, &hDC, &h80, &h80, &h83, &h40, &h01, &h9B, &h42, &h01, &h0E, &hDC, &h80, &h80, &h83, &h31, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h25, &h01, &h83, &h40, &h01, &h80, &h80, &h83, &h19, &h01, &h80, &h80, &h83, &h34, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h38, &h01, &h80, &h80, &h83, &h31, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h83, &h3D, &h01, &h9B, &h3F, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h83, &h34, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h83, &h40, &h01, &h9B, &h42, &h01, &h0E, &hDC, &h80, &h80, &h83, &h2F, &h01, &h9B, &h34, &h01, &h0E, &hDC, &h80, &h80, &h83, &h28, &h01, &h80, &h83, &h44, &h01, &h80, &h83, &h1C, &h01, &h80, &h80, &h80, &h83, &h36, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h3B, &h01, &h80, &h80, &h83, &h2F, &h01, &h9B, &h34, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h83, &h44, &h01, &h80, &h80, &h80, &h80, &h80, &h83, &h36, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h40, &h01, &h80, &h80, &h83, &h2D, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h27, &h01, &h83, &h47, &h01, &h80, &h80, &h83, &h1B, &h01, &h80, &h80, &h83, &h34, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h80, &h9B, &h49, &h01, &h0E, &hDC, &h80, &h80, &h83, &h2D, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h34, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h83, &h48, &h01, &h80, &h80, &h80, &h83, &h30, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h83, &h2C, &h01, &h80, &h80, &h80, &h83, &h20, &h01, &h80, &h80, &h80, &h83, &h38, &h01, &h9B, &h39, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h30, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h20, &h01, &h80, &h83, &h44, &h01, &h80, &h83, &h14, &h01, &h80, &h80, &h83, &h38, &h01, &h9B, &h39, &h01, &h0E, &hDC, &h80, &h80, &h83, &h49, &h01, &h9B, &h4B, &h01, &h0E, &hDC, &h80, &h80, &h83, &h31, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h83, &h25, &h01, &h80, &h83, &h4C, &h01, &h80, &h83, &h19, &h01, &h80, &h80, &h80, &h83, &h34, &h01, &h9B, &h38, &h01, &h0E, &hDC, _
&h80, &h80, &h80, &h80, &h80, &h80, &h83, &h31, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h34, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h9B, &h49, &h01, &h0E, &hDC, &h83, &h4B, &h01, &h80, &h80, &h83, &h2F, &h01, &h9B, &h34, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h28, &h01, &h80, &h83, &h47, &h01, &h80, &h83, &h1C, &h01, &h80, &h80, &h83, &h36, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h83, &h40, &h01, &h80, &h80, &h80, &h83, &h2F, &h01, &h9B, &h34, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h9B, &h49, &h01, &h0E, &hDC, &h83, &h47, &h01, &h80, &h80, &h80, &h80, &h83, &h36, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h9B, &h4C, &h01, &h0E, &hDC, &h83, &h4B, &h01, &h80, &h80, &h83, &h2D, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h83, &h27, &h01, &h80, &h80, &h83, &h4E, &h01, &h83, &h1B, &h01, &h80, &h80, &h80, &h83, &h34, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h83, &h50, &h01, &h80, &h80, &h80, &h83, &h2D, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h83, &h4E, &h01, &h80, &h80, &h80, &h80, &h83, &h34, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h83, &h49, &h01, &h80, &h80, &h80, &h83, &h30, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h2C, &h01, &h80, &h83, &h48, &h01, &h80, &h83, &h20, &h01, &h80, &h80, &h83, &h38, &h01, &h9B, &h39, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h30, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h83, &h20, &h01, &h80, &h83, &h50, &h01, &h80, &h83, &h14, &h01, &h80, &h80, &h80, &h83, &h38, &h01, &h9B, &h39, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h4E, &h01, &h80, &h80, &h83, &h31, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h25, &h01, &h83, &h4C, &h01, &h80, &h80, &h83, &h19, &h01, &h80, &h80, &h83, &h34, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h4B, &h01, &h80, &h80, &h83, &h31, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h83, &h49, &h01, &h9B, &h4B, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h83, &h34, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h83, &h4C, &h01, &h9B, &h4E, &h01, &h0E, &hDC, &h80, &h80, &h83, &h2F, &h01, &h9B, &h34, &h01, &h0E, &hDC, &h80, &h80, &h83, &h28, &h01, &h80, &h83, &h50, &h01, &h9B, &h51, &h01, &h0E, &hDC, &h83, &h1C, &h01, &h80, &h80, &h80, &h83, &h36, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h83, &h50, &h01, &h9B, &h4C, &h01, &h0E, &hDC, &h80, &h80, &h83, &h2F, &h01, &h9B, &h34, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h83, &h47, &h01, &h80, &h80, &h80, &h80, &h80, &h83, &h36, &h01, &h9B, &h38, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h40, &h01, &h80, &h80, &h83, &h2D, &h01, &h9B, &h33, &h01, &h0E, &hDC, &h80, &h80, &h80, &h83, &h27, &h01, &h83, &h47, &h01, &h80, &h80, &h83, &h1B, &h01, &h80, &h80, &h83, &h34, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h80, &h9B, &h45, &h01, &h0E, &hDC, &h80, &h80, &h83, &h2D, &h01, &h9B, &h33, &h01, &h0E, &hDC, _
&h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h34, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h83, &h42, &h01, &h80, &h80, &h80, &h83, &h30, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h83, &h2C, &h01, &h80, &h80, &h83, &h44, &h01, &h83, &h20, &h01, &h80, &h80, &h80, &h83, &h38, &h01, &h9B, &h39, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h30, &h01, &h9B, &h36, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h80, &h83, &h38, &h01, &h9B, &h39, &h01, &h0E, &hDC, &h80, &h80, &h80, &h80, &h80, &h80, &h07, &h01, &h00, &h00, &h28, &h43, &h29, &h20, &h31, &h39, &h39, &h39, &h20, &h4A, &h65, &h72, &h6F, &h65, &h6E, &h20, &h47, &h2E, &h20, &h54, &h65, &h6C, &h1F, &h01, &h00, &h28, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h30, &h00, &h04, &h00, &h2B, &h00, &h09, &h00, &h1E, &h00, &h0D, &h00, &h18, &h00, &h13, &h00, &h12, &h00, &h1B, &h00, &h0E, &h00, &h25, &h00, &h0A, &h00, &h32, &h00, &h07, &h00, &h40, &h00, &h05, &h00, &h4D, &h00, &h03, &h00, &h8D, &h00, &h00, &h00, &h00, &h00, &h30, &h00, &h00, &h00, &h20, &h00, &h44, &h01, &h20, &h00, &h50, &h00, &h20, &h00, &h50, &h00, &h20, &h00, &h50, &h00, &h20, &h00, &h50, &h00, &h20, &h00, &h50, &h00, &h20, &h00, &h5A, &h00, &h20, &h00, &h64, &h00, &h20, &h00, &h6E, &h00, &h20, &h00, &h78, &h00, &h20, &h00, &h82, &h00, &h20, &h00, &h0B, &h02, &h06, &h01, &h01, &h01, &h01, &h01, &h01, &h00, &h00, &h1A, &h0B, &h15, &h80, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h64, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h64, &h00, &h00, &h00, &h40, &hDC, &h11, &h80, &h0A, &h0C, &h54, &h72, &h69, &h61, &h6E, &h67, &h6C, &h65, &h2E, &h77, &h61, &h76, &h20, &h20, &h20, &h20, &h20, &h20, &h20, &h20, &h20, &h20, &h01, &hD0, &hB0, &h03, &hAF, &h03, &hB0, &h03, &hB0, &h03, &hAF, &h03, &hB0, &h03, &hAF, &h03, &hB1, &h03, &hAF, &h03, &hB0, &h03, &hAF, &h03, &hB0, &h03, &h9A, &h05, &hB0, &h03, &hAF, &h03, &hB1, &h03, &hAF, &h03, &hB0, &h03, &hAF, &h03, &hB0, &h03, &hB0, &h03, &hAF, &h03, &hB0, &h03, &hB0, &h03, &hC3, &h03, &h51, &hFC, &h50, &hFC, &h50, &hFC, &h50, &hFC, &h51, &hFC, &h50, &hFC, &h50, &hFC, &h51, &hFC, &h50, &hFC, &h51, &hFC, &h4F, &hFC, &h66, &hFA, &h51, &hFC, &h50, &hFC, &h51, &hFC, &h50, &hFC, &h50, &hFC, &h51, &hFC, &h50, &hFC, &h50, &hFC, &h50, &hFC, &h51, &hFC, &h50, &hFC, &h50, &hFC}
Dim as any Ptr hLib = _uFMOD_Startup()
_uFMOD_SetVolume(hLib, 25)
_uFMOD_PlaySongMem(hLib, @__1999xm(0), Ubound(__1999xm) * SizeOf(Ubyte), 1)
Print "Press ESC to exit!" : ?
'? "Title: "; *_uFMOD_GetTitle(hLib)
? "Title: "; _uFMOD_GetTitle(hLib)[0] : ?
? "RMS volume coefficients:"
Dim as Uinteger iStats, iLeft, iRight, iMs, iRowOrder
Do
iStats = _uFMOD_GetStats(hLib)
iLeft = HiWord(iStats) : iRight = LoWord(iStats)
Locate 6, 1, 0
? "Left: "; Hex(iLeft, 4), "Right: "; Hex(iRight, 4),
Locate 8, 1, 0
? CharRepeat(60, " ")
Locate 8, 1, 0
? CharRepeat(CUbyte(iLeft / &h7FFF * 400)),
Locate 9, 1, 0
? CharRepeat(60, " ")
Locate 9, 1, 0
? CharRepeat(CUbyte(iRight / &h7FFF * 400)),
Locate 11, 1, 0
iRowOrder = _uFMOD_GetRowOrder(hLib)
? "Row: "; LoWord(iRowOrder), "Order: "; HiWord(iRowOrder),
Locate 14, 1, 0
iMs = _uFMOD_GetTime(hLib)
? Using "Time elapsed: ###.## s"; iMS / 1000;
Sleep 30
Loop Until InKey = Chr(27)
_uFMOD_StopSong(hLib)
_uFMOD_Shutdown(hLib)
Function CharRepeat(iRepeatCount as UByte, sChar as String = "#") as String
If iRepeatCount < 1 Then Return ""
Dim as String sString
For x as UByte = 1 to iRepeatCount
sString &= sChar
Next
Return sString
End Function
Code: Select all
#include "uFMOD.bi"
declare Function CharRepeat(iRepeatCount as UByte, sChar as String = "*") As String
Dim as any Ptr hLib = _uFMOD_Startup()
_uFMOD_SetVolume(hLib, 25)
_uFMOD_PlaySongFile(hLib, Curdir & "\Jeroen Tel - Letgo.xm")
Print "Press ESC to exit!" : ?
'? "Title: "; *_uFMOD_GetTitle(hLib)
? "Title: "; _uFMOD_GetTitle(hLib)[0] : ?
? "RMS volume coefficients:"
Dim as Uinteger iStats, iLeft, iRight, iMs, iRowOrder
Do
iStats = _uFMOD_GetStats(hLib)
iLeft = HiWord(iStats) : iRight = LoWord(iStats)
Locate 6, 1, 0
? "Left: "; Hex(iLeft, 4), "Right: "; Hex(iRight, 4),
Locate 8, 1, 0
? CharRepeat(70, " ")
Locate 8, 1, 0
? CharRepeat(CUbyte(iLeft / &h7FFF * 150)),
Locate 9, 1, 0
? CharRepeat(70, " ")
Locate 9, 1, 0
? CharRepeat(CUbyte(iRight / &h7FFF * 150)),
Locate 11, 1, 0
iRowOrder = _uFMOD_GetRowOrder(hLib)
? "Row: "; LoWord(iRowOrder), "Order: "; HiWord(iRowOrder),
Locate 14, 1, 0
iMs = _uFMOD_GetTime(hLib)
? Using "Time elapsed: ###.## s"; iMS / 1000;
Sleep 30
Loop Until InKey = Chr(27)
_uFMOD_StopSong(hLib)
_uFMOD_Shutdown(hLib)
Function CharRepeat(iRepeatCount as UByte, sChar as String = "*") As String
If iRepeatCount < 1 Then Return ""
Dim as String sString
For x as UByte = 1 to iRepeatCount
sString &= sChar
Next
Return sString
End Function
Thanks dodicat for his support.
More info about uFMOD.dll incl. Linux version can be found here: https://sourceforge.net/projects/ufmod/