Towards a standalone application

We are look­ing for a suit­able plat­form to com­pile stand­alone ver­sions of Bol Processor BP3.

Currently, Bol Processor BP3 is the com­bi­na­tion of a con­sole (writ­ten in C lan­guage) and a set of PHP/HTML/CSS/Javascript files that act as its inter­face. A con­sole ver­sion of Csound can also be attached. See the Bol Processor ‘BP3’ and its PHP inter­face page for instal­la­tion details.

It all works beau­ti­ful­ly in a design that is com­pat­i­ble with mul­ti­ple 64-bit sys­tems: MacOS, Linux and Windows. However it does require the instal­la­tion of an Apache+PHP pack­age to run the inter­face. (We are cur­rent­ly using the free ver­sion of MAMP on Mac com­put­ers to devel­op the BP3 interface.)

The next step will be to cre­ate a stand­alone appli­ca­tion that replaces the web brows­er and its PHP/HTML/CSS files. The appli­ca­tion will have Linux, MacOS and Windows versions.

Over the past two decades, a num­ber of plat­forms have been devel­oped for build­ing desk­top appli­ca­tions that emu­late the behav­iour of a web brows­er. Most of these seem to have been aban­doned, or at least not updat­ed for years, but we are con­fi­dent that PHP Desktop will be eli­gi­ble for this process.

We urgent­ly need to eval­u­ate the abil­i­ty of PHP Desktop (in its cur­rent Linux imple­men­ta­tion) to com­pile a stand­alone ver­sion of the Bol Processor inter­face. We would like to hire a pro­gram­mer for this spe­cif­ic task. Please con­tact us to dis­cuss the terms of collaboration.

Below is a list of require­ments for com­pil­ing the PHP/HTML/CSS/Javascript inter­face. Please pro­vide links to alter­na­tive solu­tions in the com­ments at the bot­tom of this page, or pri­vate­ly via the Contact page.

Requirements

  1. Display a HTML/PHP page using links to its CSS file(s)
  2. Support the “require_once()” pro­ce­dure to bind sev­er­al PHP pages together
  3. Support all types of HTML “<input>” instruc­tions: fields, but­tons, check­box­es etc.
  4. Support “$_GET” and “$_POST” to han­dle forms
  5. Support PHP “open()” instruc­tion to create/update text files
  6. Support PHP “exec()” instruc­tion to send com­mands to the console
  7. Support multi-tag or multi-window work space
  8. Support Javascript “window.open()” to cre­ate pop-up windows
  9. Support HTML CANVAS graph­ics and PHP GD graphics
  10. Support the HTML Audio tag to stream WAV sound files
  11. Preferably imbed­ding Chrome browser

Note that no data­bas­es or SESSION vari­ables are used in the inter­face. Temporary data is kept in files that are auto­mat­i­cal­ly dis­card­ed when obsolete.

A glob­al vari­able “$which_system” can be set at the begin­ning of the code to com­pile desk­top appli­ca­tions run­ning on dif­fer­ent sys­tems. Minimum sys­tem ver­sions could be: MacOS 10.14 (Mojave), Windows 10, and Linux ≥ January 2019.

A multiplatform Bol Processor

Bol Processor 2.9.8 (Mac ver­sion) had an eight-year exis­tence requir­ing very few bug fix­es. However it need­ed to be entire­ly rebuilt to work under MacOS 10.15 (Catalina) and future ver­sions: only 64-bit appli­ca­tions are allowed. The high­est sys­tem ver­sion sup­port­ing BP 2.9.8 was MacOS 10.14 (Mojave).

The graph­ic inter­face was entire­ly redesigned to this effect. We opt­ed for the devel­op­ment of a con­sole serv­er appli­ca­tion receiv­ing instruc­tions via com­mand lines. As per this writ­ing, the new appli­ca­tion is work­ing, although a few fea­tures such as real-time MIDI have not yet been imple­ment­ed. We are delight­ed to announce that it com­piles suc­cess­ful­ly for many sys­tems includ­ing MacOS, Linux, and Windows with both 32-bit and 64-bit Intel proces­sors! This was the major step towards a mul­ti­plat­form version.

This new appli­ca­tion (BP3) is being test­ed with a graph­ic user inter­face pro­grammed in PHP. This requires a web serv­er on which to run, but it allows any­one with a web brows­er to try out BP3 with­out installing any­thing (fol­low this link).

We are now plan­ning to cre­ate a stand­alone ver­sion of BP3 run­ning in MacOS, Windows and Linux envi­ron­ments. This step is with­in our reach using the PHP Desktop plat­form. We need the help of programmer(s) con­ver­sant with this environment!

We invite soft­ware design­ers to join the team and con­tribute to the devel­op­ment of the core appli­ca­tion and its client appli­ca­tions. Please join the BP users help forum , BP open dis­cus­sion forum and/or the BP devel­op­ers list to stay in touch with work progress and dis­cus­sions of relat­ed musi­cal or theoretical/technical issues.

Academic presentations

Bernard will soon be pre­sent­ing aspects of Bol Processor in sev­er­al aca­d­e­m­ic venues: