# .tkabcrc - tkabc custom keystrokes (Hudson Lacerda) -*- tcl -*-
# For tclabc-1.0.7 http://moinejf.free.fr
# ESTE ARQUIVO DEVE SER SALVO COMO ~/.tkabcrc
# THIS FILE MUST BE SAVED AS ~/.tkabcrc
#############
# PORTUGUÊS #
#############
#
# Este arquivo de configuração de tkabc.tcl (http://moinejf.free.fr)
# implementa teclas de atalho que acho mais práticas que as originais.
#
# Uma diferença sensível é que a tecla `a' insere uma nota, ao
# contrário do que continua a ser indicado no menu `Ficheiro | Opções
# de visualização'. O atalho `Shift-A' (`A' maiúsculo) é usado para
# esta função.
#
# Além disso, uma janela de confirmação é aberta quando a tecla `q'
# (Sair) é apertada.
#
# As teclas de setas acima/abaixo e page-up/page-down mudam a altura
# da nota, o tipo de barra de compasso, o número superior da fórmula
# de compasso, a armadura de tonalidade (com transposição) ou a clave.
#
# Control- muda a oitava da nota.
#
# Shift- muda a duração da nota ou o número inferior da
# fórmula de compasso, ou a linha da clave.
#
# Alt- anda um compasso.
#
# Alt- muda para outra voz.
#
# Shift-V (`V' maiúsculo) adiciona uma nova voz.
#
# Shift-E (`E' maiúsculo) salva e edita o arquivo com emacs.
#
# Control-n adiciona uma música (vazia) ao arquivo.
#
# Acidentes são inseridos com:
# 1 bemol
# 2 natural (alterna bequadro/nenhum acidente)
# 3 sustenido
# ! dobrado bemol
# @ bequadro
# # dobrado sustenido
# Alt-1 bemol de 1/4 de tom
# Alt-3 sustenido de 1/4 de tom
# Alt-! bemol de 3/4 de tom
# Alt-# sustenido de 3/4 de tom
#
# `u' atualiza a previsualização (como `Shift-P', roda abc2ps, mas não
# chama ghostview).
###########
# ENGLISH #
###########
#
# This config file for tkabc.tcl (http://moinejf.free.fr) implements
# keystrokes that I find more convenient than the original ones.
#
# An important difference is that `a' inserts a note, rather than
# configure abcm2ps options as it continues to be shown in the menu
# `File'. `Shift-A' (capital `A') is used for that.
#
# Moreover, a confirmation dialog is open when `q' (quit) is pressed.
#
# The arrow keys up/down as well as PageUp/PageDown change things like
# the pitch of the note, the type of bar line, the numerator of time
# signature, the key signature (with transposition) or the clef.
#
# Control- change the octave of the note.
#
# Shift- change the note length, the denominator of time
# signature or the clef line.
#
# Alt- move by one measure.
#
# Alt- move to another voice.
#
# Shift-V (capital `V') create a new voice.
#
# Shift-E (capital `E') save and edit the file with Emacs.
#
# Control-n create a new music in the same file.
#
# Accidentals:
# 1 flat
# 2 natural (toggle natural/no accidental)
# 3 sharp
# ! double flat
# @ natural sign
# # double sharp
# Alt-1 1/4-tone flat (semiflat)
# Alt-3 1/4-tone sharp (semisharp)
# Alt-! 3/4-tone flat (sesquiflat)
# Alt-# 3/4-tone sharp (sesquisharp)
#
# `u' update preview (whithout calling ghostview)
proc update-preview {} {
# preview the current tune
global opt tune
set abcfile $opt(tmpdir)/tmp.abc
set fd [open $abcfile {w}]
puts $fd [abc dump]
close $fd
set npsfile [file nativename $opt(tmpdir)/tmp.ps]
set prg "exec {$opt(abc2ps)} $opt(abc2ps-args) $tune(preview-args) {[file nativename $abcfile]} -O {$npsfile}"
catch {eval $prg} rc
tk_messageBox -type ok -message "abc(m)2ps result\n$rc" \
-title {abc(m)2ps result}
# exec $opt(ghostview) $npsfile &
# exec rm $abcfile $psfile
}
proc post-init {} {
# Update preview (run abc2ps without calling ghostview)
bind .f.c update-preview
# Edit file with emacs
bind .f.c {global tune
tune-save
catch "exec emacsclient -a emacs $tune(fname)"
tune-reload}
# N.B. emacclient requires the following line in ~/.emacs :
# (server-start)
# Create a new tune in the same file
bind .f.c {tune-new}
# When 'q' (quit), ask for confirmation
bind .f.c {
global lang tune
switch [tk_messageBox -type okcancel -title $lang(m_quit)? \
-message $lang(m_quit)?] {
ok {
quit
}
cancel {
}
}
}
# fixme: Alt-a is also included as Key-a
bind .f.c [list sym-add n] ;# insert note (good)
bind .f.c prevargs ;# preview args
# bind .f.c {help; show-keys}
# bind .f.c [list sym-add k]
bind .f.c {voice-new} ;# insert new voice
# change pitch (OK)
bind .f.c [list sym-pitch -1] ;# change note up/dn
bind .f.c [list sym-pitch 1]
bind .f.c [list sym-pitch -1]
bind .f.c [list sym-pitch 1]
# move to bar (revise along 'move to voice')
bind .f.c [list cursor-move -1b] ;# previous bar
bind .f.c [list cursor-move 1b] ;# next bar
# move to voice (revise)
bind .f.c [list updn 0] ;# prev voice
bind .f.c [list updn 1] ;# next voice
bind .f.c [list updn 1]
bind .f.c [list updn 0]
bind .f.c [list updn 1]
bind .f.c [list updn 0]
bind .f.c [list updn 1]
bind .f.c [list updn 0]
# change octave (revise)
bind .f.c [list sym-pitch 7] ;# oct+
bind .f.c [list sym-pitch 7] ;# oct+
bind .f.c [list sym-pitch 7] ;# oct+
bind .f.c [list sym-pitch -7] ;# oct-
bind .f.c [list sym-pitch -7] ;# oct-
bind .f.c [list sym-pitch -7] ;# oct-
# accidentals (OK)
bind .f.c [list sym-acc 1] ;# sharp
bind .f.c [list sym-acc 0] ;# natural/none (toggle)
bind .f.c [list sym-acc 3] ;# flat
bind .f.c [list sym-acc 5] ;# double flat
bind .f.c [list sym-acc 2] ;# bequadro (natural sign)
bind .f.c [list sym-acc 4] ;# double sharp
# microtonal accidentals (tkabc-1.0.6)
bind .f.c [list sym-acc 9] ;# semisharp
bind .f.c [list sym-acc 4105] ;# sesquisharp
bind .f.c [list sym-acc 11] ;# semiflat
bind .f.c [list sym-acc 4107] ;# sesquiflat
# change duration -- REVISE THIS
bind .f.c [list sym-len plus] ;# good shortcut
bind .f.c [list sym-len minus] ;# good shortcut
bind .f.c [list sym-len plus]
bind .f.c [list sym-len plus]
bind .f.c [list sym-len minus]
bind .f.c [list sym-len minus]
# new versions
bind .f.c [list sym-len plus]
bind .f.c [list sym-len plus]
bind .f.c [list sym-len plus]
bind .f.c [list sym-len minus]
bind .f.c [list sym-len minus]
bind .f.c [list sym-len minus]
} ;#####
# below settings managed by tkabc
# USER SETTINGS
# everything between here and the END OF USER SETTINGS comment line
# will be rewritten on a Preference Save
array set opt {
abc2ps abcm2ps
abc2ps-args {}
bg LightYellow
chg_bg LightPink1
detail 1
ent_bg AntiqueWhite
follow 1
ghostview gv
lang lang-ptBR.tcl
midiin /dev/midi00
midiin-start 0
midiout /dev/sequencer
midiout-start 1
nochg_bg DarkSeaGreen2
playnote 0
screen-h 563
screen-w 731
tempo 76
tmpdir /tmp
twosel 0
v_color white
vel 104
}
# END OF USER SETTINGS
               (
geocities.com/br/hfmlacerda)                   (
geocities.com/br)