Cambridge Consultants: Difference between revisions

From Computer Laboratory Group Design Projects
Jump to navigationJump to search
No edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
Contact: Davina Jaczyk <davina.jaczyk@cambridgeconsultants.com>
Machine learning group leader Trevor Wood <trevor.wood@cambridgeconsultants.com> has apparently left.


1.1 Chris Roberts - [[Recipe Curator]]
Previously last contact was in 2013: Davina Jaczyk <davina.jaczyk@cambridgeconsultants.com>
One area of my life that could do with the addition of a bit of technology is recipe curation.  I have a shelf full of cookery books, a few websites that I like, and I occasionally get given recipes by other people.  I also have a veg box delivery with unpredictable contents, a desire to eat seasonal ingredients and try new recipes, a variable availability of cooking time, two daughters with a only partially overlapping Venn diagram of food fussiness and not a poor memory. 
What I'd like is some sort of database of recipes to which I can send queries such as "Find me something that doesn't contain cabbage or tomatoes that takes less than 30 minutes to prepare" or "I've got kohlrabi in the veg box AGAIN, are there any recipes I haven't tried that might make something edible out of it?" or "I've actually got a couple of hours free to cook this weekend, what was that complicated Ottolenghi recipe I flagged two weeks ago to try later?" 
The database needs to cope with the fact that ingredients can have different names but mean the same thing: e.g "flour" and "plain flour", and that "1/4 lb" and "4oz" are the same thing and equal to "100g" (and not 113g).
It would be great if once I've chosen this week's menu, it could produce a shopping list I can plug into www.<my_favourite_supermarket>.com, and it needs to have a high WAF, i.e. be usable by non-engineers.


1.2 Rodrigo Queiro – [[Dance Practice Assistant]]
* Chris Roberts - [[Recipe Curator]]
For learning swing dance routines such as the Shim Sham, dancers are often taught individual stages of the routine without music, starting from the teacher's count of "5, 6, 5 6 7 8!". This tends to lead to unnecessary confusion later, when trying to match up the moves they've learned to the music. Trying to practice to excerpts of the music is currently tough, requiring teachers to hunt back and forth for the right section.
* Rodrigo Queiro – [[Dance Practice Assistant]]
 
* Andrew Knights – [[Digital Sheet Music Viewer]]
I propose a system which takes a track and analyses it, perhaps with the Echo Nest API, to identify the times of individual beats and split the track into musical bars and phrases. This greatly aids the teacher in splitting the track into distinct stages of the routine. Then, in the class, the teacher can very easily request playback of a given stage, allowing it to be practised individually to music. The application would also allow the teacher to control the playback speed of the music, to start of easy and build to full speed on later attempts - perhaps by voice or a linked mobile phone app for convenience. At home, the student can use the application to scrape a video off youtube and practise the steps in a similar fashion.
* Alistair Morfey – [[Low energy ECC (Elliptic Curve Cryptography) library]]
For added work, a Kinect-based or similar system to track the dancer and work out what they were doing might be interesting.
* Alistair Morfey – [[Application for the new 32-bit XAP6 Processor]]
 
To follow up on what I said at the meeting, based on the success of things like Swingify:
http://musicmachinery.com/2010/05/21/the-swinger/ 
http://haveyouheard.it/a-swinging-hack-swingify/
 
It seems that individual beat detection works very well, at least for a subset of songs. The same API used for the underlying code:
https://github.com/echonest/remix/blob/master/examples/swinger/swinger.py
95 sloc!!!
would probably be useful.
 
1.3 Andrew Knights – [[Digital Sheet Music Viewer]]
 
A musical score is in effect a single line of n bars. Lines, pages, and to some extent repeat markers appear due to the score being printed on a page.
Design software to allow a user to have complete freedom to arrange a musical score on their chosen VDU (be it a laptop, tablet, mobile-phone, or projector) in a format that most suits the display and their needs.
Starting with a free digital format of the score, the software should allow users to:
• Edit the score layout using drag & drop of bars to arrange the score on-screen
• Choose whether they wish for a scrolling or line/page approach to viewing
• Manipulate on-screen scaling (that will automatically dictate bars per line, etc. when viewing)
• Activate fixed timed scrolling/page turning
• Integrate a musical OCR program to allow scanning paper copies into the software
• Allow the user to customise the score and/or add comments and reminders.
• Implement a detection algorithm that will allow automatic scrolling and/or page turning. (Using maybe:  midi keyboard input / audio listening / front-facing camera watching the performer )
 
Extension tasks:
• Extend the detection algorithm to allow real-time tracking of your place in the score.
• Extend the detection algorithm to allow multiple voices and be robust to a musician retiring part way through.
• Allow multiple users to share, scroll/page turn synchronously, and work together on one score.
• Allow recording during a performance which is linked to the score which could be used for a 'musical autopsy'
 
Doing a quick look online there are numerous musical OCR programs which could be integrated into the software without the need to write it from scratch.
 
1.4 Alistair Morfey – [[Low energy ECC (Elliptic Curve Cryptography) library]]
An increasing number of our projects need to include embedded security. This is particularly true as more devices expect to support remote software upgrades in the field throughout their installed life. We see this a lot in smart metering.
Many of these devices are battery-powered and need to implement modern security algorithms at low energy.
There are open source libraries available for symmetric (e,g AES-128) and asymmetric (e.g ECC 256 primes) crypto algorithms, but they are mainly aimed at computers and require far too much memory and energy.
We have found good open source libraries for symmetric crypto algorithms that are suitable for low energy  use in embedded systems with small memories. However we have not been able to find any suitable libraries for asymmetric crypto algorithms such as ECC-256p.
The challenge is to develop such a portable code set for an embedded 32-bit or 16-bit processor with a small amount of memory (code flash and data RAM). It should identify clever techniques to minimise energy usage and memory requirements. It should be made available as open source software.
 
1.5 Alistair Morfey – [[Application for the new 32-bit XAP6 Processor]]
There are now over 2 billion XAP embedded processors in silicon. These are all 16-bit devices.
We are about to release a 32-bit XAP6 IP core. It is implemented in Verilog RTL and has a GNU software toolkit (GCC, Binutils) that connects to our xIDE debugger tool (can control a hardware target or instruction-level simulator).
We have implemented the XAP6 in hardware on our xEMU mini PCB (that includes a Xilinx Spartan FPGA). The board also contains LCD, buttons, buzzer, Ethernet, RS232, ADC, DAC, 84 IO signals (in two 50-pin connectors) and our SIF debug interface (connects to PC with USB).
We want to have interesting applications developed for this platform. Students can chose whatever they like. We simply want things that demonstrate the technology well.
This is a good way to see the insides of a processor and gain a deep understanding of how the hardware world joins up with the software world.
Alan Mycroft will be interested in this !

Latest revision as of 17:40, 13 October 2018

Machine learning group leader Trevor Wood <trevor.wood@cambridgeconsultants.com> has apparently left.

Previously last contact was in 2013: Davina Jaczyk <davina.jaczyk@cambridgeconsultants.com>