Roberto Villari - Vai alla Homepage
Informatico per professione e musicista per diletto
Manuale per chi suona a orecchio
Dynamic Syllabus
Pianoforte a orecchio
Temperamento
Software
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 chitarraMUSICA

Metodo di improvvisazione per chi suona la chitarra ad orecchio

Scarica gratis il Manuale PDF
III edizione, 10/2012
140pp, ISBN 9788891037091


Indice del Manuale
Versione HTML on-line
(I^ Edizione, 2001)
Il Metodo di improvvisazione per chi suona la chitarra ad orecchio è un manuale destinato a chi avverte la necessità di acquisire maggiore familiarità con il proprio strumento e migliorare il proprio stile musicale senza impegnarsi in un percorso di studio "serio" ma semplicemente suonando consapevolmente.
Il manuale illustra 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.

Dynamic Syllabus - Un software per l'analisi armonica

Dynamic Syllabus Dynamic Syllabus è l'implementazione software (applicazione web) dei principi di armonia trattati nel Manuale di Improvvisazione, una sorta di calcolatrice specializzata capace di effettuare l'analisi armonica di qualsiasi accordo o progressione.
L'obiettivo di Dynamic Syllabus è di fornire alle lettrici ed ai lettori del manuale un utile strumento a supporto dello studio e della pratica dell'analisi armonica e dell'armonizzazione, ma anche di descrivere con rigore formale le regole dell'Armonia jazz e di conseguenza il Metodo stesso.

Piano Trainer - Dalla chitarra al pianoforte

Piano Trainer Piano Trainer è un progetto in fase di realizzazione, che ha come obiettivo la definizione di un insieme necessario e sufficiente di posizioni sul pianoforte (pattern) per l'esecuzione di qualsiasi accordo, arpeggio o scala.
Una versione preliminare è già disponibile on-line. Qualsiasi contributo, critica o suggerimento è particolarmente gradito!

Piano Tuning - L'accordatura del pianoforte

Piano Tuning Ho avuto l'opportunità di accordare un pianoforte completamente scordato, e fare così la mia prima esperienza hardware con le note e l'armonia.
Dopo aver approfondito gli aspetti matematici del temperamento equabile, studiato qualche tecnica di accordatura ad orecchio, acquistati gli attrezzi del mestiere (chiave da accordatore e silenziatori) e scaricato un software per l'accordatura, ho affrontato questa titanica e alquanto rischiosa impresa, tenendone traccia sul blog Piano Tuning di questo sito.
Un ringraziamento particolare ad Alfredo Capurso, grande amico ed accordatore professionista, che da anni cura il temperamento del mio pianoforte e mi ha dato modo di vederlo all'opera ed imparare tante cose.

Workshop e Seminari - Preparare la propria improvvisazione

Corsi e Seminari Si organizzano corsi e seminari che propongono il percorso del Metodo di Improvvisazione per chi suona ad orecchio, sviluppando parallelamente elementi teorici (elementi di base del nostro sistema musicale, costruzione di scale ed accordi, sviluppo modale, progressioni, analisi armonica) e pratici (pattern al pianoforte, trucchi mnemonici, scorciatoie).
Al termine del percorso, ogni partecipante sarà in grado di analizzare la struttura armonica di un brano jazz e preparare la propria improvvisazione per una successiva jam session.
metodo per chitarraSOFTWARE

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.

Ogni layer è connesso al layer successivo in modo chiaro e strutturato:
  • Da una parte l'interfaccia tra web server e front-end mediante il suo strato di programmazione .NET
  • Dall'altra l'interfaccia tra un database SQL (MySql, MS-SQL, SQLExpress, Access, o server connesso via ODBC), locale o remoto, e l'applicazione mediante uno strato DAL (Data Access Layer), che funge da proxy alle chiamate al database.
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-documentazione), da essere facilmente adattabile a qualsiasi esigenza applicativa (modello a eventi) e manutenibile, per la sua capacità di customizzazione senza necessità di intervento sul codice generato.

Il codice di AppDeveloper 2.0 offre al bravo programmatore una infrastruttura object oriented customizzabile con relativa semplicità mediante subclassing (estensione/specializzazione delle classi), gestione degli eventi (scatenati dai componenti ASCX), e il layout delle pagine (ambiente di Visual Studio Express).
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.
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