Roberto Villari - Vai alla Homepage
Informatico per professione e musicista per diletto
Manuale per chi suona a orecchio
Dynamic Syllabus
Piano Trainer
Piano Tuning
AppDeveloper
Login
Alle zone privilegiate, private, dei "copyright" bisognerà opporre delle zone generose, di distribuzione dell'informazione, che serviranno la distribuzione gratuita delle idee, indirizzata soprattutto verso le scuole, verso l'educazione in senso lato, verso i paesi in via di sviluppo, mediante le azioni necessarie a ridurre le distanze tra gli "have" e gli "have not", tra chi ha e chi non ha, tra gli info-ricchi e gli info-poveri. Queste azioni potrebbero appoggiarsi su un aspetto del diritto d'autore e del diritto morale di proprietà, concetto molto interessante della giurisprudenza anglosassone, che è il diritto di "fair use": un diritto che non è dell'autore, ma del lettore, non del proprietario dell'opera, ma dell'utente, perché bisogna pensare anche al bene comune e il bene comune esige che si protegga non soltanto il diritto degli autori, ma anche quello degli utenti.    (Philippe Queau, da un discorso pronunciato all'European IT Forum di Parigi del 1995)
metodo per chitarraMetodo di improvvisazione per chi suona la chitarra ad orecchio
La musica è la mia passione da sempre, in particolare il rock tra fine '60 ed inizio '80, ed il jazz, ascoltato e suonato.

Tranne qualche sporadica lezione di musica, sono sostanzialmente un autodidatta che suona ad orecchio. Ho iniziato con la chitarra, ma a metà degli anni '90 ho ricevuto in regalo un pianoforte, e da quel momento la chitarra è rimasta appesa al chiodo. Non potendo "chiuderla così", ho deciso di mettere insieme i miei appunti e le conoscenze maturate, e di realizzare un manuale per chi come me avverte costantemente la necessità di approfondire la propria conoscenza, acquisire una maggiore familiarità con il proprio strumento e migliorare il proprio stile musicale, senza impegnarsi in un percorso di studio "serio" ma semplicemente suonando consapevolmente.

Nel 2001 è nato il primo "Metodo per chi suona la chitarra ad orecchio"; successivamente il metodo è stato ampliato con nuove parti e reimpaginato in PDF per consentire una stampa di qualità del manuale, fino ad arrivare nel 2011 alla sua quarta ed ultima edizione. Il manuale è gratuito, offerto su Internet nello spirito della condivisione del sapere. Il manuale presenta la teoria dell’armonia musicale e la tecnica di esecuzione di scale e accordi alla chitarra in una forma semplice e allo stesso tempo entusiasmante. Sarà sufficiente memorizzare poche posizioni, alcune delle quali probabilmente già sperimentate ad orecchio dal lettore, per ottenere una soddisfacente padronanza della tastiera. Teoria e pratica sono esposte in parallelo, cioè ad ogni argomento teorico trattato vi è un corrispondente sviluppo nella pratica alla chitarra. Questa impostazione consente al lettore di comprendere la tecnica a partire dalla teoria, ma anche viceversa, comprendere la teoria a partire dalla pratica.

La parte teorica inizia con le note e gli intervalli, i mattoni della musica, per poi passare alle scale e agli accordi, che come si vedrà sono in fondo la stessa cosa; acquisite le nozioni di base, si procede con la tecnica dello sviluppo modale delle scale, le progressioni, le scale pentatoniche. Questo bagaglio è sufficiente per comprendere i meccanismi su cui si basa l'armonia musicale in generale e l'improvvisazione in particolare; segue quindi una parte sulla tonalità minore e sulle scale diminuite, una parte sull'analisi armonica, fino ad arrivare ad elementi di armonizzazione-riarmonizzazione. Va da sé che la parte teorica non riguarda la chitarra in particolare, ma pressoché qualsiasi strumento a corda o a fiato, compreso il canto. Infatti, il "Manuale per chi suona la chitarra ad orecchio" è la mia guida personale per il mio studio del pianoforte!
Dynamic SyllabusDynamic Syllabus
Dynamic Syllabus è un progetto avviato all'inizio del 2013 e nato nel contesto del Metodo di improvvisazione musicale per chi suona la chitarra ad orecchio, con l'obiettivo di fornire alle lettrici ed ai lettori del manuale un utile strumento per l'analisi armonica e l'armonizzazione. Si tratta della implementazione in un software dei principi di armonia trattati nel Manuale.
» Dynamic Syllabus per chi studia:
E' un utile supporto didattico, che facilita lo studio al lettore del Metodo per chi suona ad orecchio, perché:
- Affianca le illustrazioni del Manuale (solitamente espresse in DO) con tavole sinottiche costruite al volo in qualsiasi tonalità e grado.
- Mostra i risultati della applicazione della tecnica di analisi descritta nel Manuale, a partire da accordi e progressioni qualsiasi.
- Consente di verificare la comprensione durante lo studio, usando il Dynamic Syllabus come semplice "calcolatrice specializzata" per fare conti e ragionamenti su note, intervalli, accordi, scale e tonalità.
» Dynamic Syllabus per chi improvvisa o arrangia musica:
E' uno strumento che facilita il compito di chi desidera analizzare ed armonizzare accordi e progressioni, ed in generale improvvisare con scale ed accordi. A partire da una sequenza di accordi, Dynamic Syllabus effettua le analisi delle progressioni con sufficiente dettaglio da dare un quadro interpretativo chiaro, sia per l'improvvisazione che per l'armonizzazione.
» Dynamic Syllabus per chi vuole approcciare al pianoforte:
Traduce un qualsiasi accordo (espresso con la simbologia standard del RealBook, e quindi del "Metodo per chi suona ad orecchio") o una qualsiasi scala in forma grafica, in termini di posizioni sulla tastiera del piano. Ciò consente di capire come suonare scale ed accordi senza necessariamente conoscere le note che li compongono.
 
Altri progetti musicali
Piano Trainer è un progetto in fase di realizzazione, che ha come obiettivo la definizione di diteggiature sul pianoforte (pattern) per l'esecuzione di accordi, arpeggi e scale.
Una versione preliminare è già disponibile on-line. Qualsiasi contributo, critica o suggerimento è particolarmente gradito!

Ho l'opportunità di accordare un pianoforte completamente scordato, e fare così la mia prima esperienza di accordatura. Alfredo Capurso, accordatore professionista che cura il temperamento del mio pianoforte da anni, mi ha dato modo di vederlo all'opera molte volte ed imparare tante cose. Ho aggiunto uno studio teorico (da autodidatta, ovviamente) per fissare le idee sugli aspetti matematici del temperamento equabile e conoscere qualche tecnica di accordatura ad orecchio. Ho acquistato gli attrezzi del mestiere (chiave da accordatore e silenziatori), un software per l'accordatura, ho fatto alcune regolazioni sulle caviglie del mio pianoforte, ed ora sono pronto per affrontare questa impresa.
Per chi fosse interessato, tengo traccia di questa esperienza nel blog "Piano Tuning" di questo sito.
 
AppDeveloper 2.0
AppDeveloper è un progetto concepito per realizzare strumenti a supporto delle attività di sviluppo di applicazioni web-based.
E' l'evoluzione di numerosi generatori di codice realizzati durante la mia attività di programmazione: dalla prima versione per dBase-III/Clipper (progetto Autos, 1986), successivamente reingegnerizzato per generare applicazioni ASP/VBScript (progetto CodeGen, 1996), e quindi interamente riscritto per lo sviluppo in ASP.NET/C# (AppDeveloper, 2003).
La versione 2.0 di AppDeveloper è il risultato di un profondo processo di revisione finalizzato a realizzare una più coerente e razionale architettura ad oggetti.
Il codice generato con AppDeveloper 2.0 è capace di offrire al bravo programmatore una infrastruttura object oriented adattabile con facilità alle esigenze applicative mediante il subclassing (estensione/specializzazione delle classi), la gestione degli eventi scatenati dai componenti ASCX, e il layout delle pagine.
» Generazione di codice ASP.NET/C#
Sviluppa la tua applicazione con il servizio on-line di generazione di codice ASP.NET/C#. E' sufficiente definire uno script SQL per la generazione delle tabelle database per ottenere una applicazione completa per la consultazione e l'aggiornamento. Il codice è pronto per il naturale adattamento ai requisiti del sistema da sviluppare (layout di pagina, nuove funzionalità, gestione eventi, riutilizzo componenti, ecc.), senza necessità di modifica del codice generato (classi base).
» Best practices
Il software generato è ingegnerizzato secondo le più importanti best practices di programmazione object oriented, in modo da essere rapidamente comprensibile a qualsiasi programmatore esperto (auto-documentante), da essere facilmente adattabile a qualsiasi esigenza specifica (modello a eventi) e manutenibile, per la sua capacità di customizzazione senza necessità di intervento sul codice generato.
» Formazione
La realizzazione di applicazioni web riguarda spesso la gestione di dati. Le conoscenze dei sistemi relazionali di dati, della programmazione ad oggetti, delle best practices e delle basi dell'ingegneria del software, è un bagaglio che un qualsiasi programmatore esperto dovrebbe possedere. Se si intende far crescere uno staff di programmatori è necessario definire un percorso coerente e trasferire know-how avanzato, per sviluppare le capacità di realizzazione di applicazioni complesse e di qualità.
» Gruppo di sviluppo
La versione 2.0 di AppDev non è ancora pronta per essere condivisa. Ma chi utilizza codice generato da AppDev generalmente crea anche nuovi componenti e estensioni di utilità generale, se realizzati a regola d'arte e sottoposti al gruppo di sviluppo (in fase di creazione)  possono venire integrati nelle successive versioni delle librerie AppDev.
Single Sign On Project
Nei siti web e nelle applicazioni web-based, notoriamente state-less, l’autenticazione dell’utente avviene generalmente memorizzando un cookie nel browser.
Quando l’utente richiede una pagina ad un sito, il browser invia al server tutti e soli i cookies memorizzati dallo specifico server, consentendogli di verificare se il browser, e quindi l'utente, è stato già autenticato.
Nel caso si volesse condividere gli utenti tra più applicazioni è sufficiente centralizzare i dati degli utenti (username e password) su un unico database ed implementare il meccanismo di autenticazione mediante query sul db dirette o mediate da un web service. Rimane però il fatto che l’utente deve comunque effettuare un login per ogni sito che visita. Se si desidera che l’utente si possa loggare sul primo sito visitato e che possa risultare automaticamente loggato anche nei restanti siti, è necessario implementare un sistema di “Single-Sign-On” (SSO).
Qui si trova il codice per il server SSO ed il codice per siti "client" su piattaforma IIS 7. Il server SSO non richiede che i siti client siano in piattaforma IIS. La documentazione tecnica disponibile illustra come implementare il codice necessario a qualsiasi sito per partecipare alla rete SSO.
Cubo di RubikLego EV3 Mindstorms
Per quanto complesso possa essere un software gestionale, si tratta quasi sempre della implementazione di un algoritmo che prende input dall'utente (tastiera/mouse) e produce un output per l'utente (video/stampante).
Dopo tanti anni di programmazione di questo tipo, per caso ho iniziato a giocherellare con Lego EV3, una interessante tecnologia Lego per realizzare robot, e mi sono imbattuto in un contesto completamente differente: l'algoritmo prende "stimoli" dall'ambiente esterno (sensori), tipicamente analogico e spesso casuale, e agisce con un comportamento nello spazio e nel tempo (motori). Non più mouse e tastiera, non più video e stampante: insomma, non più interazione con l'utente ma con l'ambiente circostante, in cui l'utente può esserci (ad esempio il robot ti cerca per casa e poi ti saluta) o non esserci (ad esempio alle prime luci dell'alba il robot si porta in cucina).
Non si tratta di realizzazioni di particolare utilità, però la soddisfazione per un programmatore "tradizionale" è tanta nel realizzare questi comportamenti, semplici ma allo stesso tempo complessi; ovviamente si tratta di un gioco, ma che consente di affrontare problemi di meccanica su piccola scala (modellazione) che possono comunque essere poi realizzati come veri e propri sistemi di automazione industriale.
Si tratta di una macchina RISC che si può programmare in C...
A parte questo però, sono certo che Lego EV3 Mindstorms rappresenta un modo per insegnare ai bambini l'arte della programmazione: si tratta infatti delle solite strutture dati e dei soliti comandi -operazioni logiche e algebriche, if, input (sensori), output (attuatori)- ma finalizzati a movimenti e comportamenti di un giocattolo. Inoltre la programmazione avviene in un ambiente esclusivamente grafico: è quindi sufficiente sapere leggere, scrivere e, in certa misura, far di conto.
Chi volesse approfondire la questione, ecco qualche link:
Lego Mindstorms
Bricx By SourceForge
EV3 Tutorial
Run your first C program for EV3
Sourceforge.net Bricx - Free software download
NXC Tutorial

Cubo di RubikRubik's Cube
Esistono numerose soluzioni per sistemare un Cubo Magico, che in generale tendono a ottimizzare le mosse per terminare nel più breve tempo possibile.

Questa soluzione ottimizza invece il numero di mosse che occorre memorizzare per arrivare all'obiettivo di sistemare il cubo. Si tratta di una soluzione completa per il Cubo di Rubik, a partire da una qualsiasi posizione. A parte alcune mosse iniziali elementari ed intuitive, è necessario memorizzare solo 8 mosse per la soluzione del Cubo!
Roberto Villari, Roma - info@robertovillari.eu