Conditionalize GUI code in CoreMIDIdriver.c.
Duplicate Xcode project's console targets and change one set for compiling with CoreMIDI driver.
Conditionalize defs in MissingMacTypes.h that conflict with Carbon headers included by CoreServices.
Rewrite CoreMIDIdriver.c to compile with the console build.
New prefix file for building BP3 console app with CoreMIDI driver.
Add a conditional call in main() to InitCoreMidiDriver().
Add (void) to function prototypes with no parameters.
Add some tasks to the To-Do list.
First draft of a to-do list for BP3.
Add MIDIfiles.c to the Makefile.
Fixes for Midi file output which now works!
Make type 1 MIDI files the default.
Minor fix when checking for Midi type 2 file and remove unneeded stub for GetMIDIfileName().
New option '--midiformat num' for specifying the Midi file format.
Reimplemented WriteVarLen() because the previous code was copied from the Standard MIDI-File Format Spec.
Finished rewrite of Midi file output routines. Add MIDIfiles.c to Xcode targets.
Remove the NEWLINECHAR macro I added recently and just always output '\n' in the spots.
Partial rewrite of out Midi file output routines. Doesn't compile yet!
Replaced many "high-ASCII" characters in message strings and comments with their closest ASCII equivalents.
Replaced \r with \n in all message strings.
Update Makefile to include SaveLoads1.c for loading settings.
Remove embedded grammars from ConsoleMain.c.
Update copyright years in console-only source files.
Command-line options can now override the options in the settings file.
Bug fixes for reading settings files. LoadSettings() now works if the file has Unix or Windows line endings (but not Mac, ironically).
Fix the reading of settings files with Mac OS line endings.
Remove most of the code related to OMS (USE_OMS) and serial Midi driver (USE_BUILT_IN_MIDI_DRIVER).
Wasn't closing input files in ConsoleMain.c. New function for general use: CloseFile().
Revised LoadSettings() for the console build. Compiles but does not link yet.
Open & close a FILE* in LoadSettings() and pass that to Read*() functions instead of a MacOS refnum.
Modify Read*() functions to use <stdio.h> file input.
Able to open & start reading a settings file but fails before the end.
Add a "clean" target to the Makefile.
Change version number to "2.999..."
Update copyright years in License.txt and convert line endings to Windows format.
Add '-e' and '--use-stderr' options for rerouting messages to standard error.
New option '--traceout' for routing compilation errors and trace outputs to a trace file.
Change all output destinations for messages to use stdout instead of stderr by default.
Update command-line help with missing options.
Type fixes in ReseedOrShuffle() and output new random seeds to the console.
First attempts at implementing "produce-all", "templates", and "analyze-item" actions. Needs more work!
Can now specify the 'produce' or 'compile' actions and BP Console will do them.
Add blank lines before & after argument parsing errors; correct some other error messages.
There are a number of places in the code where the Midi file gets closed other than when BP2 quits. Changing the name or format of the file in the "File save preferences" dialog will force the closure of the current Midi file. Probably the easiest option though is just to switch the "MIDI files" option off in the "Devices" menu or the "Input-output settings" dialog. You can then switch it back on immediately but I believe the last Midi file will remain closed. I haven't tested any of these workarounds...
Robert, Thanks very much for answering the questionnaire! We will consider your feedback as we move forward and set priorities. I'm glad to heaer that you will be comfortable with a command line version, because that and Bernard's browser application will probably be the first things ready. The good news is that the command line version is already working on macOS Catalina and many other platforms! So, when it is ready you will be able to use it on virtually any computer. In my initial reply, I lamented...
New options --seed [num], --show-production, and --trace-production.
Implement -o option for writing produced items to a file.
Output \n instead of \r from PrintArg(), etc. in the console build.
Removed diagnostic messages when writing output to the Data & Trace "windows". Producing items looks much nicer now.
Prevent "Err. GetTextChar(). pos out of range" messages when at the end of the buffer.
Treat linefeeds the same as carriage returns in ReadLine(). Can now use (at least some) input files with any line ending convention.
Reworked console output files to use new structs & functions.
Sorted source files by name in Xcode 8.2 project.
--csoundout option now works as advertised. It requires a file name for the output score or "-" to print to stdout. A default f-table statement is now written into the score file.
Add math library to LIBS flags in Makefile.
Add a Makefile for command-line builds.
Hi Rob, Thanks for your continued interest in Bol Processor. The short answer to your question is "Hopefully yes, but it is going to take a long time." The best option for using Bol Processor in the next few years is going to be to keep/obtain an old Mac running a pre-Catalina version of MacOS. As you are probably aware, work on a cross-platform, command-line-only version of BP began almost 7 years ago but progress has been very sporadic. Unfortunately, I didn't get very far last summer with my plans...
Added command line options for changing the note convention:
Add new target to Xcode 8.2 project for a 64-bit console application.
CompileProcs.c: Fix small buffer overflow error in GetArg().
Remove dependency on NavServWrapper.h for non-GUI targets. 64-bit target now builds.
New copy of BP2-ANSI.xc24.xcodeproj for Xcode 8.2.1. Saved in "Xcode 3.2-compatible" format.
Need to initialize gOutDestinations[] at runtime with newer compiler.
Just to add some additional details: It is correct that BP2 can no longer connect directly to the built-in QuickTime synth (now called the "Apple DLS Synth"). For some reason, Apple has chosen not to make the DLS Synth a device in the Audio MIDI setup program and it would require extra programming in BP2 to make that connection. But there are a couple of free third-party applications that make the DLS Synth available as a MIDI destination on your computer. Therefore, we decided to just recommend...
Hi Jair-Rohm, To my knowledge, Bol Processor has not been tested on macOS Mojave but it will probably work (mostly) fine. I just tried BP2 on my old iMac running Mac OS X El Capitan and the basic functionality is working. There are a couple of new cosmetic issues but actually I think most of the dialog windows look better than they did on earlier versions of Mac OS X. :) You do not need to install OMS. (I don't think it works on any version of MacOS after OS 9). Bol Processor uses the built-in CoreMIDI...