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 moreDeclaration
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 moreDeclaration
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
See moreestablishConnections
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.Declaration
Swift
public final class Components<T: UIViewController>: SubscriptionManager<ComponentContainerEvent>, ComponentContainer where T: ControllerConfiguration
-
Undocumented
See moreDeclaration
Swift
public final class BackgroundManagedObjectContext
-
Undocumented
See moreDeclaration
Swift
open class CoreDataStack<T> where T : NSPersistentContainer
-
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 moreDeclaration
Swift
open class PersistentContainer : NSPersistentContainer
-
Undocumented
See moreDeclaration
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 moreDeclaration
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 moreDeclaration
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 moreDeclaration
Swift
public final class LegacyTag : Codable
extension LegacyTag: Equatable
extension LegacyTag: CustomStringConvertible
-
Specialization of
See moreUICollectionViewCell
that knows how to render Favorite attributes.Declaration
Swift
final class FavoriteCell : UICollectionViewCell, ReusableView, NibLoadableView
-
Provides an editing facility for presets and favorites instances.
See moreDeclaration
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 moreDeclaration
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 moreDeclaration
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 moreDeclaration
Swift
public class LegacyFavorite : Codable
extension LegacyFavorite: Equatable
extension LegacyFavorite: CustomStringConvertible
-
Collection of Favorite instances created by the user.
See moreDeclaration
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 moreDeclaration
Swift
final class LegacyFavoritesManager : SubscriptionManager<FavoritesEvent>
extension LegacyFavoritesManager: Favorites
-
Undocumented
See moreDeclaration
Swift
public final class GuideViewController : UIViewController
extension GuideViewController: ControllerConfiguration
-
Undocumented
See moreDeclaration
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 moreDeclaration
Swift
public final class InfoBarController : UIViewController
extension InfoBarController: ControllerConfiguration
extension InfoBarController: InfoBar
extension InfoBarController: SegueHandler
-
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 moreDeclaration
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 moreDeclaration
Swift
final class KeyboardController : UIViewController
extension KeyboardController: ControllerConfiguration
extension KeyboardController: Keyboard
-
Undocumented
See moreDeclaration
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 moreDeclaration
Swift
public final class Bookmark : Codable
extension Bookmark: Hashable
-
Undocumented
See moreDeclaration
Swift
internal class ConfigFile<T> : UIDocument where T : ConfigFileManager
-
Holds reference to ConsolidatedConfigFile and monitors it for changes to its
See morerestored
attribute. When it changes to true, calls the closure which was given during construction.Declaration
Swift
public final class ConfigFileObserver
-
Undocumented
See moreDeclaration
Swift
public final class ConsolidatedConfigFile : UIDocument
-
Delay audio effect by way of Apple’s AVAudioUnitDelay component.
See moreDeclaration
Swift
public final class DelayEffect : NSObject
-
Representation of a patch in a sound font.
See moreDeclaration
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 moreDeclaration
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 moreDeclaration
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 moreDeclaration
Swift
public final class LegacySoundFontsManager : SubscriptionManager<SoundFontsEvent>
extension LegacySoundFontsManager: SoundFonts
-
Undocumented
See moreDeclaration
-
Undocumented
See moreDeclaration
Swift
final class PresetChangeManager
-
Reverberation audio effect by way of Apple’s AVAudioUnitReverb component.
See moreDeclaration
Swift
public final class ReverbEffect : NSObject
-
This class encapsulates Apple’s AVAudioUnitSampler in order to load MIDI sound bank.
See moreDeclaration
Swift
public final class Sampler : SubscriptionManager<SamplerEvent>
-
Collection of Tag instances.
See moreDeclaration
Swift
public final class LegacyTagCollection : Codable
extension LegacyTagCollection: CustomStringConvertible
-
Manager for the tag collection.
See moreDeclaration
Swift
final class LegacyTagsManager : SubscriptionManager<TagsEvent>
extension LegacyTagsManager: Tags
-
Undocumented
See moreDeclaration
Swift
public final class SelectedSoundFontManager : SubscriptionManager<SelectedSoundFontEvent>
-
Manages window showing various runtime settings and options.
See moreDeclaration
Swift
public final class SettingsViewController : UIViewController
extension SettingsViewController: MFMailComposeViewControllerDelegate
-
Tracks and manages the active tag.
See moreDeclaration
Swift
final class ActiveTagManager : NSObject
extension ActiveTagManager: UITableViewDataSource
extension ActiveTagManager: UITableViewDelegate
-
Provides an editing facility for SoundFont meta-data and tags.
See moreDeclaration
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 moreDeclaration
Swift
final class FontsTableViewManager : NSObject
extension FontsTableViewManager: UITableViewDataSource
extension FontsTableViewManager: UITableViewDelegate
-
View controller for the UITableView showing the presets of a sound font
See moreDeclaration
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
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 moreDeclaration
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 moreDeclaration
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 moreDeclaration
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 moreDeclaration
Swift
public final class SoundFontsControlsController : UIViewController
extension SoundFontsControlsController: ControllerConfiguration
extension SoundFontsControlsController: SegueHandler
-
Undocumented
See moreDeclaration
Swift
@objc public final class TuningComponent : NSObject
extension TuningComponent: UITextFieldDelegate
-
Undocumented
See moreDeclaration
Swift
final class ChangesPageViewController : TutorialPageViewController
-
Undocumented
See moreDeclaration
Swift
class DonePageViewController : TutorialPageViewController
-
Undocumented
See moreDeclaration
Swift
class PresetsPageViewController : TutorialPageViewController
-
Undocumented
See moreDeclaration
Swift
public final class TutorialContentPagerViewController : UIPageViewController
extension TutorialContentPagerViewController: UIPageViewControllerDataSource
-
Undocumented
See moreDeclaration
Swift
class TutorialPageViewController : UIViewController
-
Undocumented
See moreDeclaration
Swift
public final class TutorialViewController : UIViewController
-
Show a vertical blue gradient band to indicate the active item in a list.
See moreDeclaration
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 moreDeclaration
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 moreDeclaration
Swift
public final class AskForReview : NSObject
-
Template class that manages an association between two objects using Objective-C API.
See moreDeclaration
Swift
public final class AssociatedObject<T>
-
Derivation of TypedNotification that remembers the last
See morepost
value and will use that for anyregister
calls that happen after thepost
call.Declaration
Swift
open class CachedValueTypedNotification<A> : TypedNotification<A>
-
Undocumented
See moreDeclaration
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
See morestartAngle
andendAngle
settings.Declaration
Swift
open class Knob : UIControl
-
Container to place SettingKey definitions (as class members)
See moreDeclaration
Swift
public class SettingKeys
-
Template class that supports get/set operations for the template type. Using
See moreclass
here instead ofstruct
due to the lazy initialization of the defaultValue at runtime.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 moreDeclaration
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
See moreviewToKeepVisible
which when set to a UIView will cause the monitor to scroll so that the view is visible.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 moreDeclaration
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 moreDeclaration
Swift
public class NotificationObserver
-
Instances know how to slide themselves around horizontally.
See moreDeclaration
Swift
public final class ViewSlider : CustomStringConvertible
-
Delegate for the SoundFonts app.
See moreDeclaration
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 moreDeclaration
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 moreDeclaration
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 moreDeclaration
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 moreDeclaration
Swift
final class VolumeMonitor