Home

Augmented Code is concentrating on writing beautiful applications and games on iOS and macOS with performance and elegance in mind.

Signal Path

Signal Path is a beautiful and swift spectrum viewing app. It makes easy to look through hours worth of data finding interesting signal peaks in long recordings (computing spectrums is backed by SIMD and GPU (Metal)). In addition Signal Path allows recording audio data through microphone and supports FIFO channels for importing complex signal data from any source.

Features

Control how spectrums are represented

Use FFT settings popover to change FFT lengths, window functions, data types, sample rates, center frequencies and frequency offsets.

Fast Fourier Transform lengths from 256 to 8192.

Window functions:

  • Blackman,
  • Hamming,
  • Hann,
  • rectangular.

signalpath fft settings

Record audio data

In addition to viewing recorded spectrums Signal Path supports recording audio data from a connected microphone.
Have fun discovering what is going on around you.

signalpath input

Compress and decompress data

Scale data by merging multiple spectrums into one or duplicate spectrums onto several lines enabling fine-grained look on the data.
Note: When merging multiple spectrums into one maximum spectrum points from the set are presented.

signalpath heat map

Automatic data type selection

Using a file name format _.iq Signal Path is able to automatically choose IQ data type when first time opening a file.
Example: “audiorecording_i16.iq”

Supported data format descriptions in file names:

  • f32
  • i8, int8
  • u8, uint8
  • i16, int16
  • u16, uint16
  • i32, int32
  • u32, uint32

Note: IQ data type selection is persistent and needs to be done only once.

FIFO channels for importing data

Signal Path supports FIFO channels for importing data from any source.
Create FIFO recording by using File->New FIFO Recording menu item.
File path to the channel can be conveniently copied using Edit->Copy FIFO Path menu item.
Easiest way of testing it out is by using Terminal command:
macOS 10.13: echo "$(cat /path/to/existing/file/containing/data)" > /path/to/fifo/channel
​macOS 10.12: cat /path/to/existing/file/containing/data > /path/to/fifo/channel

signalpath fifo

Give it a try

Try out Signal Path with this example file.
Download Example

Blog

Subscribe to RSS feed.

Injecting dependencies using environment values and keys in SwiftUI

Instead of initializing SwiftUI views with dependencies, SwiftUI also offers other ways for injecting dependencies. This time let’s take a look on EnvironmentKey which defines a key for inserting objects to environment and vise-versa. We need to create a EnvironmentKey, adding an object to environment and then getting the object in SwiftUI view. Creating EnvironmentKey …

Adding custom attribute to NSAttributedString on iOS

NSAttributedString is used for displaying rich text on Apple platforms. There are many attributes available for styling the text. Let’s see how to add new attribute and how to draw it in UITextView. Drawing custom attribute Defining a new attribute is just a matter of extending NSAttributedString.Key and defining a new static variable. Difficult part …

Persistent reusable container for item collections in Swift

Let’s build a container where we can store collections of items conforming to a protocol. All the collections are identified by a case in enum. For making the container reusable, we’ll use protocols as requirements on keys and items in collections. Moreover, the container should be archivable and unarchivable. Creating a reusable container Container’s implementation …