000webhost

Web hosting
Showing posts with label Arduino. Show all posts
Showing posts with label Arduino. Show all posts

Tuesday, June 9, 2015

Custom MIDI (Hardware and Software) Controllers, MP3 Players, and SD Card Experiments

If you're like me (a technologist who has an interest in music) you've probably looked at a variety of MIDI controllers on the market but haven't found one that quite ticks all the boxes for everything that you want to do. It's also likely that you've looked at having multiple controllers and/or some of the higher end equipment but as always you can't always justify the cost of what you want versus what you actually need.

Of late, I've been looking at building my own (MIDI controllers). After all, these devices are relatively simple and often used highly standardised components (membrance based switches, encoders/knobs/other, some chips, etc...). Look at the following links/teardowns and you'll notice that there is very little to distinguish between them with many components being available from your local electronics store.
https://www.flickr.com/photos/psychlist1972/sets/72157631489556008/detail/
http://www.illuminatedsounds.com/?cat=23
http://www.illuminatedsounds.com/?p=744
http://bangbang-nyc.com/2013/05/ableton-push-disassembled/
http://pushmod.blogspot.com.au/
http://www.synthtopia.com/content/2013/08/26/ableton-push-stripped-bare/
http://www.mpcstuff.com/akstst.html

I've looked at starting from scratch for hardware builds but they have proven to be prohibitively expensive for my experiment (3D printing is an increasingly viable option especially as public libraries let them out for free, public use but there are limitations especially with regards to construction. For instance, many printers will require multiple sessions before a complete device can be constructed, there are durability concerns, etc...). Instead I've been looking at using existing electronics to interface with.
http://www.umidi.co/index.html
http://custommidicontrollers.com/
http://www.instructables.com/id/Custom-Built-MIDI-Controller/

For instance, finding something suitable to turn into a MIDI controller (calculators, toy pianos spring to mind). The circuitry is often very simple and basically all you need to is hook it up to an environmental control interface device with multiple sensors. A hardware interface is then used to provide electrical signal to MIDI control translation (such as an Arduino device). The other option is to analyse the electrical signal on a case by case basis. Then use this as a basis for writing a translation program which will turn the electrical signal into a MIDI signal which can be used to interface with other equipment, your existing software, etc...
http://www.musicradar.com/reviews/tech/akai-mpd24-22920
http://vvvv.org/contribution/mpd24-akai-midi-mapper
http://mods-n-hacks.wonderhowto.com/how-to/build-simple-midi-controller-251069/
http://shiftmore.blogspot.com.au/2009/12/calculator-midi-usb-controller.html
http://www.codetinkerhack.com/2012/11/how-to-turn-piano-toy-into-midi.html
http://www.codetinkerhack.com/2013/01/how-to-add-velocity-aftertouch-midi.html
http://makezine.com/2010/11/30/usbhacking/
https://wiki.python.org/moin/PythonInMusic
http://www.native-instruments.com/forum/threads/turning-any-usb-hardware-into-a-midi-device.47017/
http://createdigitalmusic.com/2009/11/novation-releases-all-midi-details-for-launchpad/
http://www.widisoft.com/english/widi-audio-to-midi-vst.html
http://code.google.com/p/audio2midi/
http://www.synthtopia.com/content/2013/07/26/midimorphosis-converts-audio-to-midi/
http://www.nativekontrol.com/

Another option I've been looking at is using third party electronic devices (such as a tablet or else cheaper MIDI control devices in combination with other software) to provide emulation for often much more expensive hardware. Good examples of this include the the high end hardware controllers such as Native Instrument's Maschine, Ableton's Push, a Akai's MPC/APC series, etc... (Even when purchased second hand these devices can often fetch up to around 80-90% of their retail value. Factor in the problem that few retailers are willing to provide demonstration equipment for them (StoreDJ is an exception) and you can understand why so many people re-sell their equipment with explanations often stating that the piece of equipment quite simply didn't fit into their setup.)
http://motscousus.com/stuff/2011-07_Novation_Launchpad_Ableton_Live_Scripts/
http://www.afrodjmac.com/blog/2013/03/14/more-ways-to-turn-your-launchpad-into-a-push
http://beatwise.proboards.com/thread/1315/free-preset-carbon-push-emulation
http://www.reddit.com/r/abletonlive/comments/1aopop/push_emulation_now_available_on_apc40_free_to/?

There are several main options to look at including TouchOSC, MIDI Designer, and Lemur. The two I've been most curious about are Lemur and TouchOSC though. Installation and setup consist of a daemon/service on your computer, an application of some sort on your tablet, and an editor that can be tablet or computer based. Thereafter, there are often 'templates' which are basically skins and underlying software code which allows you to design a MIDI interface from scratch and interface with other equipment/software directly from your tablet.
https://liine.net/en/products/lemur/
http://iosmidi.com/
http://mididesigner.com/
http://hexler.net/software/touchosc-android
http://djtechtools.com/2013/01/28/how-to-dj-using-liines-lemur-app-for-ipad/
http://www.youtube.com/watch?v=KJxAnm3j8TI
http://createdigitalmusic.com/2014/11/lemur-now-android-supports-cabled-connections-want-touch-app/
https://liine.net/en/community/user-library/view/421/

There are obvious issues here. Apple iPads are almost as expensive as some of the MIDI controllers we're looking at in this document. One option is to purchase the iPad Mini or something second hand. Basically, what I've been reading indicates that either option will do but that the screen size of the iPad Mini may make things a bit fiddly particularly if you have large hands. The other option is to use Android only applications. The only problem is that the iOS universe is often much more diverse than the Android one.
http://www.kvraudio.com/forum/viewtopic.php?t=397495
http://support.liine.net/customer/portal/questions/1244470-ipad-mini-compatibility-with-lemur-drum-pad-
http://forum.liine.net/viewtopic.php?f=25&t=2391
https://www.ableton.com/en/help/article/control-live-mobile-device/
https://www.gearslutz.com/board/electronic-music-instruments-electronic-music-production/700437-ni-maschine-mikro-vs-ipad-lemur.html
http://digitaldjtools.net/mappings/
http://forum.watmm.com/topic/76701-considering-an-ipad-mini/
https://documentation.meraki.com/SM/Monitoring_and_Reporting/Activation_Lock_Bypass_for_iOS_Devices

http://cydiamate.net/doulci-ios-8-3-activation-lock-bypass/

The other thing that needs to be considered is how you should interface. In theory, wireless is a great option. In practice I've been seeing stories about consistently lost connnections. Look at a hardware USB interface if need be.
http://www.djcity.com.au/irig-midi-interface-for-iphone-and-ipad
http://www.djcity.com.au/irig-midi2

To be honest though a lot of the emulators for the Push (and other devices) aren't perfect. You lose a bit of functionality (in some cases you gain a lot of extra functionality though but the emulation still isn't perfect). It's likely going to make you want to purchase these devices more or ward you off of them completely because they don't fit into your workflow.

With the cessation of production of the iPod Classic and other high capacity music player options I've been looking at alternatives on and off for a while. Clearly, high capacity SD based storage options are extremely expensive at this stage at the high end. One alternative though is using adapter cards for inexpensive, readily available, older low capacity MP3 players which utilise hard drives. The adapters required are available for around $10-20. Obvious problems using SD based storage include regarding speed limitations, capacity limitations, high prices, etc... Moreover, some of the adapters won't fit in the case, or there needs to be workarounds. For instance, currently there aren't enough 128GB SD cards at a reasonable price locally so running multiple SD cards in RAID configuration may be the compromise that you have to make for the immediate future.
http://www.ebay.com/bhp/sd-card-to-ide
http://cubicgarden.com/2013/05/05/upgrading-the-pacemakers-hard-drive/
http://www.head-fi.org/t/566780/official-ipod-video-classic-5g-5-5g-6g-6-5g-7g-ssd-mod-thread/270
http://www.ebay.com/itm/SD-SDHC-MMC-Card-to-1-8-ZIF-LIF-CE-SSD-Adapter-40pin-ZIF-LIF-cable-/111091174857

One interesting piece of information that I've come across recently is that there isn't much stopping people using SDXC cards in supposedly SDHC only card readers (either drivers or simple hardware blocks are the limitations). Basically, the primary difference between SDHC and SDXC are that the default file formats are one uses FAT32 as the default format while the other uses exFAT respectively. Clearly this limitation can be overcome with the right tools and knowledge though. For instance, Windows by default doesn't allow this so other options need to be employed.
https://gbatemp.net/threads/how-to-use-a-64gb-micro-sdxc-in-your-sdhc-compliant-flash-cart.335912/
http://www.ridgecrop.demon.co.uk/
http://www.tarkan.info/20121226/tutorials/ipod-and-sdhc-sdxc-cards
http://arstechnica.com/civis/viewtopic.php?t=1151548
http://en.wikipedia.org/wiki/Secure_Digital
https://www.ifixit.com/Guide/iPod+5th+Generation+%28Video%29+CF+or+SDHC-SDXC+Memory+instead+of+HDD+Replacement/7492
https://www.raspberrypi.org/forums/viewtopic.php?f=2&t=2252

http://superuser.com/questions/282202/which-consumes-more-power-hard-drive-or-sd-card-card-reader
http://raspberrypi.stackexchange.com/questions/1765/possible-to-connect-sata-device-to-the-sd-slot
http://www.techbuy.com.au/p/208703/HARD_DRIVE_-_EXTERNAL_DRIVE_CASE_SATA_-_USB_2.5/8WARE/WI21.asp
http://www.warcom.com.au/shop/flypage/computer-parts/media-players/49000?gclid=CKXk-bfN2sUCFUsHvAod-gQAGg
http://www.i-tech.com.au/products/144200_8ware_Portable_Wireless_Streaming.aspx

- as usual thanks to all of the individuals and groups who purchase and use my goods and services
http://sites.google.com/site/dtbnguyen/
http://dtbnguyen.blogspot.com.au/

Wednesday, November 9, 2011

Playing With an Android

While Windows is not the most secure Operating System in the world its certainly the most convenient. I used to install literally everything that came off the cover discs of magazines just to see what they were like simply because installation/configuration/removal was so simple. The Internet opened up the world even further. Over the last few years, 'smartphones' have become increasingly popular and tweaks/mods have made them almost as functional as desktop computers. My first foray into the Android world was a HTC Tattoo. To really exploit its capabilities though I've been exploring the the Android ADK/SDK (note that the 'HTC Dream Composite ADB Interface' driver is required for you to work with ADB and you'll need to have the 'Android ADK/SDK Platform-tools' package installed for you to do anything really interesting). Its essentially a Linux/UNIX platform with a suitable GUI on top and you can install all the same types/classes of programs that you would otherwise do on a fully fledged computer. The real difference is that unlike a lot of other platforms this one has basically been made for 'tweakers' and as such development of complementary software/hardware is significantly higher than most other platforms that I've come across. In fact, interfacing with the real world via robotics is easily possible via off the shelf kits at your local electronics store.

Monday, September 5, 2011

Arduino Programming

Recently, an electronics store opened close by. This of course had its pros as well as its cons. The pros being that I have a place close by where I can get all sorts of electronic parts that I require. The con being sometimes you can get caught up in new pieces of technology. One of these pieces of technology happens to be Arduino electronics. There are obviously many different variations of compatible hardware but the most useful one that I came across that was in stock was the EtherTen.


Its basically a 100% Arduino compatible board that has an on board MicroSD card slot, an Ethernet port, as well as an ATmega328P MCU. Besides doing the usual LED blinker type experiments that you may have encoutered at University you'll also have the chance to interact with the outside world using all sorts of extra functionality such as wireless, LCD screens, motors, and enironmentel sensors. (details regarding this are available towards the bottom of this post)

Software Setup

1) Download software from, http://arduino.cc
2) Upon uncompression the you'll notice a arduino executable. Opening it will result in a minimalistic IDE for simple programming of the device itself.
3) Install the Windows USB driver if required via http://www.freetronics.com/pages/installing-the-usb-driver-file-for-windows (you won't require this if you're using Linux)
4) Select correct board by going to Tool > Board
5) Go to Tools > Serial Monitor to find out where device is going to be plugged in. Else just use dmesg and look for something similar to the following (if using Linux)

[ 8632.239231] usb 3-1: new full speed USB device number 3 using uhci_hcd
[ 8632.431914] usb 3-1: New USB device found, idVendor=20a0, idProduct=4150
[ 8632.431926] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 8632.431935] usb 3-1: Product: Eleven
[ 8632.431943] usb 3-1: Manufacturer: www.freetronics.com
[ 8632.431950] usb 3-1: SerialNumber: 64938323231351C0B1A1
[ 8632.435125] cdc_acm 3-1:1.0: ttyACM0: USB ACM device

6) Go to Tools > Serial Port and select the correct port on which the Arduino has been connected on.
7) You should see the blue LED on the board light up to indicate that the board has now been connected.

Running a Program on the Arduino
1) File > Examples > Digital > Name of Program
2) Sketch > Verify/Compile
3) File > Upload to I/O Board

You'll need to have avr-g++ installed as well as a number of other dependent utilities on Linux. I was using Knoppix Live ISO image so I tried downloading Debian packages obviously. I noticed that there were a few dependency oddities though including some that were not so easy to fix so I resorted to using the Windows version to get things up and running quickly.

Note, that Ethernet will not work without sufficient power. Funnily enough, a Linksys switch AC adapter works perfectly with the device (12V with + in centre) though it can cause the device to heat up a little. Note also that the LCD can be used without extra power although at a significantly lower brightness level.

Not everything is perfect. I had to upload compiled firmware twice a few times or else you may encounter limitations like this guy did here, http://robotjamie.com/etherten-firstlook Nonethless, its an incredible piece of hardware considering how inexpensive it is.

You may need to alter the default initialisation string from the example sketch if you do intend to use the LCD/keypad shield. Details of this were on the underside of the actual PCB on my particular 'Shield'.

Currently, I'm working on wireless transfer of information. Details of my progress on this experiment will follow later.



Sane and Sensible Hierarchies/Organisational Structures, Random Stuff, and More

- in this post we'll look at professional sports and other fields and how stuff from that field can be used in the business world and ho...