chord maker

does anyone know if there is something that clamps on the neck of a guitar that makes a chord by pushing buttons instead of the strings?

Answer #1

I haven’t personally heard of nor saw such a device. It would seem to be good idea though. Maybe you should draw up the patent for one and try to be the first one out there.

Answer #2

This is the diogram

Rebol [

title: "Guitar Chord Diagram Maker"
date: 29-june-2008
file: %guitar-chord-diagram-maker.r
purpose: {
    A demo program that creates, saves, and prints collections of guitar chord fretboard diagrams.  
    Taken from the tutorial at http://musiclessonz.com/rebol_tutorial.html
}

]

fretboard: load 64#{ iVBORw0KGgoAAANSUhEUgAAAFUAAABkCAIAAAB4sesFAAACXBIWXMAAAsTAAAL EwEAmpwYAAA2UlEQVR4nO3YQQqDQBAF0XTIwXtuNjfrLITs0rowGqbqbRWxEEL+ RFU9wJ53v8DN7Gezn81+NvvZXv3liLjmPX6n/4NL//72s9l/QGbWd5m53dbc8/kR uv5RJ/QvzH42+9nsZ7OfzX62nfOPzZzzyNUxxh8+qhfVHo94/rM49y+b/Wz2s9nP Zj+b/WzuX/cvmfuXzX42+9nsZ7OfzX4296/7l8z9y2Y/m/1s9rPZz2Y/m/vX/Uvm /mWzn81+NvvZ7Gezn8396/4l2/n+y6N/f/vZ7Gezn81+tjenRWXD3TC8nAAABJ RU5ErkJggg== }

barimage: load 64#{ iVBORw0KGgoAAANSUhEUgAAAEoAAAFCAIAAABtvO2fAAACXBIWXMAAAsTAAAL EwEAmpwYAAAHElEQVR4nGNsaGhgGL6AaaAdQFsw6r2hDIa59wCf/AGKgzU3RwAA AABJRU5ErkJggg== }

dot: load 64#{ iVBORw0KGgoAAANSUhEUgAAAoAAAKCAIAAACUFjqAAACXBIWXMAAAsTAAAL EwEAmpwYAAAFElEQVR4nGNsaGhgwA2Y8MiNYGkA22EBlPG3fjQAAASUVORK5C YII= }

movestyle: [

engage: func [face action event] [
    if action = 'down [
        face/data: event/offset
        remove find face/parent-face/pane face
        append face/parent-face/pane face
    ]
    if find [over away] action [
        face/offset: face/offset + event/offset - face/data
    ]
    show face
]

]

gui: [

backdrop white
currentfretboard: image fretboard 255x300
currentbar: image barimage 240x15 feel movestyle
text "INSTRUCTIONS:" underline
text "Drag dots and other widgets onto the fretboard."
across  
text "Resize the fretboard:"
tab 
rotary "255x300" "170x200" "85x100" [
    currentfretboard/size: to-pair value show currentfretboard
    switch value [
        "255x300" [currentbar/size: 240x15 show currentbar]
        "170x200" [currentbar/size: 160x10 show currentbar]
        "85x100" [currentbar/size: 80x5 show currentbar]
    ]
]   
return
button "Save Diagram" [
    filename: to-file request-file/save/file "1.png"
    save/png filename to-image currentfretboard
]
tab
button "Print" [
    filelist: sort request-file/title "Select image(s) to print:"
    html: copy "  "
    foreach file filelist [
        append html rejoin [
            { }
        ]
    ]
    append html [  ]
    write %chords.html trim/auto html
    browse %chords.html 
]

]

loop 50 [append gui [at 275x50 image dot 30x30 feel movestyle]] loop 50 [append gui [at 275x100 image dot 20x20 feel movestyle]] loop 50 [append gui [at 275x140 image dot 10x10 feel movestyle]] loop 6 [append gui [at 273x165 text “X” bold feel movestyle]] loop 6 [append gui [at 273x185 text “O” bold feel movestyle]]

and gzip-r

REBOL [

Title: "gunzip"
Date: 30-Dec-2004
Version: 1.0.0
File: %gunzip.r
Author: "Vincent Ecuyer"
Purpose: "Decompresses gzip archives."
Usage: {
    write/binary %my-file.txt gunzip %my-file.txt.gz

    or

    c-data: read/binary %my-file.txt.gz
    my-data: gunzip c-data
}
Comment: {
    It only works with rebol/view or rebol/face.

    PiNG file format uses "deflate" compression,
    like gzip and Rebol COMPRESS command.

    This hack builds a PiNG picture with the compressed data,
    loads it, then extracts the uncompressed data.

    Tested with .gz files from %gzip.r,
    gzip32 1.2.4 and 7-Zip 3.13.
}
Library: [
    level: 'advanced
    platform: 'all
    type: [module tool]
    domain: [compression file-handling files]
    tested-under: [
        view 1.2.1.3.1  on [Win2K]
        view 1.2.1.1.1  on [AmigaOS30]
        face 1.2.48.3.1 on [Win2K]
    ]
    support: none
    license: 'public-domain
    see-also: %gzip.r
]

]

ctx-gunzip: context [

to-bin: func [value][load join "#{" [to-hex value "}"]]
set?: func [value bit][not zero? value and to-integer 2 ** bit]
os-codes: [
    'FAT 'Amiga 'VMS 'Unix 'VM/CMS 'Atari-TOS 'HPFS 'Macintosh
    'Z-System 'CP/M 'TOPS-20 'NTFS 'QDOS 'Acorn-RISCOS
]

set 'gunzip func [
    "Decompresses a gzip encoding - returns a binary."
    data [any-string! file!] "Data to decompress"
    /info "Returns a block with [data filename date comment OS]"
    /local flags os filename filecomment time size r
][
    if not all [value? 'view? view?][make error! "/View needed"]

    if string? data [data: to-binary data]
    if file? data [data: read/binary data]

    if data/1   31 [make error! "Bad ID"]
    if data/2   139 [make error! "Bad ID"]
    if data/3   8 [make error! "Unknown Method"]

    flags: data/4

    time: to-integer head reverse copy/part skip data 4 4
    time: either zero? time [none][
        01-01-1970/0:0:0 + now/zone + to-time time
    ]

    os: pick os-codes data/10 + 1

    filename: filecomment: none

    data: skip data 10
    if set? flags 2 [ ; extra?
        data: skip data 2
        data: skip data data/2 * 256 + data/1 + 2
    ]
    if set? flags 3 [ ; name?
        filename: data
        data: find/tail data #"^@"
        filename: copy/part filename back data
    ]
    if set? flags 4 [ ; comment?
        filecomment: data
        filecomment: find/tail data #"^@"
        filecomment: copy/part filecomment back data
    ]
    if set? flags 1 [ ; crc-16?
        data: skip data 2
    ]

    size: to-integer head reverse copy skip tail data -4

    data: copy/part data skip tail data -8

    data: to-binary rejoin [
        #{89504E47} #{0D0A1A0A} ; signature
        #{0000000D} ; IHDR length
        "IHDR" ; type: header
        to-bin size ; width = uncompressed size
        #{00000001} ; height = 1 line
        #{08} ; bit depth
        #{00} ; color type = grayscale
        #{00} ; compression method
        #{00} ; filter method = none
        #{00} ; interlace method = no interlace
        #{00000000} ; no checksum
        to-bin 2 + 6 + length? data ; length
        "IDAT" ; type: data
        #{789C} ; zlib header
        #{00 0100 FEFF 00} ; 0 = no filter for scanline
        data
        #{00000000} ; no checksum
        #{00000000} ; length
        "IEND" ; type: end
        #{00000000} ; no checksum
    ]

    if error? try [data: load data][
        make error! "Unable to decompress"
    ]

    r: make binary! size
    repeat I size [insert tail are to-char pick pick data I 1]

    either info [
        reduce [
            r
            either filename [to-file filename][none]
            time
            either filecomment [to-string comment][none]
            either os [os]['Unknown]
        ]
    ][r]
]

]

More Like This
Advisor

Music

Music production, Music theory, Music education

Ask an advisor one-on-one!
Advisor

Free Jazz Lessons

Music Education, Piano Lessons, Jazz Music

Advisor

Zager Guitars

Music, Musical Instruments, Guitar