BRossTools
BRossTools

This is a test of code to exercise the Xcode system. One of my goals was to avoid the use of Interface Builder except for attaching items in the menu bar to various programs. The GitHub documentation for BRossTools is located at [https://bradleyross.github.io/ObjectiveC-Examples/BRossTools](This is a test of code to exercise the Xcode system. One of my goals was to avoid the use of Interface Builder except for attaching items in the menu bar to various programs. The GitHub documentation for BRossTools is located at
https://bradleyross.github.io/ObjectiveC-Examples/Documentation/BRossTools

Files

  • BRossTools.h and BRossTools.m contain a set of Objective-C classes that are under development that will be used as a library to assist programmers.
  • LocalClasses.h and BRossTools.m contain Objective-C classes that are being used to understand the technologies used in the development of MacOS applications.
  • The file AppDelegate.m has been modified to create a menu upon opening the application that can be used to call the other components contained in the application.
  • The files MIKMIDIsamples.h and MIKMIDIsamples.m contain examples for using MIKMIDI from Andrew Marsden

Mapping to main menu

Apple Documentation

The following is a list of documentation from Apple that can be used to create, modify, and understand this code.

Apple Objective-C Classes

The following list provides links the Apple documentation that describe some of the various classes used in the program..

  • Audio Toolbox I need more information on this.
  • AVAudioEngine (AVFAudio -> Audio Engine -> AVAudioEngine) The methods for this class include a number of methods having the format connectMIDI... and disconnectMIDI...
  • AVAudioSequencer (AVFAudio -> Audio Engine -> AVAudioSequencer)
  • AVAudioUnitMIDIInstrument (AVFAudio -> Audio Engine -> AVAudioUnitMIDIInstrument) It appears that sendProgramChange:onChannel sends a program (instrument change) while sendProgramChange:bankMSB:bankLSB:onChannel changes both program and sound bank. This would imply a need to change the instrument choice whenever you change the sound bank.
  • AVAudioUnitSampler (AVFAudio -> Audio Engine -> AVAudioUnitSampler)
  • NSBundle (Foundation -> Resources -> NSBundle)
  • NSError (Foundation -> Errors and Exceptions -> NSError) (EEZY Tutorials) (Error Handling Programming Guide: Using and Creating Error Objects)
  • NSException (Foundation -> Errors and Exceptions -> NSException)
  • NSThread (Foundation -> Processes and Threads -> NSThread)
  • NSTimer (Foundation -> TaskManagement -> NSTimer)

MIDI programming using CoreMIDI

* MIKMIDI uses the following packages
     * LibXML2
     * Audio Unit
     * Audio Toolbox
     * AppKit
     * CoreData
     * CoreMIDI
     * Cocoa
     * Foundation     

Audio Toolbox

MIDI documentation

Electronic Music

The following are some sources of files for electronic music.