ObjReader Community

Discussion => Post Your Questions & Comments Here => Topic started by: Claude Zominy on November 25, 2020, 07:35:42 pm

Title: Is it possible to modify Bassbox settings through a serial line ?
Post by: Claude Zominy on November 25, 2020, 07:35:42 pm
First of all, many thanks to Patrice for inviting me to this private forum.

Few words to introduce myself, I am an electronics/software engineer and I am used to deal with microcontrollers and real time systems. A looong time ago, I started to use Windev 16 for a professional usage in an industrial company. Then I bought it for my private projects  and  I am currenty with Windev 20.
I am a passionated engineer and I developped various projects as part of my hobby activities. I found Windev very useful as I didn't invest the time needed to learn C++ and Windows APIs programming (though I can do rather well in C programming IMO). Windev was an easy way to build various projects quickly but as you know it already for sure, it has limitations (btw all systems have pros and cons)

I am currently using Windev to build a UI to communicate with a microcontroller sending commands and exchanging data.  I am working for 2 years now on a very special equipment that is a kind of sophisticated vaporizer and I want to combine it with a generator of audio and visual stimuli. I found your website by googling Windev + Audio.
I downloaded your demo of BassBox and I want to congratulate you for this amazing piece of software. The Wow effect is there, be sure of it !

Coming back to my post, I would like to know if it would be possible to  modify Bassbox settings through a serial line.  My current need would be to be able to adjust the audio volume, change the equalizer settings, switch the visual pattern generators, control a play list and reduce/accelerate the speed of an audio file. In a nutshell to modify the BassBox UI settings based on information received from a slave device.
Just to give you a tentative direction, an idea might be to include in Bassbox a polling routine, that periodically send a command to my system through a serial line, my system being a slave, and based on the answer from this slave, Bassbox will adjust the required setting. Something like that.. :o

looking at it from multiple angles, I understood that there are maybe solutions around Windows APO ? or other softwares that can be controlled through APIs but first usually they don't have a generator of visual patterns and second I am not skilled enough to develop the interface with their API... everybody has his own limits !

My current goal is to develop a proof of concept at this stage. It is a very serious hobby where I invested already a lot of time (and money). The audio/visual part is important but is not the key point of this project.

Happy to know your opinion or recommandations about this or if you have any other potential alternatives  in mind. Any ideas more than welcomed !
And very sorry for this first post that is maybe too loooong...  :D

Title: Re: Is it possible to modify Bassbox settings through a serial line ?
Post by: Patrice Terrier on November 26, 2020, 10:12:59 am
Claude,

First of all, welcome to my private forum that is mainly dedicated to 3D (OpenGL), graphic (GDImage/WinLIFT), and multimedia programming.

About BassBox:
It is using Bass.dll from Ian Luck (www.un4seen.com) to handle the audio part,
and OpenGL visual plugins (.dll) to render the audio effects.

The first version (below) was written long ago in PowerBASIC 32-bit.

(https://www.zapsolution.com/DW/images/BassBox.png)

Then came BasBox Radio written with WinDev 17 in 32-bit.
that is available here (http://www.objreader.com/index.php?topic=52.0).

Then BB64 written with Visual Studio C++ in a mix of 32 and 64-bit.
that is available here (http://www.objreader.com/index.php?topic=99.msg922#msg922).
There is also a plain 64-bit version (VS 2019), available on demand.

And the latest version MBox64 (written in C++) that is mixing several technologies
that is available here (http://www.objreader.com/index.php?topic=80.0).

About the tools that have been used to write the applications.
Most of them are native compilers: PowerBASIC 32-bit, and C/C++ Visual Studio 64-bit
they are required to interface with the core low level API and to write the OpenGL plugins (DLL).

WinDev being not a true compiler it can't be used to write DLL.
Moreover the size of the current WD25 framework is so huge that i still use WD17 to keep it smaller (1/4).

All the codes i am witting are using the core SDK API procedural programming style, because that is the only common denominator understood by all of them.

Thus in short, while WinDev could be handy to create the GUI, it can't be used alone to create real time applications, that must be performed by native true compiled code.

About the polling mode, that would be possible via the use of a central timer, just like what i am doing in my WinDev GDImage tutor project that is available here (https://depot.pcsoft.fr/resource.awp?file_id=281474976710910;tutor-gdimage-64bit).
Set Tutor_05 as the main window.

Title: Re: Is it possible to modify Bassbox settings through a serial line ?
Post by: Claude Zominy on November 27, 2020, 08:53:12 pm
Many Thanks Patrice for sharing all these pieces of information,

I am going to review your GDImage tutor project to see what I can get out of it .

Enjoy your Week End !