Thursday, 19 May 2016

RHCP - Californication

The 1st song is Californication. (wiki)


Key: Am -> modulation of A (solo)

Am
Intro / Verse 1 / Interlude
|    6m    |     4     |    6m    |     4     | * 2
do extension on 6m (sus2, sus4 & 1) & 4 (sus2)

Verse 2
|    1    |    5    |    4    |    2m    |

Pre-chorus
|    6m    |    4maj7    |    6m    |     4maj7     | * 3

Chorus
|    1    |    5    |    2m    |    6    | * 2

A
Solo
|    6    |    4    |    6    |    4    |
|    2    4    |    1    5    |

|    6    |    4    |    6    |    4    |
|    2    4    |    1    5    |
|    2    4    |    1    5    |
|    2    4    |    1    5    |


Progressing

Intro

Verse 1
Verse 2

Interlude

Verse 1 
Verse 2
Pre-chorus
Chorus

Interlude

Verse 1
Verse 2

Interlude

Verse 1
Verse 2
Pre-chorus
Chorus * 2

Solo

Interlude

Verse 1
Verse 2
Pre-chorus
Chorus * 2


Tuesday, 10 November 2015

Thursday, 15 January 2015

[C++] Abstract Class

只要類別含有任何一個 pure virtual function 就稱為 abstract class.

ex.
class Shape {  // abstract class
    virtual void rotate(int) = 0;  // pure virtual function
    virtual void draw() = 0;  // pure virtual function
    virtual bool is_closed = 0; // pure virtual function
    ...
};

abstract class 無法建立任何 object,只能做為其他 object 的 interface & base object

base:
ex.
class Point { /* */ };
class Circle : public Shape {
    public:
        void rotate(int) {}  // 覆蓋 Shape::rotate
        void draw();  // 覆蓋 Shape::draw
        bool is_closed() { return true; }  // 覆蓋Shape::is_closed

        Circle(Point p, int r);
    private:
        Point center;
        int radius;
};

interface:
ex. driver
class Character_device {
    public:
        virtual int open(int opt) = 0;
        virtual int close(int opt) = 0;
        virtual int read(char* p, int n) = 0;
        virtual int write(const char* p, int n) = 0;
        virtual int ioctl(int ...) = 0;
        virtual ~Character_device() {}
};
可從 Character_device 衍生出各式各樣的 driver object

有 abstract class 便能以 object 拼出完整模組化的系統。

Wednesday, 24 December 2014

Google Cardboard

Interesting!!
You only need a cardboard and an Android phone, you could start to develop VR!

Ref: https://www.google.com/get/cardboard/get-cardboard.html