Monday, June 5, 2017
Tuesday, May 23, 2017
Adding Piezo and Replace Tune O Matic on ES175 Replica.
Why? I want acoustic electric package in one guitar. In order to install Fishman piezo, I need to replace Tune O Matic with regular acoustic bridge saddle.
Is it success? Uh, oh, maybe.
What about sound after mod? It's nearly acceptable.
Nearly? Err, there's fret bussing, the action of the mod with acoustic saddle is too low.
Just that? There's intonation problem too, I couldn't set individual string length on the bridge.
Are you crazy? Yup.
Are you happy now? Not yet.
Guitar Intonation.
Have you tune your guitar using clip-on tuner and it's perfectly in tune for all open strings, but it getting horribly out of tune at high fret. Yup, that's intonation problem striking at you.
What's guitar intonation? Well, on traditional style guitar, with straight frets, the fret placement is based on a string or based on 'standard' measurement. The problem with this placement is while it's fine with 1st string, it doesn't sound right with 2nd string (b) or 3rd (G). Of course it's like Heisenberg Uncertainty Principle, if we make it work on G-string, it will sound wrong on high-e string.
Can it be solved? Some people using 'true temperament' system on their fretboard. The fret in this system is not straight but have a certain shape in order to get the strings perfectly in tune. Of course different string gauge will need different fret shape so one guitar will stuck on one type of string. (We might use another string, but it will out of tune, maybe worse than standard straight frets).
Okay, it's not generally practical. Is there another way?
What's guitar intonation? Well, on traditional style guitar, with straight frets, the fret placement is based on a string or based on 'standard' measurement. The problem with this placement is while it's fine with 1st string, it doesn't sound right with 2nd string (b) or 3rd (G). Of course it's like Heisenberg Uncertainty Principle, if we make it work on G-string, it will sound wrong on high-e string.
Can it be solved? Some people using 'true temperament' system on their fretboard. The fret in this system is not straight but have a certain shape in order to get the strings perfectly in tune. Of course different string gauge will need different fret shape so one guitar will stuck on one type of string. (We might use another string, but it will out of tune, maybe worse than standard straight frets).
Okay, it's not generally practical. Is there another way?
Thursday, May 18, 2017
Playing with Memo in Delphi
I change the font in memo (tMemo) into courier. With this change, it's easy to do string manipulation with old Pascal style.
Below, I create small program with read input from edit into n variable. The input can only contain number 1 to 9.
The output is displayed on Memo. It's just number 123456789 (yeah, it has type string, but its number).
It's that all? No. The number's forming a 'cross' centered on number specified in edit. :)
Palindrom Checker
This simple program is using an edit as input, a button to trigger processing and a memo for output.
I used edit.text as s value and then reverse its value using for command and saved to rs variable.
We compared s and rs to determine that s is palindrom or not.
Here's the code
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Memo1: TMemo; Button1: TButton; procedure proses; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure tform1.proses; var s,rs:string; i:integer; palindrom:boolean; begin memo1.Text:=''; palindrom:=true; s:=edit1.Text; for i:=length(s) downto 1 do begin rs:=rs+s[i]; end; for i:=1 to length(s) do begin if s[i]<>rs[i] then begin palindrom:=false; break; end; end; memo1.Lines.Append(s); memo1.Lines.Append(rs); if palindrom=true then memo1.Lines.Append('is palindrom') else memo1.Lines.Append('is not palindrom'); end; procedure TForm1.FormCreate(Sender: TObject); begin memo1.Text:=''; end; procedure TForm1.Button1Click(Sender: TObject); begin proses; end; end.
Tuesday, May 16, 2017
Walking Star in Delphi's Stringgrid.
This code moves the star from cell to cell on string grid.
I use variable s, an array of string type variable.
For delay, or controlling the speed, I use application.processmessages and sleep() combo command.
This code fills cell with blank (space) value that corresponds with s, except one cell. This one cell then "moves" to the right, into the cell next to it.
For this purpose I declare two integer type variable, sx and sy. This variable add itself by one every step. Based on this two variable, the cell that should be filled with star is decided.
I use variable s, an array of string type variable.
For delay, or controlling the speed, I use application.processmessages and sleep() combo command.
This code fills cell with blank (space) value that corresponds with s, except one cell. This one cell then "moves" to the right, into the cell next to it.
For this purpose I declare two integer type variable, sx and sy. This variable add itself by one every step. Based on this two variable, the cell that should be filled with star is decided.
Monday, May 15, 2017
Digit Word.
A digit word is a word where, after possibly removing some letters, you are left with one of the single digits:
ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT or NINE.
For example:
• BOUNCE and ANNOUNCE are digit words, since they contain the digit ONE.
• ENCODE is not a digit word, even though it contains an O, N and E, since they are not in order.
Here's my code on Delphi
.
ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT or NINE.
For example:
• BOUNCE and ANNOUNCE are digit words, since they contain the digit ONE.
• ENCODE is not a digit word, even though it contains an O, N and E, since they are not in order.
Here's my code on Delphi
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Memo1: TMemo; procedure proses; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; digit,cdigit:array[1..9] of string; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin memo1.Text:=''; digit[1]:='one'; digit[2]:='two'; digit[3]:='three'; digit[4]:='four'; digit[5]:='five'; digit[6]:='six'; digit[7]:='seven'; digit[8]:='eight'; digit[9]:='nine'; end; procedure tform1.proses; var s:string; i,j,k,n:integer; c:array[1..9]of integer; ck:array[1..9]of boolean; begin memo1.Text:=''; s:=edit1.Text; memo1.Lines.Append(s); memo1.Lines.Append(''); n:=length(s); for i:=1 to 9 do begin cdigit[i]:=''; c[i]:=1; ck[i]:=true; end; //looking for char for i:=1 to 9 do begin for j:=1 to length(digit[i]) do begin if ck[i]=true then begin ck[i]:=false; for k:=c[i] to n do begin if s[k]=digit[i][j] then begin ck[i]:=true; cdigit[i]:=cdigit[i]+s[k]; c[i]:=c[i]+1; break; end; end; end; end; end; //compare for i:=1 to 9 do begin memo1.Lines.Append(cdigit[i]); end; end; procedure TForm1.Button1Click(Sender: TObject); begin proses; end; end.
Subscribe to:
Posts (Atom)
My sky is high, blue, bright and silent.
Nugroho's (almost like junk) blog
By: Nugroho Adi Pramono
323f
(5)
amp
(1)
android
(12)
apple
(7)
arduino
(18)
art
(1)
assembler
(21)
astina
(4)
ATTiny
(23)
blackberry
(4)
camera
(3)
canon
(2)
cerita
(2)
computer
(106)
crazyness
(11)
debian
(1)
delphi
(39)
diary
(286)
flash
(8)
fortran
(6)
freebsd
(6)
google apps script
(8)
guitar
(2)
HTML5
(10)
IFTTT
(7)
Instagram
(7)
internet
(12)
iOS
(5)
iPad
(6)
iPhone
(5)
java
(1)
javascript
(1)
keynote
(2)
LaTeX
(6)
lazarus
(1)
linux
(29)
lion
(15)
mac
(28)
macbook air
(8)
macbook pro
(3)
macOS
(1)
Math
(3)
mathematica
(1)
maverick
(6)
mazda
(4)
microcontroler
(35)
mountain lion
(2)
music
(37)
netbook
(1)
nugnux
(6)
os x
(36)
php
(1)
Physicist
(29)
Picture
(3)
programming
(189)
Python
(109)
S2
(13)
software
(7)
Soliloquy
(125)
Ubuntu
(5)
unix
(4)
Video
(8)
wayang
(3)
yosemite
(3)