Xojo Apps in the Mac App Store

Almost all Appersian apps are made by Xojo, http://appersian.net/osx.html

I just got my app, GlucoAide, accepted. GlucoAide is an Macintosh designed specifically for people with diabetes. GlucoAide users can track and graph their blood glucose tests as well as track their weight on a day by day basis.
https://itunes.apple.com/ca/app/glucoaide/id676214506?mt=12

AppPrep https://itunes.apple.com/us/app/appprep/id445131099?mt=12
HueGo! https://itunes.apple.com/us/app/huego/id468962445?mt=12
HueGo Lite https://itunes.apple.com/us/app/huego-lite/id468963923?mt=12
JPEG4Web https://itunes.apple.com/us/app/jpeg4web/id441196052?mt=12
TopHat Apps Menu https://itunes.apple.com/us/app/tophat-apps-menu/id479907696?mt=12
TopHat App Menu Lite https://itunes.apple.com/us/app/tophat-app-menu-lite/id490463978?mt=12
TopHat Folders Menu https://itunes.apple.com/us/app/tophat-folders-menu/id479904894?mt=12
TopHat Folders Menu Lite https://itunes.apple.com/us/app/tophat-folders-menu-lite/id490464175?mt=12
SimpleKeys https://itunes.apple.com/us/app/simplekeys/id440466876?mt=12
SimpleKeys is in maintenance only mode as it can’t be sandboxed :frowning:

FormalAddress https://itunes.apple.com/us/app/formaladdress/id493666322?mt=12
FormalAddressPro https://itunes.apple.com/us/app/formaladdresspro/id494707619?mt=12

I’ve just released iRehearse Plus on the App Store. A musicians’ phrase trainer that allows you to slow down, pitch shift etc.

iRehearse Plus: https://itunes.apple.com/gb/app/irehearse-plus/id668393352?mt=12

I’ve released ver 1.1 on my website, but Apple are dragging their feet over updating the App Store. Hopefully be there in a few days. 1.1 is a significant update with a detailed view allow to zoom waveforms etc. http://rjvmedia.co.uk/irehearse-plus

Indeed it does!

Find Any File

iClip

I forgot to add “Document Icon Maker”.
https://itunes.apple.com/gb/app/document-icon-maker/id681701295?mt=12

This is very nice and impressive. I’ve been looking for options for recording audio and showing waveforms from Xojo for a while.

Without unveiling any secrets, could you sort of outline how you did them here? Is it 100% your code or you’re levearing plugins/declares/third party? I see a bunch of MBS plugins but they don’t do this, that I know of. You also don’t launch a helper when generating the waveform so it’s all being done in-app.

BTW, iClip actively supports RealStudio / Xojo: If you copy a project item such as a Class or a Build Automation item, iClip shows you its name so you can sort them out nicely. No other clipboard manager does that, and believe me, it comes in handy :slight_smile:

I did a lot of audio work in a past software life years ago. If you want to ‘roll your own’ display, it goes like this:

You need to get to ‘PCM’ audio, the kind of data that is in an uncompressed file. If you don’t have uncompressed audio then you can put what you have through a converter, you would need to look at the audio framework on the target platform for functions that take audio in some format and convert to PCM.

So now having PCM you need some information about its layout, for example a stereo 16bit audio file’s data would usually be interleaved left and right samples, as long as the byte ordering is correct you could consider a block of audio as an array of 16bit integers (memoryblock). If the audio is sampled at say 44.1 kHz and you read 44100 x 16bit x 2 channels worth then you would have an array of 1 second of audio, the first two bytes are the first sample (amplitude) from the left channel, the next two bytes are the first sample from the right channel and so on…

The audio waveforms that are often displayed in editing software are just simple plots with a few variations on how and what is plotted. Some display the left and right channel as separate graphs, others take the max, min or average and display a single graph, some plot the left above and the right below the x axis, etc.

Taking the simple separate channels approach (works for mono and multi-track too) for a stereo file, the left plot is:

Sample 1 is samples[0] and is a number from -32767 to +32768
Sample 2 is samples[2] -"-
Sample 3 is samples[4] -"-

So if you plot lines up from the x axis it looks like:


Y+
|
| |
| | |   |
| | | | |
| | | | | |
=============== X+

Obviously you need to scale the sample value into what space you have available to graph. Often the display will just reflect the sample to the other side of the x axis.


Y+
|
| |
| | |   |
| | | | |
| | | | | |
=============== X+
| | | | | |
| | | | |
| | |   |
| |
|

You can also just plot from point to point rather than up from the x axis.

The above holds for when you are viewing one sample = 1 pixel, when you zoom out you then need to take either the actual value every n samples or a min, max or average of a the samples in between.

If you were writing something that needed to be quick/commercial then you may consider saving the sub sampled plots for various zoom factors either when generated or in advance when the file is initially loaded. If you did need to convert compressed audio into PCM then it could be advantageous to either save the whole converted audio or a subsampled version to avoid having to repeat the un-compression every time that the file is loaded.

Getting those VU displays is just a case of looking at the amplitude of the audio at a period in time (again perhaps a max or average over a block of samples) and turning it into a

Editing the audio and the audio files is another subject and gets more complicated if the audio is compressed.

Hope this helps or gets someone thinking :slight_smile:

Shine 1.1 was approved by Apple today. https://itunes.apple.com/gb/app/shine-enlighten-photos-hyper/id504464061?mt=12
The big feature is the performance increase, nearly twice as fast rendering, which in turn uses a third less memory and has enabled our testers to now process images in the hundreds of megapixels range!

[quote=30477:@Eduardo Gutierrez de Oliveira]This is very nice and impressive. I’ve been looking for options for recording audio and showing waveforms from Xojo for a while.

Without unveiling any secrets, could you sort of outline how you did them here? Is it 100% your code or you’re levearing plugins/declares/third party? I see a bunch of MBS plugins but they don’t do this, that I know of. You also don’t launch a helper when generating the waveform so it’s all being done in-app.[/quote]

Hi Eduardo,

Sorry for the late reply, haven’t checked in in a while.

I did originally write 100% Xojo code to create a waveform display. This code is still used in iRehearse, but for iRehearse Plus I use the MBS function RenderSamplesMBS which renders raw audio data to an image. It’s far quicker than my pure Xojo code. I set off the waveform generation in a thread when the audio file is opened and cache the result so it can be reloaded quickly next time the file is accessed. It works well, however on lower power machines it can cause a slight stutter when when the samples are rendered, so I’m considering moving waveform generation into a helper app. It’s not the end of the world as there is no stutter when loading from the cache, so it’s a one time thing, but I’d like it to be perfect.

My next challenge is to work out note detection. I want to get iRehearse Plus to be able to guess chords/notes in a selected area of the waveform. I’ve been researching and it appears to require some FFT calculations (MBS to the rescue again I think!). Anyone have any experience with analysing raw audio data like this? It would be nice to be able to create a spectrum analysis of a section of audio if possible.

I have some apps in the AppStore:

AcanaABCopy -
AcanaPasswordGenerator -
AcanaKeyCode -
CleanMedia -
FavoriteApps -
iTAN -
ListAllFiles -
My Travel World -
SecureMailToConverter -
WarrantyManager -
Worldwide ZIP Code Finder -

System-i Email Extractor https://itunes.apple.com/it/app/system-i-email-extractor/id464820762?mt=12
System-i DB Compare https://itunes.apple.com/it/app/system-i-dbcompare/id515304777?mt=12

and other two for Italian App Store only

Taxxit https://itunes.apple.com/it/app/taxxit/id551978763?mt=12
Gest-L https://itunes.apple.com/it/app/gest-l/id596000792?mt=12

Carl is correct. Dave, your other topic on this is sufficient. Please do not sidetrack this topic.

[quote=24147:@David Fultz]FormalAddress https://itunes.apple.com/us/app/formaladdress/id493666322?mt=12
FormalAddressPro https://itunes.apple.com/us/app/formaladdresspro/id494707619?mt=12[/quote]

David,

Thats kind of cool, curious. Did you use an API to formalize the addresses? I have an order management tool and
I’m always taxed by my customers to format addresses better…

Gary

Aeon Timer
https://itunes.apple.com/us/app/aeon-timer/id723330958?l=sv&ls=1&mt=12

https://itunes.apple.com/us/app/calligraphic-fonts/id721623019?mt=12

Apart from Calligraphic fonts, I did several other fonts stuff with the same program, including school fonts.

We have two Xojo apps in the Mac App Store:

Studiometry Express: https://itunes.apple.com/us/app/studiometry-express/id501825022?mt=12
Accounted: https://itunes.apple.com/us/app/accounted/id445463903?mt=12