Is CoreMIDI supported by Juce on the iOS platform ?
I just checked the Juce Demo in the simulator and it does not receive any MIDI input.
Maybe I am missing though: Not working in the simulator without tricks but works on the device.
Working fine on the device. Juce Demo reports two devices: a network one and the one connected.
The only issue sems that if I enable both, it won’t receive any midi events. It works fine if I only activate the one connected.
Can’t compile MidiOutput because of missing AudioGetCurrentHostTime (or don’t know where to find it). Only thing missing.
For MidiInput, I’ve replaced only EndianS32_BtoN by a nop.
In fact when checking the two devices in the Juce Demo’s Audio Device setup, only the first one checked works.
So the physical and the network one works both but only the one that I have checked in first will work.
Does it ring a bells ?
Unfortunately this is quite hard to debug as I can’t have a physical keyboard plugged and connected to the computer for remote debugging as the same time.
took my first baby steps and got the Juce demo running on an ipad - wonderful!
but now I got stuck as well on the midi stuff I’m afraid - that is, midi devices don’t seem to show up yet in Juce
sooo, any chance of coremidi support coming to our beloved library in the near future?
Christmas before Christmas ! I followed the tips described in this thread. As I just needed one MIDI input, I could make it work with a few copy/paste.
This is really great ! For those who might be interested. I tested succesfully my App with an iRig MIDI on an iPhone 4 with a latency of 512 samples. I’ll make further test with iPad.
In the meantime I think I’ll start working from Pete Goodliffe’s bit
But as he says somewhere in his comments, to get low latency it will be necessary to go straight into CoreMIDI, so via Juce would be a great way,
once I get a little further up the learning curve.
I could go down to 64 samples on iPad modifying this part of the juce_ios_audio.cpp :
int getNumBufferSizesAvailable()
{
return 6;
}
int getBufferSizeSamples (int index)
{
switch (index)
{
case 0: return 64; break;
case 1: return 128; break;
case 2: return 256; break;
case 3: return 512; break;
case 4: return 1024; break;
case 5: return 2048; break;
default: return getDefaultBufferSize();
}
}
I tried intermediate values such as 192 but my app crashed when changing to another sample size.
It works with this list. I can change the latency while juce is running without problem.
[quote=“skelman”]I could go down to 64 samples on iPad modifying this part of the juce_ios_audio.cpp :
int getNumBufferSizesAvailable()
{
return 6;
}
int getBufferSizeSamples (int index)
{
switch (index)
{
case 0: return 64; break;
case 1: return 128; break;
case 2: return 256; break;
case 3: return 512; break;
case 4: return 1024; break;
case 5: return 2048; break;
default: return getDefaultBufferSize();
}
}
I tried intermediate values such as 192 but my app crashed when changing to another sample size.
It works with this list. I can change the latency while juce is running without problem.[/quote]
Not sure if this belongs in this thread, but thanks for the info!
I’ve read your post about modules and downloaded some new files (modules-juce_audio_devices-juce_audio_devices.cpp, modules-juce_audio_devices-juce_module_info, modules-juce_audio_devices-midi_io-juce_MidiInput.h, modules-juce_audio_devices-midi_io-juce_MidiOutput.h, modules-juce_audio_devices-native-juce_mac_CoreMidi.cpp, extras-JuceDemo-Builds-iOS-Juce Demo.xcodeproj), but have no idea so far how to implement the changes, and first of all how to create the modules folders. Also - each module folder should contain a “module_info” file, and I only have one: modules-juce_audio_devices-juce_module_info.
What should I do to make MIDI work on iOS?
Please help!!!