<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3204168050432720326</id><updated>2012-02-16T19:32:48.020-08:00</updated><category term='Cocoa'/><category term='HID'/><category term='Development'/><category term='MIDI'/><category term='JSR80'/><category term='IOKit'/><category term='C'/><category term='Mac'/><title type='text'>Pete's Development Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://petedev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3204168050432720326/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://petedev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Magicpete</name><uri>http://www.blogger.com/profile/01052641516525779558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_4QThgjZVIAc/SZQ1XKv3pHI/AAAAAAAAAAM/OWWl1uU9yso/S220/_nz2ppX7uNaPwVu20yuYkULdMpjEJVUmjMTFYTGDU_91j7BRek92dFHRtv16UBlS.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3204168050432720326.post-3022429856365950727</id><published>2009-02-23T12:37:00.000-08:00</published><updated>2009-02-23T13:20:19.123-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Cocoa'/><title type='text'>Getting started with Cocoa</title><content type='html'>In order to make the software for using HID Devices with MIDI usable, it's going to need a half sensible user interface.&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://www.youtube.com/watch?v=DYMMaY6-f8E"&gt;video on YouTube&lt;/a&gt; gives a 5 minute "Hello World" overview, and was pretty straightforward to follow.&lt;br /&gt;&lt;br /&gt;For a more in-depth introduction, the &lt;a href="http://developer.apple.com/DOCUMENTATION/Cocoa/Conceptual/CocoaFundamentals/Introduction/chapter_1_section_1.html#//apple_ref/doc/uid/TP40002974-CH1-SW1"&gt;Cocoa Fundamentals&lt;/a&gt; and &lt;a href="http://developer.apple.com/DOCUMENTATION/Cocoa/Conceptual/ObjCTutorial/01Introduction/chapter_1_section_1.html"&gt;Introduction to Cocoa Application Tutorial&lt;/a&gt; pages over at Apple's Developer Connection are a great place to get started when learning to use Cocoa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3204168050432720326-3022429856365950727?l=petedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://petedev.blogspot.com/feeds/3022429856365950727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://petedev.blogspot.com/2009/02/getting-started-with-cocoa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3204168050432720326/posts/default/3022429856365950727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3204168050432720326/posts/default/3022429856365950727'/><link rel='alternate' type='text/html' href='http://petedev.blogspot.com/2009/02/getting-started-with-cocoa.html' title='Getting started with Cocoa'/><author><name>Magicpete</name><uri>http://www.blogger.com/profile/01052641516525779558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_4QThgjZVIAc/SZQ1XKv3pHI/AAAAAAAAAAM/OWWl1uU9yso/S220/_nz2ppX7uNaPwVu20yuYkULdMpjEJVUmjMTFYTGDU_91j7BRek92dFHRtv16UBlS.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3204168050432720326.post-2764740624973599340</id><published>2009-02-22T12:40:00.000-08:00</published><updated>2009-02-23T13:26:05.221-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='HID'/><title type='text'>Mac ION iED05 software</title><content type='html'>I have just finished writing some very basic software to enable me to use the ION iED05 USB drum kit with Garageband (or any other MIDI capable software on an OSX 10.5+ Mac). Essentially, the program acts as a MIDI source and just maps Human Interface Device (HID) Input data to Midi "Note On" messages. The &lt;a href="http://www.midi.org/techspecs/index.php"&gt;MIDI Manufacturers Association's Tech Specs page&lt;/a&gt; is a useful source of information if you're interested in the technical details of MIDI.&lt;br /&gt;&lt;br /&gt;Over at Apple Developer Connection you can find details of OS X's Audio Support on the &lt;a href="http://developer.apple.com/audio/"&gt;Audio&lt;/a&gt; page with a quick overview of the API's within this &lt;a href="http://developer.apple.com/audio/pdf/coreaudio.pdf"&gt;Audio Overview PDF&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'll not be hosting the software anywhere just yet, as it's in a rather "alpha" state, but if anyone's interested in getting a copy, just leave a comment as it might enthuse me and get round to producing something a bit more user friendly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3204168050432720326-2764740624973599340?l=petedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://petedev.blogspot.com/feeds/2764740624973599340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://petedev.blogspot.com/2009/02/mac-ion-ied05-software.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3204168050432720326/posts/default/2764740624973599340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3204168050432720326/posts/default/2764740624973599340'/><link rel='alternate' type='text/html' href='http://petedev.blogspot.com/2009/02/mac-ion-ied05-software.html' title='Mac ION iED05 software'/><author><name>Magicpete</name><uri>http://www.blogger.com/profile/01052641516525779558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_4QThgjZVIAc/SZQ1XKv3pHI/AAAAAAAAAAM/OWWl1uU9yso/S220/_nz2ppX7uNaPwVu20yuYkULdMpjEJVUmjMTFYTGDU_91j7BRek92dFHRtv16UBlS.jpeg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3204168050432720326.post-1969161231429908785</id><published>2009-02-11T13:50:00.001-08:00</published><updated>2009-02-23T13:27:14.185-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='JSR80'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='IOKit'/><title type='text'>JSR80: Mac and I/OKit</title><content type='html'>In order to be able to implement &lt;a href="http://jcp.org/en/jsr/detail?id=80"&gt;JSR80&lt;/a&gt; for Mac OSX, the first thing that I'll need to understand is how the Mac provides native access to USB devices. It appears that this is achieved through the use of the &lt;a href="http://developer.apple.com/documentation/devicedrivers/conceptual/IOKitFundamentals/Introduction/chapter_1_section_1.html"&gt;I/O Kit&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As suggested by the comments in the IOUSBLib.h header file, a good place to start is having a read of the &lt;a href="http://developer.apple.com/documentation/DeviceDrivers/Conceptual/AccessingHardware/AH_Intro/chapter_1_section_1.html"&gt;Accessing Hardware From Applications&lt;/a&gt; page.  Code examples showing how to access devices using I/O Kit are accessed through the &lt;a href="http://developer.apple.com/documentation/DeviceDrivers/Conceptual/AccessingHardware/AH_Finding_Devices/chapter_4_section_1.html"&gt;Finding Devices&lt;/a&gt; chapter. Finally, documentation specific to handling USB can be found at &lt;a href="http://developer.apple.com/documentation/DeviceDrivers/Conceptual/USBBook/USBDeviceInterfaces/chapter_3_section_2.html"&gt;USB Device Interfaces&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3204168050432720326-1969161231429908785?l=petedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://petedev.blogspot.com/feeds/1969161231429908785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://petedev.blogspot.com/2009/02/jsr80-mac-and-iokit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3204168050432720326/posts/default/1969161231429908785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3204168050432720326/posts/default/1969161231429908785'/><link rel='alternate' type='text/html' href='http://petedev.blogspot.com/2009/02/jsr80-mac-and-iokit.html' title='JSR80: Mac and I/OKit'/><author><name>Magicpete</name><uri>http://www.blogger.com/profile/01052641516525779558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_4QThgjZVIAc/SZQ1XKv3pHI/AAAAAAAAAAM/OWWl1uU9yso/S220/_nz2ppX7uNaPwVu20yuYkULdMpjEJVUmjMTFYTGDU_91j7BRek92dFHRtv16UBlS.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3204168050432720326.post-6263901711461112916</id><published>2009-02-11T13:29:00.000-08:00</published><updated>2009-02-23T13:27:50.486-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='JSR80'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>Java and USB</title><content type='html'>I recently decided that I wanted to play around with USB devices on the Mac and decided that I'd see what support Java has in this respect. After a quick google, I came across the &lt;a href="http://jcp.org/en/jsr/detail?id=80"&gt;Community Page for JSR80&lt;/a&gt;, the Java USB API. A reference implementation (for Linux) and examples are available for download on the &lt;a href="http://javax-usb.org/"&gt;Project Page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;After having a quick search through the javax-usb-devel mailing list it appeared that some partial implementations had been attempted for the Mac, but there didn't appear to be any references to full implementations. Being completely unqualified to write an implementation myself, I thought it would be a great learning experience to give it a shot anyway! My next few posts will aim to cover the steps that I take in order to try and achieve this along with information about the technologies that I use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3204168050432720326-6263901711461112916?l=petedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://petedev.blogspot.com/feeds/6263901711461112916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://petedev.blogspot.com/2009/02/java-and-usb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3204168050432720326/posts/default/6263901711461112916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3204168050432720326/posts/default/6263901711461112916'/><link rel='alternate' type='text/html' href='http://petedev.blogspot.com/2009/02/java-and-usb.html' title='Java and USB'/><author><name>Magicpete</name><uri>http://www.blogger.com/profile/01052641516525779558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_4QThgjZVIAc/SZQ1XKv3pHI/AAAAAAAAAAM/OWWl1uU9yso/S220/_nz2ppX7uNaPwVu20yuYkULdMpjEJVUmjMTFYTGDU_91j7BRek92dFHRtv16UBlS.jpeg'/></author><thr:total>0</thr:total></entry></feed>
