Orecchiette Documentation

Orecchiette is an app dedicated mainly towards recording voice data. This data can be retrieved from the phone's built-in microphone, the microphone attached to the pluggable ear-phones, or from a Bluetooth headset. Orecchiette can also record audio streams being sent to the phone's output devices (again, either built-in or Bluetooth). By recording both streams in tandem, Orecchiette can be used to record phone calls.

A more recent addition to Orecchiette has been the ability to record video data. This data can come from the front or back camera, or be copied from the phone's display screen.

Warnings!

The process of compressing and encoding audio data can be CPU-intensive. Depending on the encoding method chosen, Orecchiette may require up to 50% or more of the CPU's time. As such, it may be best to avoid running other CPU-intensive programs when recording important audio. Similarly, it may be best to avoid using Orecchiette when the phone needs to concentrate on a more important task.

Also, recorded audio data can consume a great deal of storage space. To simplify managing audio files (and extend the life of your phone's internal storage system), it might be a good idea to install an external memory card, and enter its path into the Preferences window.

Finally, there are laws that restrict how phone calls can be recorded. In many localities, it is sufficient for "one party" of a conversation to consent to being recorded; thus, you may record your own calls without restriction. But some places require all parties of a conversation to consent to having the call recorded. In any case, it is considered "best practice" to announce at the beginning of any conversation if it is going to be recorded. Please check your local communications laws before recording phone calls.

How to use Orecchiette

At the top of the main screen, there are two "combo boxes": one for Audio source information, and one for Video source information. For the Audio choices, there are "Microphone" for recording input, "Speaker" for recording output, and "Mic and Speaker" to record both (which is the appropriate choice for recording phone calls). For Video, the choices are "Screen" to record what is being displayed on the phone's screen, "Rear Camera" to record from the rear camera, and "Front Camera" to record from the front camera. (Please note that, as of this writing, the video recording options are still under development.)

Each drop-down box also has the option "None", so that you can record audio without video, or video without audio.

If an external audio device (headphones or BlueTooth) is connected, it will automatically be used as an input and/or output instead of the built-in microphone and/or speaker.

Orecchiette will save the current audio and video source selection on exit and automatically select the same source the next time it is started up. This feature is of particular importance in conjunction with the "Start recording on start-up" option described further down this document.

To start recording, simply click the Record button in the center of the screen. Please note that recording may not begin immediately! Depending on the amount of setup required for the audio stream, it may take a few seconds before it is ready to record. The icon on the Record button will turn red once recording has started, and the Status message directly above the Record button will describe the current status of the app.

To stop recording, just press the Stop button, or press the Record button for a second time.

Recorded audio can be played back using the controls at the bottom of the screen. When you press the Play button, a file selection dialog will be presented to you. You can use the phone's volume rocker switch to raise or lower the volume during the playback.

The Pause button will allow you to pause Orecchiette both during a recording or a playback. Similarly, the Stop button will stop either a recording or a playback. The status message above the Record button should provide some feedback to what state Orecchiette is currently in. Again, please note that Orecchiette may not respond instantly to these commands; it may take time for the audio subsystem to halt or restart the process of managing the data streams.

Preferences

Orecchiette can be customized in a variety of ways, via the Preferences window. To open this window, tap the pull-down menu at the top of the screen, and select Preferences.

The first option is Audio Encoding. Currently only "AAC" and "WAV" audio formats are supported. Work is underway to add other formats, such as "SPX" and "FLAC".

The second option is Save Folder. This is the default location where recordings will be stored. As noted previously, it might be a good idea to store recordings on a removable card, rather than using the phone's internal storage.

The third option is File Name Format. By default, Orecchiette will use the string "Recording_", followed by the current number of recording. This can be changed pressing the Edit Format String button, which will open a new dialog where you can type your own format. Orecchiette accepts a subset of the format specifiers familiar from the Unix "date" command: %a, %d, %m, %M and so on, plus it defines a few of its own, for example %o for the recording number. For a full list of all supported format specifiers including the explanations, press the small %% button to the right of the edit box to bring up a drop-down list. Selecting an item from this list will insert the specifier at the current cursor position in the edit box. The Validate button resolves the format and Save saves it, so the next recording will be created using this name. Please note that the Validate button resolves the format using the current date and time, the actual file name may be different.

The fourth option is Max Number of Files. Orecchiette will automatically delete older files before a new file is created to keep the number within this limit. The default limit is 20; this means that after 20 recordings, Orecchiette will delete the oldest file to make room for a new recording. You can choose to increase or decrease this limit to anywhere between 1 and 99, or remove the limit entirely by ticking No Limit to Number of Recordings.

Please note that the way this works is that Orecchiette keeps a list of used file names, including full paths, so old files are deleted even when the Save Folder has changed. When a file is deleted, it is also removed from the list. A file is deleted just before a new file is created. In other words, the file will be deleted even if creating a new file fails. Conversely, if deleting the old file fails (for example because it is locked by another application), it will not be deleted but it will still be removed from the list and will not be attempted to delete again. Also, selecting No Limit to Number of Recordings stops files from being deleted, but the list is still being maintained, to the length specified by Max Number of Files. That means that Orecchiette may leave some files behind if Max Number of Files or No Limit to Number of Recordings changes.

The next option is Start Recording on Start-up. As the name suggests, when ticked, it will behave on the next start of Orecchiette as if the user pressed the Record buttom immediately after the start. Note that just like when starting the recording manually, it may take a few seconds before the audio subsystem is set up and the actual recording starts. The audio source used for the recording on start-up will be the one selected at the time Orecchiette was last closed.

Next is the option to Record Phone Calls. If you mark this checkbox, Orecchiette will automatically begin recording all phone calls (both incoming and outgoing). However, it will only do so for as long as the app itself is running; thus, you will need to keep Orecchiette open continuously if you want to record all incoming phone calls.

Next are several parameters available to tweak when encoding audio in the AAC format. However, unless you are already familiar with how these parameters work, it is probably best not to modify them.

Notes on design

Orecchiette was initially designed as a re-write of the N900 widget "Recaller". (My thanks to talk.maemo.org member Estel for pressing me to attempt this!) Although it started out following the original code, a lot was dropped in the conversion from a Python widget to a C++ app, and a lot more was dropped as I learned the details of GStreamer. At this point, I'd have to say that the only real similarity between the two programs is that they both record audio...

What's up with the name of this app?

Lately, I've been naming my personal coding projects after various forms of pasta. In Italian, "orecchiette" means "little ear", or so I'm told, which seemed appropriate for the function of this app.

Please send any questions or comments to: jpietrzak8@gmail.com