Skip to content

A Bash powered karaoke frontend player, basically a wrapper for backend players (for midi files backend is Timidity)

License

Notifications You must be signed in to change notification settings

vaisarger/bashkaraoke

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

10.1.4

-----------------------------------------------------
-----------------------------------------------------
ENGLISH
-------

Bash!Karaoke version : "10.1.4"

-------



INTRO :
This is my first program developed in PC-BSD, for FreeBSD, but it also works in GNU/Linux.
Basically Bash!Karaoke is a frontend to various karaoke backend players (since 6.0.0 version). 

Midi files are played by Timidity, and lyric text to sing is colored following its 
text events tracing. However, since timidity is launched as true process ( there is no low-level module ) it is possible 
to use its full potential: you can use soundfonts, adjust volume, pitch and tempo, mute any channel you want. 
The only task left to bashkaraoke itself is lyric extraction ( if you choose "internal" way, 
alternately you can use perl script "midi_text24.pl" or "pykar" from "pykaraoke" suite, for this task ). 
Quite luckily, bashkaraoke manages lyric extraction task with no problem, making 
all "lyric extraction -> ( midi playing & text tracing )" entire task performed at best.

Other karaoke file types are waiting a backend player... ;-)

Since version 5.0.0 we are working to add fullscreen feature to program. Finally, since version 10.0.0 the fullscreen feature is finished (thanks to Firefox): "Hyperkar".



CHANGELOG :
- 10.1.4 -> Some minor bug fix especially about GSW (gtkdialog single window) mode and pykar player
- 10.1.1/2/3 -> yad mode nicer, some bug fix
- 10.1.0 -> Hard work on gtkdialog "Single window" mode...
- 10.0.4 -> Some minor bugfixes...
- 10.0.3 -> Hyperkar window title like Xtermkar
- 10.0.1/10.0.2 -> (troubles with Github...)
- 10.0.0 -> .lyrics becomes a fifo, Firefox is the default HTML viewer, "GSW" interface "search in database" feature bug fixed
- 9.0.0 -> Debian compliant
- 8.0.0 -> "bashkar" -> "xtermkar", created "hyperkar" (fullscreen) to use any HTML viewer
- 7.0.0 -> BashKaraoke is housed in GitHub
- 6.0.0 -> backend is modularized: Timidity becomes one of many possible backends, database changed, *OUT (-i option) updates database rows
- 5.9.9 -> *OUT uses play() function in *CORE (no more redundancy), little improvements
- 5.0.0 -> GTK mode added, but still in development
- 4.2.3 -> BUC mode .rc tabs'bug fixed, *COMMON window mode selection bug fixed, option -i in *OUT modified to fix BSD system pipe handling issue (pipe remains freeze) -fixed-
- 4.2.2 -> BUC mode little bug fixing
- 4.2.1 -> "auto binary not found" bug fixed, bk_SMALL.xpm correct, *-INSTALL-UPGRADE little changes
- 4.2.0 -> "Gtkdialog Single Window" mode added (EasyBashGUI v.4.0.1 required)
- 4.1.0 -> gtkdialog "mode" added thanks to EasyBashGUI 3.0.0, midi info, script name change: "bash!karaoke" -> "bashkaraoke"
- 4.0.2 -> libQT BUC/kdialog bug fixed, "BUC" mode player selection improved
- 4.0.1 -> custom menu fields delimiter, "major release" bug fixing
- 4.0.0 -> all functions are now in *COMMON, BUC mode added, "È" character bug fixed, little other changes
- 3.4.1 -> easybashgui_path variable set, Stephen Smally official deb packager
- 3.4.0 -> it needs easybashgui_1.3.0, sourcing redundant checks, iconv bug in timidity's stdout chars fixed
- 3.3.0 -> bash!karaoke & timidity logs, easybashgui automatically installed
- 3.2.0 -> bug fixes, code optimization
- 3.1.0 -> no more "/" in lyric, bug fixes ( especially in "path retrieving" ), database creation quicker
Note for version 3.1.0 : database format is changed, so you have to update your midi database ( sorry ).
- 3.0.0 -> improuved greatly readability!!!
- 2.0.4 -> default columns => 24, fixed old "big bug" #3 ("initial improprerly highlighted characters")
- 2.0.3 -> fixed little bug in db creation, showed pitch in halftones
- 2.0.2 -> fixed 'Ubuntu/no Xdialog' font selection bug
- 2.0.1 -> fixed 'persistent song list' bug
- 2.0.0 -> porting to easybashgui ( min. vers.: 1.2.7 ) , possibility to save song lyric on file, other little improvements
- 1.2.1 -> back to two columns karaoke window & clear_count = 4
- 1.2 -> text tracing improved
         channels window list size enlarged 
- 1.1.1 -> bug "^J" fixed in _CORE
- 1.1 -> bug fixes in _DB and _CORE
- 1.0 -> first public release



DEPENDENCIES :
9 dependencies.
1) EasyBashGUI installed
2) bash vers. 3.x.x
3) xterm
4) timidity
5) gsed =GNUsed 
   ( only for *BSD users: please, install "gsed" port ...)
6) mktemp
7) yad or gtkdialog or Xdialog or kdialog or zenity or (c)dialog
8) X windows up and running
9) Firefox or an other browser for "Hyperkar"...



INSTALLATION :
Type in a terminal:
>tar -xzvf bashkaraoke_X.X.X.tar.gz
>cd ./bashkaraoke_X.X.X
>chmod 755 ./bashkaraoke-INSTALL-UPGRADE
>sudo ./bashkaraoke-INSTALL-UPGRADE
__That's it !__

You can launch Bash!Karaoke typing in a terminal:
>bashkaraoke
Otherwise, if you want only the bare player:
>hyperkar <midi file>(opt.)
or
>xtermkar <midi file>(opt.) ( -not fullscreen- )



USE :
Bash!Karaoke is four programs:
1) bashkaraoke-gtk ( fullscreen interface ) -obsolete-
2) bashkaraoke ( songs database manager, player configurator & frontend -not fullscreen- )
3) hyperkar ( the bare "player" -fullscreen- )
4) xtermkar ( the bare "player" -not fullscreen- )
5) bk-extractor ( it extracts song lyric )

First of all, launch bashkaraoke, you will see the main menu. 
Before to sing, you have to configure the player a little  :-P  ... 
- Note: all player settings are in ~/.bashkaraoke/.bashkaraoke.rc -

 
After that, you would configure "Apparence..." -> "Windows...". There are 4 windows available: 
"Karaoke" "Levels" "Channels" "Spectrogram". You can choose, for each window, if you want display it or not . 
- Note: "Levels" and "Channels" windows are not on screen together at same time -

After that, you would configure "Misc..." -> "Song language..." 
and "Misc..." -> "Character encoding..." 
to enable your language special characters correct displaying. 

There are many configurations in bashkaraoke... you only have to try.
Ok. After all configuration is done, go back to main menu and select "UPDATE database...", 
choose your midi directory, and wait for database creation. 
Now, every time you start bashkaraoke you can choose "SEARCH in database...", 
select desired song and sing !!!!!

How searching in database?
You can search title, artist, or both. 
E.g., if you want "Let It Be" ( Beatles ),
in input field you can write: "Let It Be", or "let it be", or "l i e", 
or "beatles", or "Beatles let it be", or " ea les l b " ...
Cool, isn't it? ;-)



BUGS :
Four limitations/bugs:
1) no way to play karaoke mp3s: we need a backend player... you would use pykararoke for this kind of karaoke files ;
2) sometimes 1 next character after a "sung" phrase is improprerly highlighted (if char is not english) ;
3) in "dialog" mode, midi database searching and "levels" window don't work ;
4) in "BUC" mode, midi database search is not automatically played : you have to manually copy it in "PLAY this file -->" text input field, then select player ;



THANKS :
1) my wife Angela and my children Nicole and Carlo for patience and testing ...
2) Davide Depau/Davideddu from Ubuntu forum (it) for his python/webkit "browser embedded" ...
3) Giuseppe Cappuccio for its wonderful artwork ( icons and graphics ) ...
4) Mendel Cooper for Advanced Bash Scripting: thank you Mendel, your work it's all my knowledge ...
5) Izumo Masanao and all timidity people because bashkaraoke needs a backend, and timidity is great ...
6) Thierry Godefroy and all Xdialog, kdialog, zenity and cdialog authors for giving scripters possibility to make their scripts nicer and functionals ...
7) Chet Ramey and all bash people for keeping on improving this powerful shell ...
8) Thomas E. Dickey and all xterm people for their good work and philanthropy ...
9) Paolo Bonzini and all GNU sed people for their good work and philanthropy ...
10) Todd C. Miller and all mktemp people for their good work and philanthropy ...
11) All PC-BSD, FreeBSD, GNU and Linux people for their good work and philanthropy ...
12) [email protected] for giving us possibility to play our song midis at best...
13) Alessio del Trecco for tutorial (in Italian), ideas and support ...
14) Paolo e Carlotta Valcepina for appreciation, encouragement and testing ...
15) Stephen Smally/Stefocefo from Ubuntu forum (it) for .deb package creation and python version work ...
16) Maxbigsi from Ubuntu Forum (it) for testing and ideas ...
17) Matteo Avalle and Valerio Billera for their nice interface "BUC"...
18) Thunor for his nice interface "Gtkdialog"...
19) GitHub for housing B!K project...
20) Stefano Di Vito for Javascript files, without them HTML player would not work...



LINKS :
1) this is my site => http://sites.google.com/site/vaisarger
2) "EasyBashGUI" library for scripts => http://sites.google.com/site/easybashgui
3) Giuseppe Cappuccio's site ( he's a great Web designer ) => http://www.cgmsoft.com
4) Mendel cooper's site ( a site for brainy people ) => http://personal.riverusers.com/~thegrendel/
5) timidity => http://timidity.sourceforge.net
6) Xdialog => http://xdialog.free.fr
7) Bash => http://cnswww.cns.cwru.edu/php/chet/bash/bashtop.html
8) Xterm => http://invisible-island.net/xterm/xterm.html
9) GNU Sed => http://www.gnu.org/software/sed/
10) Mktemp => http://www.courtesan.com/mktemp/mktemp.html
11) PC-BSD => http://www.pcbsd.org
12) FreeBSD => http://www.freebsd.org
13) GNU Project => http://www.gnu.org
14) Linux => http://www.linux.org
15) PyKaraoke => http://www.kibosh.org/pykaraoke/
16) Free sound fonts !!!!!!!!!!!! => http://www.personalcopy.com
17) Stephen Smally Sourceforge projects page => http://sourceforge.net/users/stephen-smally
18) Davide Depau Blog => http://zerosw.altervista.org
19) BUC => http://buc.billeragroup.net
20) Gtkdialog => http://code.google.com/p/gtkdialog




-----------------------------------------------------
-----------------------------------------------------
ITALIANO
-------

Versione di Bash!Karaoke : "10.1.4"

-------



INTRODUZIONE :
Questo e' il mio primo programma sviluppato in PC-BSD, per FreeBSD, ma funziona anche con GNU/Linux.
Fondamentalmente Bash!Karaoke e' un frontend a vari players karaoke di backend (dalla versione 6.0.0).

I files midi sono suonati da Timidity, e il testo della canzone da suonare
e' colorato seguendo la sua tracciatura del testo. In ogni caso, dal momento che Timidity e' lanciato come processo vero e proprio
( non c'e' alcun modulo di basso livello ) e' possibile usare tutte le sue potenzialita': puoi usare i soundfonts, 
cambiare il volume, il tono ed il tempo della canzone, silenziare qualsiasi canale che vuoi. 
L'unica funzione lasciata giusto a bashkaraoke stesso e' l'estrazione del testo 
( se scegli il modo "internal", in alternativa puoi usare lo script perl "midi_text24.pl" oppure "pykar" della suite di "pykaraoke" 
per quella funzione ). Per fortuna, bashkaraoke gestisce la funzione di estrazione del testo senza problemi, rendendo cosi'
tutto l'intero processo: "estrazione del testo  -> ( riproduzione del midi & tracciatura del testo )" eseguito al meglio.

Gli altri tipi di files karaoke stanno aspettando un backend player... ;-)

Dalla versione 5.0.0 esiste la funzionalità fullscreen al programma (in sviluppo). Alla fine, dalla versione 10.0.0 la funzionalità fullscreen è finita (grazie a Firefox): "Hyperkar".


CHANGELOG :
- 10.1.4 -> Qualche bug fix sopratutto nel modo GSW (gtkdialog single window) ed il player pykar
- 10.1.1/2/3 -> Modo yad più bello, qualche bug fix
- 10.1.0 -> Grosso lavoro sul modo gtkdialog "Single window"...
- 10.0.4 -> Piccoli bug fix...
- 10.0.3 -> Titolo finestra di Hyperkar come Xtermkar
- 10.0.0 -> .lyrics diventa fifo, Firefox è il visualizz. HTML di default, risolto bug nella funz. "cerca nel database" dell'interfaccia "GSW"
- 9.0.0 -> conforme alla politica di Debian
- 8.0.0 -> "bashkar" -> "xtermkar", creato "hyperkar" (fullscreen) per usare qualsiasi visualizzatore HTML
- 7.0.0 -> BashKaraoke è ospitato in GitHub
- 6.0.0 -> il backend e' modularizzato: Timidity diventa uno dei tanti backends possibili, il database e' cambiato, *OUT (opzione -i) aggiorna le righe del database 
- 5.9.9 -> *OUT usa la funzione play() nel *CORE (non c'e' piu' ridondanza), piccoli miglioramenti
- 5.0.0 -> aggiunto il modo GTK, ma è ancora in sviluppo
- 4.2.3 -> risolto il bug della tabulazione nel file .rc nel modo BUC, risolto il bug della selezione del modo in *COMMON (presente solo quando la lingua era "Inglese"), opzione -i nel file *OUT modificata per risolvere il problema del sistema BSD nella gestione delle pipes (la pipe rimane bloccata) -risolto-
- 4.2.2 -> piccolo bug fixing nel modo BUC
- 4.2.1 -> risolto bug "auto binary not found", bk_SMALL.xpm corretta, *-INSTALL-UPGRADE piccole modifiche
- 4.2.0 -> aggiunto modo "Gtkdialog Single Window" (richiede EasyBashGUI v.4.0.1 minimo)
- 4.1.0 -> aggiunto gtkdialog come "modo" grazie a EasyBashGUI 3.0.0, info del midi, cambio di nome dell'eseguibile: "bash!karaoke" -> "bashkaraoke"
- 4.0.2 -> risolto il bug relativo a libQT tra BUC e kdialog, selezione del player in "BUC" mode migliorata
- 4.0.1 -> delimitatore dei campi menu personalizzato, risoluzioni di bug "major release"
- 4.0.0 -> tutte le funzioni sono ora nel file *COMMON, aggiunto il modo BUC, risolto il bug del carattere "È", piccoli altri cambiamenti
- 3.4.1 -> variabile easybashgui_path settata, pacchettizzatore deb ufficiale Stephen Smally 
- 3.4.0 -> ha bisogno di easybashgui_1.3.0, controlli ridondanti del sourcing, bug iconv nei caratteri stdout di timidity risolto
- 3.3.0 -> log di bash!karaoke e di timidity, easybashgui automaticamente installata
- 3.2.0 -> risoluzione di bugs, ottimizzazione del codice
- 3.1.0 -> non piu' "/" nel testo delle canzoni, risoluz. di bugs ( sopratutto nell' "associazione del path" ), creaz. database piu' veloce
Nota per la versione 3.1.0 : il formato del database e' cambiato, quindi devi aggiornare il tuo database dei midi (mi dispiace).
- 3.0.0 -> migliorata grandemente la leggibilita'!!!
- 2.0.4 -> colonne di default => 24, risolto il vecchio 'grande bug' n°3 ("initial improprerly highlighted characters")
- 2.0.3 -> risolto piccolo bug nella creazione del db, mostrata indicazione del tono in semitoni
- 2.0.2 -> risolto il bug di selezione del font nei sistemi 'Ubuntu/no Xdialog'
- 2.0.1 -> risolto il 'persistent song list' bug
- 2.0.0 -> modifiche per l'uso di EasyBashGUI ( min. vers.: 1.2.7 ) , possibilita' di salvare il testo della canzone su file, altri piccoli miglioramenti
- 1.2.1 -> ritorno alla finestra karaoke a due colonne & clear_count = 4
- 1.2 -> tracciatura del testo migliorata
         dimensione della lista nella finestra "channels" allargata
- 1.1.1 -> bug "^J" risolto in _CORE
- 1.1 -> risoluzioni di bugs in _DB e in _CORE
- 1.0 -> primo rilascio pubblico



DIPENDENZE :
Nove dipendenze.
1) EasyBashGUI installato e linkato
2) bash vers. 3.x.x
3) xterm
4) timidity
5) gsed =GNUsed 
   ( solo per gli utenti *BSD : per favore, installate il port "gsed" ... )
6) mktemp
7) yad oppure gtkdialog oppure Xdialog oppure kdialog oppure zenity oppure (c)dialog
8) X windows in esecuzione e funzionante
9) Firefox o un altro browser per "Hyperkar"...


INSTALLAZIONE :
Digita in un terminale:
>tar -xzvf bashkaraoke_X.X.X.tar.gz
>cd ./bashkaraoke_X.X.X
>chmod 755 ./bashkaraoke-INSTALL-UPGRADE
>sudo ./bashkaraoke-INSTALL-UPGRADE
(Dalla vers. 3.4.1 e' disponibile un pacchetto deb: potresti voler usare quello se sei un utente Debian/Ubuntu ...)

Puoi lanciare Bash!Karaoke digitando in un terminale:
>bashkaraoke
Altrimenti, se vuoi giusto il semplice player :
>hyperkar <midi file>(opt.)
oppure
>xtermkar <midi file>(opt.) ( -not fullscreen- )



USO :
Bash!Karaoke consta di quattro programmi:
1) bashkaraoke-gtk ( interfaccia fullscreen ) -obsoleto-
1) bashkaraoke ( gestore del database delle canzoni, configuratore del lettore & frontend del lettore -non fullscreen- )
3) hyperkar ( il semplice "lettore" -fullscreen- )
4) xtermkar ( il semplice "lettore" -non fullscreen- )
5) bk-extractor ( estrae il testo delle canzoni )

Prima di tutto, lancia bashkaraoke, vedrai il menu principale. 
Prima di buttarti subito a cantare, devi configurare il lettore un po' :-P ... 
- Nota: tutti i settaggi del lettore sono nel file ~/.bashkaraoke/.bashkaraoke.rc -

Dopo di cio', potresti voler configurare "Estetica..." -> "Finestre...". Ci sono 4 finestre disponibili: 
"Karaoke" "Livelli" "Canali" "Spettrogramma". Puoi scegliere, per ciascuna, se vuoi mostrarla a schermo o no. 
- Nota: le finestre "Livelli" e "Canali" non sono presenti a schermo contemporaneamente -

Dopo cio', potresti voler configurare "Varie..." -> "Lingua delle canzoni..." e "Varie..." -> "Codifica dei caratteri..." 
per abilitare una corretta visualizzazione dei caratteri speciali della lingua italiana. 

Ci sono molte configurazioni possibili in bashkaraoke... devi solo provare. 

Ok. Dopo che tutto e' stato stato configurato, torna al menu principale e seleziona 
"AGGIORNA il database...", scegli la cartella in cui ci sono i tuoi midi, 
e aspetta che sia finita la creazione del database delle canzoni. 
Da ora in poi, ogni volta che avvii bashkaraoke puoi scegliere la voce "RICERCA il midi nel database...", 
selezionare la canzone desiderata, e cantare !!!!!

Come si cerca una canzone?
Puoi cercarla per titolo, artista, o tutt'e due. 
P.es., se vuoi cercare "Let It Be" dei Beatles,
nel campo di input puoi scrivere: "Let It Be", oppure "let it be", oppure "l i e", 
cosi' come "beatles", oppure "Beatles let it be", oppure " ea les l b " ...
Figo, no? ;-)



BUGS :
Quattro limiti/bugs:
1) non e' possibile suonare gli mp3 karaoke: abbiamo bisogno di un player di backend... puoi usare pykararoke per quel tipo di file karaoke ;
2) a volte 1 carattere successivo ad una frase "cantata" (se il carattere e' internazionale) e' impropriamente colorato ;
3) nel modo "dialog", la ricerca nel database dei midi e la finestra "livelli" non funzionano ; 
4) nel modo "BUC", il risultato della ricerca nel database dei midi non e' suonato automaticamente: bisogna copiarlo manualmente nel campo di input testuale "SUONA questo file -->" e poi selezionare il player ;



RINGRAZIAMENTI :
1) mia moglie Angela ed i miei figli Nicole e Carlo per la pazienza e le prove ...
2) Davide Depau/Davideddu del forum di Ubuntu (it) per il "browser embedded" python/webkit ...
3) Giuseppe Cappuccio per il suo meraviglioso lavoro artistico ( icone e disegni ) ...
4) Mendel Cooper per Advanced Bash Scripting: grazie Mendel, il tuo lavoro e' tutto il mio sapere ...
5) Izumo Masanao e tutta la gente legata a timidity perche' bashkaraoke ha bisogno di un backend, e timidity e' troppo forte ...
6) Thierry Godefroy e tutti gli autori di Xdialog, kdialog, zenity e cdialog per dare ai programmatori della shell la possibilita' di rendere i loro scripts piu' belli e funzionali ...
7) Chet Ramey e tutta la gente legata a bash per continuare a migliorare questa potente shell ...
8) Thomas E. Dickey e tutta la gente legata a xterm per il loro buon lavoro e la filantropia ...
9) Paolo Bonzini e tutta la gente legata a GNU sed per il loro buon lavoro e la filantropia ...
10) Todd C. Miller e tutta la gente legata a mktemp per il loro buon lavoro e la filantropia ...
11) tutta la gente legata a PC-BSD, FreeBSD, GNU e Linux per il loro buon lavoro e la filantropia ...
12) [email protected] per darci la possibilita' di suonare le nostre canzoni midi al meglio...
13) Alessio del Trecco per la guida in Italiano, le idee ed il supporto ...
14) Paolo e Carlotta Valcepina per la stima, l'incoraggiamento ed il testing ...
15) Stephen Smally/Stefocefo del forum di Ubuntu (it) per la creazione del pacchetto .deb ed il lavoro per la versione python...
16) Maxbigsi del forum di Ubuntu (it) per il testing e le idee ...
17) Matteo Avalle e Valerio Billera per la graziosa interfaccia "BUC"...
18) Thunor per la graziosa interfaccia "Gtkdialog"...
19) GitHub per ospitare il progetto B!K...
20) Stefano Di Vito per i files in Javascript, senza i quali il lettore HTML non funzionerebbe...



LINKS :
1) questo e' il mio sito => http://sites.google.com/site/vaisarger
2) libreria "EasyBashGUI" per gli scripts => http://sites.google.com/site/easybashgui
3) il sito di Giuseppe Cappuccio ( e' un grande Web designer ) => http://www.cgmsoft.com
4) il sito di Mendel cooper ( per gente che ha cervello ) => http://personal.riverusers.com/~thegrendel/
5) timidity => http://timidity.sourceforge.net
6) Xdialog => http://xdialog.free.fr
7) Bash => http://cnswww.cns.cwru.edu/php/chet/bash/bashtop.html
8) Xterm => http://invisible-island.net/xterm/xterm.html
9) GNU Sed => http://www.gnu.org/software/sed/
10) Mktemp => http://www.courtesan.com/mktemp/mktemp.html
11) PC-BSD => http://www.pcbsd.org
12) FreeBSD => http://www.freebsd.org
13) GNU Project => http://www.gnu.org
14) Linux => http://www.linux.org
15) PyKaraoke => http://www.kibosh.org/pykaraoke/
16) Font sonori gratuiti !!!!!!!!!!!! => http://www.personalcopy.com
17) i progetti di Stephen Smally ospitati da Sourceforge => http://sourceforge.net/users/stephen-smally
18) il blog di Davide Depau => http://zerosw.altervista.org
19) BUC => http://buc.billeragroup.net
20) Gtkdialog => http://code.google.com/p/gtkdialog


-----------------------------------------------------

Vittorio Cagnetta
[email protected]

Davide Depau
[email protected]

-----------------------------------------------------

About

A Bash powered karaoke frontend player, basically a wrapper for backend players (for midi files backend is Timidity)

Resources

License

Stars

Watchers

Forks

Packages

No packages published