polaron.de Apps Overview Napo / Virtual Organ Apps



What is Rooms! ? The iOS AU reverb Impulse response handling
System requirements The Convolution reverb How to import .zip files
Using the app The Settings view Plans for upcoming releases
The Recorder view Audiobus and IAA Known deficiencies
The Audio Files view Background operation
This text describes the outdated version Rooms! 3.50. The manual for the current version is available here. The manual for version 2.3 is still available here.
Shortcuts for installing prepared IR sets

If you are viewing this support page on your device and have Rooms! installed, then you can download and install the following prepared impulse response sets simply by tapping the links. Depending on your network connection, this may take some time. Mind the file sizes if you are on a cellular network.

van Saane http:/polaron.de/Rooms/van Saane.irset 8.2 MB
Voxengo 1 http:/polaron.de/Rooms/Voxengo 1.irset 1.8 MB
Voxengo 2 http:/polaron.de/Rooms/Voxengo 2.irset 1.9 MB
Voxengo 3 http:/polaron.de/Rooms/Voxengo 3.irset 1.6 MB
Voxengo 4 http:/polaron.de/Rooms/Voxengo 4.irset 1.8 MB

What is Rooms! ?

Rooms! is a free iOS application for adding reverb to audio files and to audio streams (Audiobus 1 and Inter-App Audio). Audio files can be uploaded to the app via iTunes File Sharing or by Document Interaction. Uploaded files, and files created by the app, can be shared by iTunes File Sharing, by Document Interaction or by e-mail. Two types of reverb are supported: Algorithmic reverb created by an iOS Audio Unit, where you can control all parameters of the reverb effect unit, and convolution reverb. Rooms! has a built-in audio recorder which allows you to save WAV files with various sample rates and bit depths and later add reverb to these files. Using playthrough, you can in realtime add reverb to the sound captured by the microphone or from an external sound source.

Possible applications:

For a perfect experience, earphones / headphones or external speakers are recommended. For the playthrough functionality with microphone input, earphones / headphones are mandatory, otherwise a feedback loop is formed.

Rooms! is free, but the convolution reverb of the free version is restricted to the integrated demo impulse responses. You can use other impulse responses (stereo sound files up to a length of 15 seconds) only after in-app purchasing the item "Convolution Reverb".

System requirements

Rooms! runs on all iOS devices (iPhone, iPod touch, iPad) with iOS versions ≥ 5.1.1.

With version 3.0, Rooms! was adapted to iOS 7, and Jack support was dropped, as Jack does not work with iOS 7 and seems to have no future. Do not update if you use Rooms! 2.3 on iOS 5 or iOS 6 and would like to continue to use Jack. The support page of Rooms! 2.3 is still available here.

For using convolution reverb in realtime, at least an iPad 4 or iPhone 5 is recommended. Impulse responses that are too long will lead to reduced sound quality or even to stuttering or missing sound.

Localizations

Rooms! supports the following languages:

Using the app

Rooms! is built of five main views, each of which can be selected by the tab bar at the bottom of the screen. The icons, by the way, are elements of Jan Kovařík's GLYPHICONS library:

The views and their usage shall now be explained in more detail.

The Recorder view

This view is displayed after a cold-start of the app. It has a single button, named Start, which serves for starting a recording, and buttons to select the sample rate, the bit depth and the channel mode for the recording:

The supported sample rates are 8, 16, 22.05, 44.1, 48 and 96 kHz. However, this does not mean that the audio will be captured in the requested quality, in particular if you are using the device's internal microphone. Furthermore, the capture sample rate will probably be not higher than the current hardware sample rate of the device, which you can see at the bottom of the Settings view. If you select 48 kHz or 96 kHz, but the hardware sample rate is 44.1 kHz, then the audio data of the file will just be upsampled from 44.1 kHz or whatever the microphone or sound source deliver. Whenever the recording sample rate and the current hardware sample rate differ, the app displays a warning at the top of the Recorder view, because this means an additional resampling process that can reduce the quality of the sound data.

The bit depths are 8, 16 and 24 bit for integer and 32 bit for floating point uncompressed WAV files. The channel mode is Mono or Stereo. Again, selecting Stereo does not give a true stereo file if your microphone or sound source delivers a mono signal. You will just get a file with two identical channels. Only if you connect a stereo microphone or stereo sound source, you will get a real stereo file.

The setting 44100 Hz / 16 bit gives a frequency range and dynamics that comfortably exceed what your ears can perceive and hence is fine for recording music. A lower sample rate means that you loose high frequencies. With a lower bit resolution you can still record the same frequency range, but it gives a lower signal / noise ratio. For voice messages, 8000 Hz / 8 bit / Mono are good enough and result in smaller files. Use 44100 Hz / 24 or 32 bit for recording sound that you intend to postprocess or use as an impulse response (see later).

You have to select the sample rate and the bit depth before you start the recording. As soon as you tap the Start button, the recording begins and the view displays the buttons Pause, Cancel and Finish. While the recording is performed, you can observe the number of elapsed seconds. To signal that a recording is in progress, the label of the Recorder tab gets a red color. By tapping the dashboard icon, you can activate a peak meter, which is displayed at the left side of the view:

The usage of the buttons Pause, Cancel and Finish is obvious. Only after you press the Finish button, the recording will be saved to the documents directory. Then the app switches to the Audio Files view and automatically selects the new recording. The recording's name is built from the current date. Of course you can change the name, see below.

Because of an iOS bug, it is not possible to pause and resume a recording in case of an incoming phone call. To ensure you don't loose any data, in this situation the recording is being finished and saved.

The Audio Files view

The Audio Files view shows a list of all audio files in the app's documents directory, whether they were created by the app's audio recorder, uploaded by iTunes File Sharing, imported from the media library, or handed to the app by Document Interaction.

When you select a file, you get play controls at the top of the view. The slider shows the playing position and can be moved to jump to a different position. You can also long-tap the time display and enter the number of seconds. The slider at the bottom of the view is for volume control. Tapping the speaker images turns the volume off or to maximum, respectively. During playback, the label in the tab bar gets a red color:

Normally, when you select a file in the list, reverb will be added when you play this file, but you can deactivate the reverb after changing to the Parameters view. Only when you select a file whose name has the suffix "+ Reverb", the app will deactivate the reverb automatically. Deactivated reverb is indicated by "-" as the icon of the Parameters view:

The behaviour is this way because the suffix "+ Reverb" is appended by the Copy with reverb function, which shall be described shortly. However, if you would like to add a second layer of reverb, you can, after selecting the file, still reactivate the reverb in the Parameters view.

By long-tapping an audio file you get an action menu with the following options:

Furthermore there is an action button at the bottom left of the view, which opens a menu with the following options:

The Parameters view

In this view you can select the reverb type:

The available settings are:

In any case there is a microphone button in the top left of the Parameters view. This button activates the playthrough mode, i.e. audio in (microphone or external sound source) is directly routed to audio out, but with added reverb if you select "iOS AU" or "Convolution". While playthrough is active, the microphone gets a red color, and so does the Parameters label in the tab bar:

When using microphone input, activate playthrough only with earphones or headphones, because otherwise you create a feedback loop and get ugly high-pitched noise. We are not liable for damage done to your ears or speakers.

The iOS AU reverb

This is an algorithmic reverb created by an iOS Audio Unit. There are seven sliders to control the reverb:

You can operate the sliders while a file is playing in the Audio Files view or while playthrough is active, and the change will take effect immediately. If you would like to enter a specific numeric value, you can do this after long-tapping a parameter name. If you discover a parameter combination that you would like to remember, then you can save it as a user preset by tapping the Save... button. When there are iOS AU user presets, the view offers the button User Presets... to load the parameters of a user preset. There is also a button Factory Presets... to load any one of the five factory presets:

The Convolution reverb

This is real convolution reverb, not just a half-hearted mix of early reflections and algorithmic reverb. You are presented a list of available impulse responses. The free version of Rooms! allows you only to use the included demo impulse responses which you can access after selecting the Create Demo IR set entry of the action menu. To select an impulse response (IR), simply tap its name. The selected IR is marked by a checkmark. If you tap the selected IR again, it gets deselected.

Impulse responses are organised in impulse response sets. The IRs of the free app are subsumed in the IR set "Demo". These are four IRs of Fokke van Saane (see below) which allow you to test the suitability of your device to act as a cabinet simulator {short IRs, short audio buffer sizes for low latency), and four IRs of simple geometric rooms whose purpose is to let you check your device's capability to create reverb (long impulse responses, longer audio buffer sizes). When you purchase the convolution reverb, you can upload and use more interesting IRs.

The IRs of the Demo set are free. You are allowed to use them for any purpose, without any restrictions. If you would like to use one of these IRs outside of Rooms!, then copy the IR to the documents directory (there is a menu entry Copy to Audio Files in the action menu that you get after long-tapping an IR). In the Audio Files view, you can export the IR file by E-Mail or by Open in other App.... You can also download these files directly from polaron.de: Small Square.wav, Large Triangle.wav, Large Square.wav, Very Large Octogon.wav.

Technically, an IR set is just a subdirectory of the subdirectory ImpulseResponses of the app's Library directory. The IR set list view shows the names of these subdirectories and all sound files in the respective subdirectory and its nested subdirectories. This means you can also use a tool like iFunBox to copy whole directories of impulse responses from your computer to Rooms! and to manage your IR sets in a more comfortable way.

The "+" icon at the top right of the view is for creating a new, empty IR set. This and the options Copy to other IR set and Move to other IR set in the IR context menu (which you get after long pressing an IR entry) help when you have many impulse responses and would like to organise them in a certain way. The context menu also allows you to rename or delete an IR or copy it to the documents directory (so it can be seen in the Audio Files view).

Left to the name of each IR set there is an action button. Its action menu has options to show the description file, the comment file and the license file of the IR set (if these files exist), to rename the IR set, to delete the IR set, and to export it as an archive (see below).

If you have accidentally deleted an IR of the Demo set or the Demo set itself, don't worry: It will be reinstalled at the next cold-start of the app. When you have purchased the convolution reverb, you can download the Demo set (or maybe a newer version of it) from polaron.de, see below.

At the bottom of the view you can set the channel mode. Stereo means that the left audio channel is convolved with the left IR channel, and the right audio channel is convolved with the right IR channel. Mono Left convolves only the left audio channel with the left IR channel and outputs the result on both channels. Mono Right works accordingly. The mono modes need less processing time than the stereo mode, of course.

Convolution is a computationally rather expensive mathematical operation. The convolution engine of Rooms! works with FFT (Fast Fourier Transform), is fully parallelised (i.e. it uses all processor cores), and it employs vector operations to achieve the highest possible throughput. Offline reverberation (Create copy with reverb in the Audio Files view) is usable on all devices, but to be able to process juicy impulse responses in realtime (i.e. playing a file while adding reverb, using the playthrough function or using Rooms! as an Audiobus filter or IAA effect) you need the fastest available devices. On an iPad 4, in stereo convolution mode and with a buffer size of 1024 frames, IRs with a duration of up to about 10 seconds are possible in realtime and full quality.

Dropouts of the sound are a no-no. It is better to accept a downgraded reverb quality than to get stuttering sound or dropouts. Within an audio callback, Rooms! calculates only a small initial part of the convolution. This way the reverb does not add latency, but the callback can complete in time. The main part of the calculatiom is done concurrently. If Rooms! is not able to finish this work before the next audio callback, then the convolution operation will be terminated prematurely. This means a loss of reverb quality and is indicated by a yellow warning flag above the tab bar and tool bar, which is visible in all of the app's views:

Up to Rooms! 3.2, the app displayed the maximum audio callback duration. With Rooms! 3.3, the convolution algorithm was changed and does now always work concurrently. Hence the time display has lost its meaning and was replaced by the warning flag.

D/W is for Dry/Wet balance with 0% = dry signal and 100% = wet signal. After tapping, you get a slider to set the value. Tap Done to dismiss the slider:

Again, there is a Save... button in the bottom right of the view, which lets you create a preset from the currently selected IR.

Finally there is an action button in the bottom left of the view, which opens an action menu with the following entries:

Here you can select whether the IRs within an IR set are sorted by length, by name or by file date. To install the included demo impulse responses set, select Create Demo IR set. This does not need network access, and if you have deleted some or all of the files, you can install them again at any time.

When you have purchased the convolution reverb, you can also download IR sets from the internet. We have prepared IR sets with impulse responses of Fokke van Saane and of Voxengo so you can download and install them with a few taps. We would like to point out that we are not selling these impulse responses. They are available for free at http://fokkie.home.xs4all.nl/IR.htm and http://voxengo.com/impulses/, respectively. We only offer you a convenient way to install the IRs so you don't need to import them manually, file by file, via the Audio Files view. Starting with Rooms! 3.2, there is also the option to import IR set archives by document interaction, see below.

Fokke offers only some of his IRs in WAV format. We used Audacity to convert some of the others. For the case you would like to use the converted IRs with software other than Rooms!, we have prepared a zip package of the complete IR set here: http://polaron.de/Rooms/vanSaane_1.0.zip. Like Fokke's files, the converted files are freeware.

The impulse responses of Fokke van Saane are recordings captured with a microphone in real rooms, including funny setups like a vacuum cleaner tube or a bathtub. You can create IRs like this yourself, for example with the audio recorder of Rooms! and a good external mic (use Audacity or another sound editor to postprocess the files). The Voxengo IRs on the other hand were designed with Voxengo's Impulse Modeler software. Creating IRs by software has the advantage that you can model any room geometry, real rooms as well as rooms that exist only in your imagination, and you can simulate arbitrary positions of the sound source and of the listener. Besides that, other than microphone-captured IRs, modelled IRs are free of noise. The Demo IRs were created with the Voxengo Impulse Modeler, too.

When you select Download IR set in the action menu, you are asked for an HTTP address. The field is pre-filled with the address polaron.de/ImpulseResponses/. This is the place where we have prepared the above-named IR sets, and where you can also download the Demo set if you have deleted it from your device. Before you download a set you are offered to view the description file, the comment file and the license file of the set. When you select a Voxengo set, for example, the license file looks like this:

Maybe you create impulse responses yourself and would like to publish IR sets on the internet to let other people comfortably download your work into Rooms!. This is easy and explained below .

When you install many IR sets, the IR table can get quite long. The index at the right side helps to speed up the navigation. Just tap the name of an IR set to scroll to its impulse responses:

The User Presets view

This view is extremely simple. It is just an alphabetical list of the reverb presets that you have saved in the Parameters view. Simply tap an entry to load the preset. Long-tap to rename or delete, or swipe to delete.

The Settings view

In this view you can set some parameters that control the operation of the app:

Keep the value Sys for the preferred hardware sample rate and for the preferred IO buffer duration if you do not want to change the system's current settings. It is also better to keep the Sys values if you would like to use the app with Audiobus or Inter-App audio. For example, if you start Rooms! before Audiobus, set the preferred hardware sample rate to a value different from 44.1 kHz, start a file playback or activate playthrough in Rooms! and then start Audiobus, then Audiobus will fail to connect to Rooms!.

For the preferred IO buffer duration (in normal mode) resp. the Audiobus filter buffer size (in Audiobus mode) use 1024 or even 2048 or 4096 frames when latency is not an issue. A smaller value reduces the latency but means higher computational demand. The reverb quality will suffer (signalled by the warning flag), or the sound will even drop out, if your device is not fast enough.

At the bottom of the view you see the current hardware sample rate (in Hertz) and buffer size (in frames and in milliseconds). This sample rate and buffer size, usually 44100 Hz and 1024 frames, is used by iOS when it asks the app for audio data, hence for playing audio files and for the playthrough mode. Some apps, like Audiobus or GarageBand, change this to 512 or even 256 frames. Again, low buffer sizes can lead to stuttering sound, even if you don't actually use Rooms! with Audiobus or with GarageBand or other IAA-capable apps.

At the top of the view there is an action button. The action menu offers the options to display a short info about the app, to view the available in-app purchases, and to open the app support page in Safari.

Audiobus support

Rooms! can be used as an Audiobus filter to add reverb to audio streams. Following the Audiobus philosophy, the user does not need to configure anything inside Rooms! to enable this, but uses the Audiobus app in the well-known way to add Rooms! to a processing path. When Rooms! is operating as an Audiobus filter, its Audio Files view cannot be used for playback – you will get a warning if you try to. The same holds for the playthrough function. This is because Audiobus mutes the app's Remote I/O Audio Unit. All other functionality of Rooms! is available in this mode, though.

Be careful to respect the recommended way of starting Audiobus-enabled apps: First start the Audiobus app itself, then start other apps like Rooms!. Otherwise either the Audiobus app or the Audiobus library (and with it Rooms!) may crash.

It seems that some apps don't like to mix with other apps, even if they claim to be designed to work with Audiobus. If you start one of these apps, Rooms! will be suspended and hence cannot be used as a filter app in conjunction with the other app.

Inter-App Audio support

Starting with version 3.2, Rooms! has basic IAA support and can act as an IAA effect. In this mode, the IAA host's icon is displayed at the bottom left of the screen:

Tap this icon to change to the IAA host app.

IAA operation of Rooms!, at least with GarageBand as host, is currently rather disappointing when you are using convolution reverb. GarageBand insists on small buffer sizes (512 frames on iPad 2/3, and only 256 frames on iPad 4+), which means a high strain even for the most recent devices.

Background operation, access to microphone

Rooms! does normally deactivate its audio session when the app is sent to the background and in consequence gets suspended by iOS. There are however a number of situations where the audio session is kept active:

In any of these cases, Rooms! stays running in the background, which is signalled by a red status bar. This signal cannot be suppressed; it is a means of iOS to protect your privacy by pointing to the fact that an app with the audio session category AVAudioSessionCategoryPlayAndRecord is active in the background, which could potentially be recording the microphone input. The signal is given even if the app is not actually in recording state. The only way to get rid of the red status bar would be to change the category to AVAudioSessionCategoryPlayback, but unfortunately an iOS bug prevents this. You can read about this issue here and here. Rest assured that Rooms! does not capture microphone input unless you tap the Start button in the Recorder view. On iOS 7, you can use the device's privacy settings to prevent Rooms! from accessing the microphone (in the Settings app, go to Privacy – Microphone and deactivate the switch for Rooms!). In this state neither the audio recorder nor playthrough functionality can be used – you will get a warning when you tap Start in the Recorder view or tap the microphone icon in the Parameters view.

Avoid keeping Rooms! running in the background when you don't need this. This consumes processing power that might be missing for other apps, and of course it is a waste of battery energy.

Up to version 3.3, Rooms! stayed active in the background when it was disconnected from Audiobus. Rooms! 3.4 adopts the recommended policy: It stops audio processing and gets suspended in the background when it is disconnected from Audiobus.

Impulse response handling

There are various ways to transfer IRs and IR sets to or from your device.

One way is via the documents directory of Rooms!, the contents of which you see in the Audio Files view. Audio files can be transferred to the documents directory by iTunes File sharing or by document interaction. They can be exported from the documents directory in the same way. To use document interaction, long-tap on a file name and select Open in other app....

Next, you can copy audio files from the Audio Files view to the User IR set. You can either copy single files (long tap the file name and select Copy to impulse responses) or bulk-copy short files (action menu in the bottom left of the view). There is also the other way around: You can copy IR files from the Convolution tab of the Parameters view to the Audio Files view (long-tap the IR file name).

Handling single files is tedious. IR sets are nothing else than subdirectories of the subdirectory ImpulseResponses of the Library directory of Rooms!. So you can use a program like iFunBox to manage this directory structure manually.

Starting with version 3.2, Rooms! supports importing and exporting IR sets as zip archives. A zip archive must have the file extension .irset to get accepted by Rooms!. You can submit .irset files to Rooms! for example via e-mail attachments, via Dropbox or by clicking a link in a web page. If you are right now viewing this page with Safari on your iDevice, and Rooms! is installed on the device, then you can use the links at the shortcuts section to install the corresponding IR sets.

Furthermore, Rooms! can create .irset archives from its installed IR sets: Select Export Archive in the action menu of an IR set X. Then the files of the IR set will be zipped to an archive file named X.irset, which you can send as an e-mail attachment or Open In... another app. This includes transferring to apps like Dropbox as well as, with iOS 7 and suitable devices, sending the archive via Airdrop to an instance of Rooms! running on a nearby device.

Starting with version 3.4, Export Archive asks the user whether the archive file should get the file extension .irset or .zip. If your intention is not to import the archive in another instance of Rooms! but for some other purpose, then use .zip.

Even if you see just a flat list of impulse responses, an IR set that was imported from an archive can contain a hierarchy of subdirectories, and non just audio files, but other files as well. Starting with version 3.3, the export function creates an archive of the complete directory tree of an IR set.

Finally, a collection of IR sets can be offered on a web server for download by the app's Download IR set function (action menu in the bottom left of the Convolution tab of the Parameters view). This needs a description file ImpulseResponseSetList.txt and for each IR set a description file ImpulseResponseSetDescription.txt. The details are explained below. The advantage of this method is that the user can inspect the description file and, if present, the comment file and the license file, before downloading the IR set.

How to import .zip files

Suppose that every app that has some export / import functionality would support document interaction for the file type .zip. Then whenever you try to open a .zip file e.g. in an e-mail, you would be offered very many apps to choose from, most of which couldn't do anything with the respective data. Thus we decided to give IR set archives the file extension .irset and leave the handling of .zip to general sharing apps like Dropbox.

Hence, if you would like to install IR collections like Grant Nelson's 480L impulse response, you can download the .zip file to your main computer, change the file extension to .irset, send it to your iDevice by e-mail or a file sharing app, and then Open In Rooms!.

But what if you are working solely with your iDevice and don't want to use another computer? Assuming you have the Dropbox app installed (other sharing apps would work similarly), you can go the following way (explained with the 480L example):

IR set format for http download

In Rooms! versions before 3.2, http download file-by-file, as described in the following, was the only way to distribute IR sets. In fullfilment of user wishes, Rooms! 3.2 introduced the importing and exporting of IR set archives. As the archive distribution is easier, we are considering to drop support for the old method in later versions of Rooms!.

As another way to distribute impulse response sets, you can place the files in a directory on a web server. This directory, for example http://polaron.de/ImpulseResponses/, has to contain a text file named ImpulseResponseSetList.txt which lists the available IR sets. For example the file http://polaron.de/ImpulseResponses/ImpulseResponseSetList.txt looks like this:

Impulse Response Set:van Saane
Impulse Response Set:Voxengo 1
Impulse Response Set:Voxengo 2
Impulse Response Set:Voxengo 3
Impulse Response Set:Voxengo 4

For each IR set there has to be a subdirectory of the same name. For example http://polaron.de/ImpulseResponses/ has subdirectories Demo, van Saane, Voxengo 1, Voxengo 2, etc.

Each IR set subdirectory has to contain a text file named ImpulseResponseSetDescription.txt. To explain the format we again take an example. http://polaron.de/ImpulseResponses/Voxengo 1/ImpulseResponseSetDescription.txt looks like this:

Version:1.0
Date:2013-12-24
Comment:comment.txt
License:license.txt
Impulse Response:Five Columns Long.wav
Impulse Response:Five Columns.wav
Impulse Response:French 18th Century Salon.wav
Impulse Response:Going Home.wav
Impulse Response:In The Silo Revised.wav
Impulse Response:Narrow Bumpy Space.wav
Impulse Response:Nice Drum Room.wav
Impulse Response:Parking Garage.wav
Impulse Response:Rays.wav
Impulse Response:Trig Room.wav

The version and date information is currently not used by the app, but it can help the user to see if the offered IR set is newer than a version downloaded in the past.

The label Comment: (if present) defines the name of a comment file which gives some general information about the IR set. In the given example, we have created this file when we constructed the IR set from Voxengo's files.

The label License: (if present) defines the name of a license file which states the usage conditions of the IR set. In the given example, this is the original, unaltered license file of Voxengo.

The other entries define the names of the IR files. All listed files have to be within the IR set subdirectory. All text files are supposed to be UTF-8-encoded.

Plans for upcoming releases

Known deficiencies of the application

Rooms! 1.0 (2013-04-26):

Rooms! 1.1 (2013-05-10):

Rooms! 1.2 (2013-05-18):

Rooms! 2.0 (2013-05-31):

Rooms! 2.1 (2013-06-28):

Rooms! 2.2 (2013-09-17):

Rooms! 2.3 (2013-09-26):

Rooms! 3.0 (2014-01-06):

Rooms! 3.1 (2014-01-22):

Rooms! 3.2 (2014-02-17):

Rooms! 3.3 (2014-03-06):

Rooms! 3.4 (2014-03-28):

Rooms! 3.41 (2014-04-02):

Rooms! 3.50 (2014-08-20):