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 asso­ci­a­tion of a con­sole (writ­ten in C lan­guage) and a set of PHP/HTML/CSS/Javascript files work­ing as its inter­face. A con­sole ver­sion of Csound may also be attached. Check page Bol Processor ‘BP3’ and its PHP inter­face for instal­la­tion instructions.

This all works beau­ti­ful­ly in a design com­pat­i­ble with sev­er­al 64-bit sys­tems: MacOS, Linux and Windows. However it requires the instal­la­tion of an Apache+PHP pack­age to run the inter­face. (We are cur­rent­ly using the free-of-charge ver­sion of MAMP to devel­op BP3’s inter­face on Mac computers.)

The next step will be to cre­ate a stand­alone appli­ca­tion replac­ing the web brows­er and its PHP/HTML/CSS files. The appli­ca­tion should run under Linux, MacOS and Windows. A num­ber of plat­forms have been devel­oped dur­ing the past two decades that would build desk­top appli­ca­tions repro­duc­ing the behav­iour of files acti­vat­ed by MAMP. Unfortunately, most of these seem to be aban­doned or at least not updat­ed for years. We are look­ing for an up-to-date version.

Below is a list of require­ments for a prop­er com­pi­la­tion of the PHP/HTML/CSS/Javascript inter­face. Please pro­vide links to pos­si­ble solu­tions in 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 HTML Audio tag to stream WAV sound files
  11. Preferably imbed­ding Chrome browser

Note that nei­ther data­bas­es nor SESSION vari­ables are used in the inter­face. Temporary data is pre­served in files auto­mat­i­cal­ly trashed when obsolete.

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

A multiplatform Bol Processor

Bol Processor 2.9.8 has had an eight-year exis­tence requir­ing very few bug fix­es. However it needs 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 is MacOS 10.14 (Mojave).

The entire graph­ic inter­face has been 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 is a major step towards a mul­ti­plat­form version.

The new appli­ca­tion 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 will allow any­one with a web brows­er to try out BP with­out installing any­thing. Ideally, once it is ready we will try to make a pub­lic BP serv­er avail­able online. Yet there are oppor­tu­ni­ties to try out this new user inter­face soon­er (fol­low this link).

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 the­o­ret­i­cal issues.