Classes

The following classes are available globally.

  • Maintains the active SoundFont patch being used for sound generation. There should only ever be one instance of this class, but this is not enforced.

    See more

    Declaration

    Swift

    public final class ActivePatchManager : SubscriptionManager<ActivePatchEvent>
  • Manager for posting alerts to the user. The plumbing guarantees that only one alert will happen at a time – others will queue until it is their turn to be shown. Although this works, there is the risk of annoying the user with a crapload of alerts because of some catastrophic failure.

    See more

    Declaration

    Swift

    public final class AlertManager
  • Collection of UIViewControllers and protocol facades which helps establish inter-controller relationships during the application launch. Each view controller is responsible for establishing the connections in their establishConnections method. The goal should be to have relations between a controller and protocols / facades, and not between controllers themselves. This is enforced here through access restrictions to known controllers.

    See more

    Declaration

    Swift

    public final class Components<T: UIViewController>: SubscriptionManager<ComponentContainerEvent>,
      ComponentContainer
    where T: ControllerConfiguration
  • Undocumented

    See more

    Declaration

    Swift

    public final class BackgroundManagedObjectContext
  • Undocumented

    See more

    Declaration

    Swift

    open class CoreDataStack<T> where T : NSPersistentContainer
  • Undocumented

    See more

    Declaration

    Swift

    @objc(ManagedDelayConfig)
    public final class ManagedDelayConfig : NSManagedObject, Managed
  • Undocumented

    See more

    Declaration

    Swift

    @objc(ManagedAppState)
    public final class ManagedAppState : NSManagedObject, Managed
  • Undocumented

    See more

    Declaration

    Swift

    @objc(ManagedFavorite)
    public final class ManagedFavorite : NSManagedObject, Managed
  • Undocumented

    See more

    Declaration

    Swift

    @objc(ManagedPreset)
    public final class ManagedPreset : NSManagedObject, Managed
  • Undocumented

    See more

    Declaration

    Swift

    @objc(ManagedPresetConfig)
    public class ManagedPresetConfig : NSManagedObject, Managed
  • Undocumented

    See more

    Declaration

    Swift

    @objc(ManagedReverbConfig)
    public class ManagedReverbConfig : NSManagedObject, Managed
  • Definition of the Core Data managed sound font entities.

    See more

    Declaration

    Swift

    @objc(ManagedSoundFont)
    public final class ManagedSoundFont : NSManagedObject, Managed
  • Undocumented

    See more

    Declaration

    Swift

    @objc(ManagedTag)
    public final class ManagedTag : NSManagedObject, Managed
  • Customized NSPersistentContainer that knows how to locate and load the managed object model (MOM) resource. It then caches this value for future use – basically useful for unit tests.

    See more

    Declaration

    Swift

    open class PersistentContainer : NSPersistentContainer
  • Undocumented

    See more

    Declaration

    Swift

    public final class SoundFontCoreData : CoreDataStack<PersistentContainer>
  • A data source for a UITableView that relies on a NSFetchedResultsController for model values. This design was heavily based on code from obj.io Core Data book.

    See more

    Declaration

    Swift

    public class TableViewDataSource<Delegate: TableViewDataSourceDelegate>: NSObject,
      UITableViewDataSource,
      NSFetchedResultsControllerDelegate
  • View controller for the effects controls view. Much of this functionality is duplicated in the AUv3 effects components.

    See more

    Declaration

    Swift

    public final class EffectsController : UIViewController
    extension EffectsController: ControllerConfiguration
    extension EffectsController: UIPickerViewDataSource
    extension EffectsController: UIPickerViewDelegate
  • A tag is just a unique name that can be associated with zero or more sound fonts. By default there is an ‘all’ tag which matches all sound fonts, and a ‘built-in’ tag that shows just those that come with the app.

    See more

    Declaration

    Swift

    public final class LegacyTag : Codable
    extension LegacyTag: Equatable
    extension LegacyTag: CustomStringConvertible
  • Specialization of UICollectionViewCell that knows how to render Favorite attributes.

    See more

    Declaration

    Swift

    final class FavoriteCell : UICollectionViewCell, ReusableView, NibLoadableView
  • Provides an editing facility for presets and favorites instances.

    See more

    Declaration

    Swift

    final public class FavoriteEditor : UIViewController
    extension FavoriteEditor: UITextFieldDelegate
    extension FavoriteEditor: UITextViewDelegate
    extension FavoriteEditor: UIPopoverPresentationControllerDelegate,
                              UIAdaptivePresentationControllerDelegate
  • Manages the movement of a Favorite cells in a UICollectionView

    See more

    Declaration

    Swift

    final class FavoriteMover : NSObject
  • Manages the view of Favorite items. Users can choose a Favorite by tapping it in order to apply the Favorite settings. The user may long-touch on a Favorite to move it around. Double-tapping on it will open the editor.

    See more

    Declaration

    Swift

    public final class FavoritesViewController : UIViewController, FavoritesViewManager
    extension FavoritesViewController: ControllerConfiguration
    extension FavoritesViewController: SegueHandler
    extension FavoritesViewController: FavoriteEditorDelegate
    extension FavoritesViewController: UICollectionViewDataSource
    extension FavoritesViewController: UICollectionViewDelegate
    extension FavoritesViewController: UICollectionViewDelegateFlowLayout
  • A custom setting with a SoundFont patch and a keyboard configuration.

    See more

    Declaration

    Swift

    public class LegacyFavorite : Codable
    extension LegacyFavorite: Equatable
    extension LegacyFavorite: CustomStringConvertible
  • Collection of Favorite instances created by the user.

    See more

    Declaration

    Swift

    final public class LegacyFavoriteCollection : Codable
    extension LegacyFavoriteCollection: CustomStringConvertible
  • Manages the collection of Favorite instances created by the user. Changes to the collection are saved, and they will be restored when the app relaunches.

    See more

    Declaration

    Swift

    final class LegacyFavoritesManager : SubscriptionManager<FavoritesEvent>
    extension LegacyFavoritesManager: Favorites
  • Undocumented

    See more

    Declaration

    Swift

    public final class GuideViewController : UIViewController
    extension GuideViewController: ControllerConfiguration
  • Undocumented

    See more

    Declaration

    Swift

    final class BindableGestureRecognizer : UITapGestureRecognizer
  • Manager of the strip informational strip between the keyboard and the SoundFont patches / favorites screens. Supports left/right swipes to switch the upper view, and two-finger left/right pan to adjust the keyboard range.

    See more

    Declaration

    Swift

    public final class InfoBarController : UIViewController
    extension InfoBarController: ControllerConfiguration
    extension InfoBarController: InfoBar
    extension InfoBarController: SegueHandler
  • Key

    Visual representation of a piano key. Each key has an associated Note value which determines what MIDI note the key will emit when touched.

    See more

    Declaration

    Swift

    public final class Key : UIView
  • Controller for the keyboard view. Creates the individual Key views and handles touch event detection within them. The controller creates an entire 108 keyboard which it then shows only a part of on the screen. The keyboard can be shifted up/down by octaves or by sliding via touch (if enabled).

    See more

    Declaration

    Swift

    final class KeyboardController : UIViewController
    extension KeyboardController: ControllerConfiguration
    extension KeyboardController: Keyboard
  • Undocumented

    See more

    Declaration

    Swift

    public class KeyboardRender : NSObject
  • A bookmark represents a file located outside of the app’s own storage space. It is used to reference sound font files without making a copy of them. However there are risks involved, namely that the bookmark may not resolve to a real file.

    See more

    Declaration

    Swift

    public final class Bookmark : Codable
    extension Bookmark: Hashable
  • Undocumented

    See more

    Declaration

    Swift

    internal class ConfigFile<T> : UIDocument where T : ConfigFileManager
  • Holds reference to ConsolidatedConfigFile and monitors it for changes to its restored attribute. When it changes to true, calls the closure which was given during construction.

    See more

    Declaration

    Swift

    public final class ConfigFileObserver
  • Undocumented

    See more

    Declaration

    Swift

    public final class ConsolidatedConfigFile : UIDocument
  • Delay audio effect by way of Apple’s AVAudioUnitDelay component.

    See more

    Declaration

    Swift

    public final class DelayEffect : NSObject
  • Representation of a patch in a sound font.

    See more

    Declaration

    Swift

    final public class LegacyPatch : Codable
    extension LegacyPatch: CustomStringConvertible
  • Representation of a sound font library. NOTE: all sound font files must have ‘sf2’ extension.

    See more

    Declaration

    Swift

    public final class LegacySoundFont : Codable
    extension LegacySoundFont: Hashable
    extension LegacySoundFont: CustomStringConvertible
  • Collection of SoundFont entities. The collection maintains a mapping between a SoundFont.Key (UUID) and a SoundFont instance. It also maintains an array of SoundFont.Key values that are ordered by SoundFont.name values.

    See more

    Declaration

    Swift

    public final class LegacySoundFontCollection : Codable
    extension LegacySoundFontCollection: CustomStringConvertible
  • Manages a collection of SoundFont instances. Changes to the collection are communicated as a SoundFontsEvent event.

    See more

    Declaration

    Swift

    public final class LegacySoundFontsManager : SubscriptionManager<SoundFontsEvent>
    extension LegacySoundFontsManager: SoundFonts
  • Undocumented

    See more

    Declaration

    Swift

    public final class MIDIController
    extension MIDIController: MIDIReceiver
  • Undocumented

    See more

    Declaration

    Swift

    final class PresetChangeManager
  • Reverberation audio effect by way of Apple’s AVAudioUnitReverb component.

    See more

    Declaration

    Swift

    public final class ReverbEffect : NSObject
  • This class encapsulates Apple’s AVAudioUnitSampler in order to load MIDI sound bank.

    See more

    Declaration

    Swift

    public final class Sampler : SubscriptionManager<SamplerEvent>
  • Collection of Tag instances.

    See more

    Declaration

    Swift

    public final class LegacyTagCollection : Codable
    extension LegacyTagCollection: CustomStringConvertible
  • Manager for the tag collection.

    See more

    Declaration

    Swift

    final class LegacyTagsManager : SubscriptionManager<TagsEvent>
    extension LegacyTagsManager: Tags
  • Undocumented

    See more

    Declaration

    Swift

    public final class SelectedSoundFontManager : SubscriptionManager<SelectedSoundFontEvent>
  • Manages window showing various runtime settings and options.

    See more

    Declaration

    Swift

    public final class SettingsViewController : UIViewController
    extension SettingsViewController: MFMailComposeViewControllerDelegate
  • Tracks and manages the active tag.

    See more

    Declaration

    Swift

    final class ActiveTagManager : NSObject
    extension ActiveTagManager: UITableViewDataSource
    extension ActiveTagManager: UITableViewDelegate
  • Provides an editing facility for SoundFont meta-data and tags.

    See more

    Declaration

    Swift

    final class FontEditor : UIViewController
    extension FontEditor: UITextFieldDelegate
    extension FontEditor: UIPopoverPresentationControllerDelegate,
      UIAdaptivePresentationControllerDelegate
    extension FontEditor: SegueHandler
  • Data source and delegate for the SoundFont UITableView. This view shows all of the names of the SoundFont files that are available in the app.

    See more

    Declaration

    Swift

    final class FontsTableViewManager : NSObject
    extension FontsTableViewManager: UITableViewDataSource
    extension FontsTableViewManager: UITableViewDelegate
  • View controller for the UITableView showing the presets of a sound font

    See more

    Declaration

    Swift

    public final class PresetsTableViewController : UITableViewController
    extension PresetsTableViewController: ControllerConfiguration
  • Data source and delegate for the Patches UITableView. This is one of the most complicated managers and it should be broken up into smaller components. There are three four areas of functionality:

    • table view drawing and selecting
    • row visibility editing
    • searching
    • row swiping
    See more

    Declaration

    Swift

    final class PresetsTableViewManager : NSObject
    extension PresetsTableViewManager: UITableViewDataSource
    extension PresetsTableViewManager: UITableViewDelegate
    extension PresetsTableViewManager: UISearchBarDelegate
  • View controller for the SoundFont / Patches UITableView combination. Much of the UITableView management is handled by specific *Manager classes. This controller mainly serves to manage the active Patch state, plus the switching between normal Patch table view display and Patch search results display. Apart from the adopted protocols, there is no API for this class.

    See more

    Declaration

    Swift

    public final class SoundFontsViewController : UIViewController
    extension SoundFontsViewController: UIDocumentPickerDelegate
    extension SoundFontsViewController: ControllerConfiguration
    extension SoundFontsViewController: FontsViewManager
    extension SoundFontsViewController: FontEditorActionGenerator
    extension SoundFontsViewController: SegueHandler
    extension SoundFontsViewController: FontEditorDelegate
  • Specialization of UITableViewCell that will display a SoundFont name, a Preset name, or a Tag name. Probably better would be to separate these into distinct classes, but this works for now.

    See more

    Declaration

    Swift

    public final class TableCell : UITableViewCell, ReusableView, NibLoadableView
  • Manages the table view that appears off of the preset editor. Allows full editing of the tags collection.

    See more

    Declaration

    Swift

    public final class TagsTableViewController : UITableViewController
    extension TagsTableViewController: UITextFieldDelegate
  • Top-level view controller for the application. It contains the Sampler which will emit sounds based on what keys are touched. It also starts the audio engine when the application becomes active, and stops it when the application goes to the background or stops being active.

    See more

    Declaration

    Swift

    public final class SoundFontsControlsController : UIViewController
    extension SoundFontsControlsController: ControllerConfiguration
    extension SoundFontsControlsController: SegueHandler
  • Undocumented

    See more

    Declaration

    Swift

    @objc
    public final class TuningComponent : NSObject
    extension TuningComponent: UITextFieldDelegate
  • Undocumented

    See more

    Declaration

    Swift

    final class ChangesPageViewController : TutorialPageViewController
  • Undocumented

    See more

    Declaration

    Swift

    class DonePageViewController : TutorialPageViewController
  • Undocumented

    See more

    Declaration

    Swift

    class PresetsPageViewController : TutorialPageViewController
  • Undocumented

    See more

    Declaration

    Swift

    public final class TutorialContentPagerViewController : UIPageViewController
    extension TutorialContentPagerViewController: UIPageViewControllerDataSource
  • Undocumented

    See more

    Declaration

    Swift

    class TutorialPageViewController : UIViewController
  • Undocumented

    See more

    Declaration

    Swift

    public final class TutorialViewController : UIViewController
  • Show a vertical blue gradient band to indicate the active item in a list.

    See more

    Declaration

    Swift

    public class ActiveIndicatorView : UIView
  • Custom UIView that draws an arrow between an entry and an exit point on the border of the view.

    See more

    Declaration

    Swift

    open class ArrowView : UIView
  • Manages when to ask the user for an app review. Relies on SKStoreReviewController.requestReview to do the actual review prompt, but makes sure that the interval between asks is reasonable and within App Store policy.

    See more

    Declaration

    Swift

    public final class AskForReview : NSObject
  • Template class that manages an association between two objects using Objective-C API.

    See more

    Declaration

    Swift

    public final class AssociatedObject<T>
  • Derivation of TypedNotification that remembers the last post value and will use that for any register calls that happen after the post call.

    See more

    Declaration

    Swift

    open class CachedValueTypedNotification<A> : TypedNotification<A>
  • Foo

    Undocumented

    See more

    Declaration

    Swift

    final public class Foo : Codable
  • Custom UIControl that depicts a value as a point on a circle. Changing the value is done by touching on the control and moving up to increase and down to decrease the current value. While touching, moving away from the control in either direction will increase the resolution of the touch changes, causing the value to change more slowly as vertical distance changes. Pretty much works like UISlider but with the travel path as an arc.

    Visual representation of the knob is done via CoreAnimation components, namely CAShapeLayer and UIBezierPath. The diameter of the arc of the knob is defined by the min(width, height) of the view’s frame. The start and end of the arc is controlled by the startAngle and endAngle settings.

    See more

    Declaration

    Swift

    open class Knob : UIControl
  • Container to place SettingKey definitions (as class members)

    See more

    Declaration

    Swift

    public class SettingKeys
  • Template class that supports get/set operations for the template type. Using class here instead of struct due to the lazy initialization of the defaultValue at runtime.

    See more

    Declaration

    Swift

    public class SettingKey<ValueType> : SettingKeys where ValueType : SettingGettable, ValueType : SettingSettable
  • Manage subscriptions to event notifications. Events can be anything but are usually defined as an enum.

    See more

    Declaration

    Swift

    public class SubscriptionManager<Event>
  • Monitors the iOS keyboard appearance and manipulates a given UIScrollView to keep the content in view when the keyboard appears. Contains a slot viewToKeepVisible which when set to a UIView will cause the monitor to scroll so that the view is visible.

    See more

    Declaration

    Swift

    final public class TextFieldKeyboardMonitor
  • Typed notification definition. Template argument defines the type of a value that will be transmitted in the notification userInfo[“value”] slot. This value will be available to blocks registered to receive it

    See more

    Declaration

    Swift

    open class TypedNotification<A>
  • Manager of a TypedNotification registration. When the instance is no longer being held, it will automatically unregister the internal observer from future notification events.

    See more

    Declaration

    Swift

    public class NotificationObserver
  • Instances know how to slide themselves around horizontally.

    See more

    Declaration

    Swift

    public final class ViewSlider : CustomStringConvertible
  • Delegate for the SoundFonts app.

    See more

    Declaration

    Swift

    @UIApplicationMain
    final class AppDelegate : UIResponder, UIApplicationDelegate
  • Manages a HUD view to show a short bit of text as an overlay on top of the existing application view.

    See more

    Declaration

    Swift

    final class InfoHUD : NSObject
  • Connects to any and all MIDI sources, processing all messages it sees. There really is no API right now. Just create an instance and set the controller (aka delegate) to receive the incoming MIDI traffic.

    See more

    Declaration

    Swift

    final class MIDI
  • Top-level view controller for the application. It contains the Sampler which will emit sounds based on what keys are touched. It also starts the audio engine when the application becomes active, and stops it when the application goes to the background or stops being active.

    See more

    Declaration

    Swift

    final class MainViewController : UIViewController
    extension MainViewController: ControllerConfiguration
  • Monitor volume setting on device and the “silence” or “mute” switch. When there is no apparent audio output, update the Keyboard and NotePlayer instances so that they can show an indication to the user.

    See more

    Declaration

    Swift

    final class VolumeMonitor