Python su Android

Su un tablet o su uno smartphone equipaggiati con Android è possibile lavorare con il linguaggio di programmazione Python; lavorare nel senso di avere a disposizione la shell di Python e di poter eseguire script Python archiviati sul dispositivo.
Mi si chiederà: per farci che cosa?
Nel mio caso, oltre che per eseguire programmi di calcolo di varia natura da me prodotti (calcoli finanziari, calcoli statistici, calendario perpetuo, ecc.), anche per poter accedere con facilità a database Sqlite (ricordo che Sqlite è integrato nel sistema Android) dove ho catalogato tutte le mie raccolte musicali e di biblioteca, con il vantaggio, tra i tanti, che, potendo controllare istantaneamente sullo smartphone le opere di un certo autore che già posseggo non corro il rischio di acquistare doppioni quando sono in giro per negozi.
Al di là di tutto ciò sta comunque la soddisfazione di poter creare qualche cosa che funzioni persino su un telefonino, divertendosi con quello splendido linguaggio di programmazione che è Python.

Per fare queste cose dobbiamo innanzi tutto procurarci l’applicazione sl4a (scripting layer for android) che è la piattaforma sulla quale possiamo far girare i nostri script. Si dice in giro che questa applicazione sia diventata incompatibile con Android a partire dalla versione 5.0 (Lollipop): non mi pare, visto che su un mio emulatore con Android 5.0.1 (API 21) funziona benissimo. L’ultima versione dell’applicazione, la sl4a_r6 si trova qui.
Dobbiamo poi procurarci l’applicazione Python for Android, che ci consente di installare l’interprete Python. L’ultima versione, Python3ForAndroid_r6 si trova qui.
Entriamo così in possesso dei file sl4a_r6.apk e Python3ForAndroid_r6.apk che dobbiamo installare, nell’ordine, sul nostro dispositivo. Per l’installazione di sl4a è necessario che il dispositivo sia corredato di una SDCard sulla quale verrà automaticamente creata una directory per ospitare gli script.
Con collegamento internet attivo lanciamo l’applicazione Python for Android e, dal menu che compare, scegliamo Installa: dopo qualche minuto di scaricamento, scompattamento e installazione avremo il nostro Python sul dispositivo e lanciando l’applicazione sl4a troveremo elencati gli script Python che si sono installati per dimostrazione ed ai quali potremo aggiungere tutti quelli che produrremo noi.
L’allegato file PDF, scaricabile e stampabile, costituisce un utile prontuario sul funzionamento dell’applicazione sl4a.

sl4a

La resurrezione del Pascal

Il 22 aprile 2015 è stata rilasciata la versione 1.4 di Lazarus.
Il progetto Lazarus è nato nel 1999 dalle ceneri di un precedente progetto di clonazione del compilatore Delphi che la Borland aveva messo sul mercato per l’utilizzo del linguaggio Pascal. E’ stato chiamato Lazarus appunto perché proviene dalla resurrezione di un progetto che era defunto.
Conosco precedenti versioni di Lazarus, che già considero perfette: chissà quest’ultima!
Ma il pregio maggiore del progetto sta nel mantenere di attualità e alla portata di tutti (siamo nel software libero) un ottimo linguaggio di programmazione come il Pascal, che Niklaus Wirth e Kathleen Jénsen crearono nel 1970 (due anni prima che Dennis Ritchie creasse il linguaggio C) a scopo didattico.
Wirth era infatti un insegnante di informatica e creò il Pascal per insegnare le basi della programmazione strutturata, forse senza accorgersi che così aveva creato anche qualche cosa che andava ben oltre gli scopi didattici: gran parte dei primi sistemi operativi per il Macintosh e per Microsoft Windows sono stati scritti in Pascal.
Per sapere tutto sul Pascal e su Lazarus basta andare su http://www.lazaruspascal.it/, dove si trova anche una serie di tutorial in italiano per imparare il Pascal.

Lazarus è attrezzato per produrre programmi a riga di comando e programmi dotati di ricca interfaccia grafica.
Essendo basato su Free Pascal, che deriva dal Turbo Pascal della Borland, Lazarus può anche utilizzare la unit Crt, che consente di creare programmi a riga di comando con qualche ingentilimento da formattazione e colori. Per certi programmi di utilità può andare benissimo, anzi, per quanto mi riguarda, può andare meglio di programmi con interfaccia grafica dispersiva e laboriosa da creare.
Per usare la unit Crt occorre aggiungerla in questo modo nella sezione uses della traccia di programma che Lazarus ci propone nel suo editor per un Progetto di Programma

uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes, Crt
{ you can add units after this };

Funzioni e sintassi per utilizzare la unit Crt si trovano in http://www.freepascal.org/docs-html/rtl/crt/index-5.html.

Un esempio di programma di questo tipo è quello che si trova nei link qui sotto. Si tratta di un mio divertimento di calendario perpetuo in gran parte basato sulle Formule astronomiche per calcolatori di Jean Meeus.
Programma calendario:
source_pascal
eseguibile_linux (da rendere eseguibile dopo scaricamento con chmod 555)
eseguibile_windows

Buon divertimento con Pascal e Lazarus.

Software libero

Per approfondire la filosofia del software libero, basta consultare le voci “software libero”, “gnu gpl” e “linux” su Wikipedia.
Visto, però, che ho intenzione di presentare programmi di software libero che servono a fare tante cose, voglio dire qualche cosa anch’io sul software libero in generale.
La dizione “software libero”, al di là delle sofisticate distinzioni che si possono fare tra software libero e software open source, allude a quei programmi per computer che si possono scaricare liberamente da Internet o avere da un amico senza andare incontro ad alcuna complicazione su diritti d’autore o limitazioni d’uso. Di più: del software libero sono disponibili anche i file sorgente, cioè i file che servono per produrre (codificare) i programmi che vengono utilizzati, in modo che chiunque conosca il linguaggio di programmazione con cui sono stati costruiti li possa modificare per renderli più funzionali, per arricchirli, ecc. Il tutto sotto la protezione della licenza GNU/GPL (Gnu Not Unix/General Public License) secondo la quale il software modificato può essere distribuito solo alle stesse condizioni, cioè che ne rimanga disponibile il sorgente a sua volta modificabile.
Si tratta generalmente di software distribuito gratuitamente, anche se Richard Stallman, il padre della filosofia del free software che noi traduciamo in software libero, avverte sempre che l’aggettivo free usato in questo contesto significa libero e non gratuito: avvertimento necessario per la lingua inglese, dove free significa entrambe le cose. A volte il distributore, che spesso è anche l’autore del software, invita l’utente che ritenga utile il programma a fare un’offerta: e sempre se la meriterebbe.
Ma, ci si chiede, chi è che lavora su questo software libero rinunciando a guadagnare per ciò che fa o affidandosi al buon cuore di chi lo utilizza?
Uno è sicuramente Linus Torvalds, che si è “divertito” – come dice lui – a creare il primo kernel del sistema operativo Linux (dal nome Linus del suo creatore e Unix, che è il sistema da cui è stato derivato) e, invece di brevettarlo, lo ha dato in pasto al mondo del software libero perché tutti ci lavorassero per farlo diventare migliore: ed è diventato, a parere non solo mio, il miglior sistema operativo che esista. Ben riepilogava Nelson Mandela lo spirito di Ubuntu, una delle più complete distribuzioni Linux sponsorizzata dal sudafricano Mark Shuttleworth, dicendo «Ubuntu non significa non pensare a se stessi; significa piuttosto porsi la domanda: voglio aiutare la comunità che mi sta intorno a migliorare?»
Peraltro una componente di divertimento la ritroviamo anche nel nome Debian della distribuzione Linux da cui deriva Ubuntu: Debian proviene da ian, nome del suo creatore Ian Murdock, preceduto dalle prime tre lettere del nome della sua fidanzata Debra.
C’è chi brevetta e c’è chi si diverte a diffondere conoscenza e utilità e che a roboanti marchi di fabbrica preferisce divertenti nomignoli.
Purtroppo il fatto che si tratti di qualche cosa che si può avere con poca spesa o addirittura gratis fa sì che non lo si trovi nei negozi e suscita diffidenza.
Per ovviare al primo inconveniente, che non lo si trovi nei negozi, mi sono proposto di fare molti articoli per descrivere e indicare come procurarsi software libero per fare moltissime cose.
Quanto alla diffidenza, essa è assolutamente ingiustificata: il software libero, infatti, a causa dei moti collaborativi che scatena, gode nel tempo di tali e tanti perfezionamenti da raggiungere in breve un’affidabilità totale, a volte insuperata.
La stragrande maggioranza dei programmi di software libero, almeno di quelli che mi propongo di presentare, è reperibile in versioni che girano su tutti i tre sistemi operativi che fanno funzionare i personal computer: Linux, Windows e Mac OS X.
Per chi volesse entrare completamente nel mondo del software libero sarebbe d’obbligo la scelta del sistema operativo Linux. Tra le tante distribuzioni esistenti, quelle che ritengo più semplici da installare e che hanno il non secondario vantaggio di essere fruibili completamente in lingua italiana sono Linux Ubuntu e Linux Mint, che ne è una derivata. Senza nulla togliere all’ottima SUSE Linux e, ovviamente, alla madre Debian, dalla quale è derivato Ubuntu.
A differenza di quanto avviene con i sistemi operativi Windows e OS X, che prima di cominciare l’installazione cancellano dal disco fisso del computer qualsiasi cosa, quando installiamo Linux ci viene innanzi tutto chiesto se vogliamo installarlo come unico sistema operativo oppure se preferiamo affiancarlo ad altri sistemi operativi che già abbiamo sul computer: la libertà del software libero comincia rispettando la libertà degli altri. All’accensione del computer ci verrà chiesto con quale sistema intendiamo lavorare. Ciò significa che potremmo tranquillamente installare Linux mantenendo il nostro Windows e, se usiamo Ubuntu, il nostro OS X.
Il vantaggio di entrare nel mondo Linux è quello di trovare installato sul computer un programma di gestione delle applicazioni che ci propone migliaia di programmi di software libero che, essendo collegati a Internet, possiamo scaricare ed installare con un click.
Chi non voglia fare il passo verso Linux non avrà comunque alcuna difficoltà a procurarsi i programmi e ad installarli: ovviamente con l’avvertenza di scegliere le versioni dei programmi adatte al proprio sistema operativo.
Viene da chiedersi come mai quando acquistiamo un computer non ci sia preinstallato il sistema Linux. La risposta è semplice: con il software libero non si fanno i soldi, con il software così detto commerciale che si aggrega attorno a mamma Microsoft si fanno i soldi. A parte il caso della Apple che fa i soldi non tanto con il software ma con una serie di prodotti di eccellenza che contengono anche il software (tra l’altro cugino stretto di Linux).

Software libero per calcolare

Per una cosa che si chiama computer o, come potremmo tradurre nella nostra lingua, calcolatore il compito più naturale è quello di fare calcoli.
E bisogna riconoscere che, se istruito bene, il computer fa dei calcoli strabilianti: soprattutto li fa praticamente in tempo reale. Senza la velocità di calcolo del computer non sarebbe possibile fare alcune bellissime cose, come quella di navigare nello spazio.
E anche computer con potenza relativamente bassa possono fare grandi calcoli. Esiste addirittura una leggenda metropolitana che afferma come la potenza di calcolo utilizzata per condurre l’uomo sulla luna fosse quella di un Commodore 64, poco più che un computer giocattolo di qualche decennio fa: non è esattamente così, ma è pur vero che i personal computer che abbiamo oggi, addirittura i tablet o i telefonini detti smartphone, come i loro predecessori computer palmari, sono enormemente sovradimensionati con riguardo a quanto serve per fare calcoli.
La cosa più importante e delicata è il software, cioè l’insieme di istruzioni che diamo al computer perché faccia i calcoli che ci servono; insieme di istruzioni che vanno da come il computer deve leggere i dati di ingresso che gli vengono forniti, a quali elaborazioni ed algoritmi esso deve sottoporre quei dati e finalmente a come ci deve fornire i risultati di queste elaborazioni.
La delicatezza del software di calcolo sta nel fatto che, mentre altri tipi di software per scrivere, per disegnare, per creare suoni, ecc., se fatti male, o non girano del tutto o forniscono risultati visibilmente sbagliati o non accettabili, il software di calcolo può fornire risultati sbagliati che noi prendiamo per buoni, molto spesso non avendo modo di capire che sono sbagliati.
Se un computer ci dice che il risultato di 2 + 2 è 5 comprendiamo che il computer ha sbagliato perché sappiamo altrimenti il risultato, tanto che avremmo fatto a meno di disturbare il computer per ottenerlo. Ma se un computer ci dice che per estinguere un prestito di 1.000 euro con 12 rate mensili costanti posticipate al tasso del 2% annuo occorrono 12 rate mensili di 84,23 euro, o ci fidiamo o rifacciamo il conto con un altro computer e con un altro programma. Se poi otteniamo un risultato diverso vai a stabilire chi ha ragione.
Alcune disavventure generate utilizzando il linguaggio di programmazione C hanno per esempio indotto il Dipartimento della Difesa americano ad avviare lo sviluppo del linguaggio di programmazione Ada, che deriva dal C ma ne evita alcune trappole infernali e viene ancora oggi usato in molti contesti in cui il corretto funzionamento del software è critico, come sistemi di controllo di velivoli, del traffico aereo e software aerospaziale.
Il software libero offre ai matematici ed agli scienziati compilatori o interpreti per tutti i linguaggi di programmazione in modo da fornire la possibilità di ottenere dal computer qualsiasi genere di calcolo attraverso istruzioni dirette finalizzate alla soluzione dei più svariati tipi di problema.
Tutto senza trascurare l’offerta di software già predisposti per determinati tipi di calcolo, più agevoli da utilizzare in quanto non richiedono la conoscenza di linguaggi di programmazione.
Qui vorrei mettere a disposizione una mia rassegna di software liberi di quest’ultimo tipo, tutti stracollaudati e fornitori di risultati perfetti.
Si tratta di un file in formato PDF, scaricabile e stampabile, dove si trovano tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati, anche se spesso il loro ambiente nativo è Unix/Linux, sono disponibili anche per i sistemi operativi Windows e OS X.
Per scaricare il file clicca sul suo nome qui sotto.

calcolo

Software libero per comunicare

La storia della comunicazione cataloga tre rivoluzioni avvenute nel modo di comunicare tra di noi: la rivoluzione chirografica (quella avvenuta quando abbiamo cominciato a scrivere sui più svariati materiali, quattromila anni prima di Cristo), la rivoluzione gutenberghiana (quella avvenuta quando abbiamo cominciato a stampare su carta, verso la metà del quindicesimo secolo) e la rivoluzione elettrica/elettronica (quella legata a telegrafo, telefono, radio e televisione, avviatasi a metà del diciannovesimo secolo con l’invenzione del telegrafo ed esplosa a metà ventesimo secolo con la televisione).
Dalla metà dell’ultimo decennio del ventesimo secolo siamo in piena rivoluzione digitale e la storia non ne parla ancora.
Ormai qualsiasi cosa vogliamo trasferire da una conoscenza all’altra, si tratti di un testo, di un suono, di una immagine, di un filmato, può essere trasformata in un segnale digitale (codificata in una serie di digit 0 o 1) che viene trasmesso e, alla ricezione, viene decodificato e reso quello che era prima della codifica. La trasmisssione, praticamente in tempo reale anche a distanze antipodali, avviene grazie ad una fittissima rete interconnessa a ragnatela che avvolge il globo su cui viviamo: Internet.
Codifica e decodifica avvengono utilizzando un computer che, collegato alla rete, funge da apparato trasmittente e da apparato ricevente.
Fino alla diffusione a prezzi ragionevoli di personal computer queste comunicazioni in rete erano riservate ad uffici governativi, centri di ricerca e università.
Con la diffusione dei personal computer è diventato un fenomeno abbastanza di massa.
Con la diffusione di quei piccoli computer che chiamiamo tablet e di quei minuscoli computer che chiamiamo smartphone è diventato un delirio.
C’è chi vede solo gli aspetti negativi di questo delirio. Io penso che l’imbecillità, se c’è, si diffonde con le tavolette, con gli incunaboli, con i libri, con la radio e con la televisione: certo è che, più aumentano i potenziali diffusori e più sono accessibili i mezzi di diffusione, più se ne diffonde.
Sicuramente sono tanti anche gli aspetti positivi. E credo siano in misura superiore di quelli negativi e che, a differenza di questi ultimi, soprattutto legati a mode passeggere, siano più di sostanza e destinati a durare nel tempo.

Internet è nata ed ha avuto il primo utilizzo in campo pubblico: la sua struttura proviene da ARPANET, che era una rete di computer studiata e realizzata nel 1969 dal Dipartimento della Difesa degli Stati Uniti, il linguaggio a marcatori per ipertesti html usato per la formattazione e l’impaginazione di documenti ipertestuali per il web è stato sviluppato verso la fine degli anni ottanta del ventesimo secolo presso il CERN di Ginevra assieme al protocollo http dedicato al trasferimento di documenti in tale formato, il primo grande utilizzo della rete venne sviluppato per i collegamenti tra centri di ricerca e università.
Tutto ciò ha fatto sì che, al momento della diffusione di massa di questo nuovo modo di comunicare, esistessero già gli strumenti software di base sviluppati al di fuori da logiche commerciali e la conseguenza è che i software che hanno a che fare con Internet ce li possiamo procurare gratuitamente.
Mai come in questo caso, però, vi può essere confusione tra software libero e software gratuito. Come ricorda sempre Richard Stallman, il guru del software libero, free, riferito al software, significa libero e non gratuito e, pertanto vale anche dire che gratuito non significa libero.
Ad evitare che Richard Stallmann, se mai leggerà questo documento, mi tiri le orecchie – come è abituato a fare – mi limiterò a segnalare solo applicazioni veramente di software libero, cioè rilasciate secondo la licenza GNU/GPL.
Le applicazioni sono segnalate nell’allegato file in formato PDF, scaricabile e stampabile, che contiene tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati, anche se spesso il loro ambiente nativo è Unix/Linux, sono disponibili anche per i sistemi operativi Windows e OS X.
Per scaricare il file clicca sul suo nome qui sotto.

comunicazione

Software libero per ebook

L’ebook è un libro che non si legge su carta ma si legge su uno schermo. Perché questo sia possibile è necessario che il testo del libro sia memorizzato in un file digitale.
Lo schermo su cui si legge può essere innanzi tutto lo schermo del computer e già prima che si diffondessero altre modalità di lettura esistevano raccolte di opere letterarie, vere e proprie biblioteche, a volte diffuse su CD allegati a quotidiani, destinate ad una lettura sul computer.
Ma la lettura sul computer è scomoda. Già l’idea di leggere un romanzo su qualche cosa di diverso dalla carta fa inorridire gli appassionati di lettura che amano il profumo della carta inchiostrata e rilegata, figurarsi se l’alternativa è lo schermo di un apparecchio elettronico, magari fisso in una stanza, con la necessità di avere un collegamento alla rete elettrica….
Già con il computer portatile è meglio, con i piccoli net books è ancora meglio; ma lo sfondamento avviene con i lettori di ebook e con i tablet, con l’avvento dei quali è iniziata la vera e propria editoria digitale.
Soprattutto il lettore di ebook decreta il successo della nuova editoria. Il lettore ad eink ha uno schermo, sì, ma è molto simile ad una pagina di carta, non è retroilluminato come gli schermi dei computer e non affatica la vista, si legge se c’è luce, come il libro, ha un’autonomia di parecchie settimane in quanto consuma pochissima energia (quel poco di energia che consuma è quando si gira pagina, in quanto deve ricomporre l’inchiostro per farci vedere la pagina successiva), è leggero e sta dappertutto, proprio come un libro: in più, anche in uno spazio minore di quello di un volume cartaceo, può contenere decine e decine di libri.
Ovviamente stiamo parlando di libri fatti di solo testo: un libro d’arte che riproduce le opere del Guercino difficilmente potrà essere gustato su un lettore di ebook, ma I promessi sposi ci stanno benissimo.
Nell’allegato documento PDF ho selezionato alcuni programmi di software libero che ci consentono di produrre noi stessi un ebook e di attribuirgli o modificarne il formato.
Per scaricare il file clicca sul suo nome qui sotto.

ebook

Software libero per fare musica

Il software che abbiamo visto finora (per scrivere, per calcolare, per disegnare e per gestire dati) utilizza, del computer, le memorie (ROM per accedere al software e per memorizzare i risultati, RAM per avere a portata di mano quanto necessario alle elaborazioni), il microprocessore o CPU (per eseguire le elaborazioni), la tastiera (per immettere i dati e le istruzioni necessari per le elaborazioni) e lo schermo (che, grazie alla scheda grafica, ci fa vedere cosa stiamo combinando). Il computer è sempre stato zitto.
Ma il computer può anche emettere suono, addirittura può generarlo.
Fino a qualche po’ di anni fa si trattava di gracchianti bip e, per produrre suoni degni di tale nome occorrevano apparecchiature esterne collegate al computer, come sintetizzatori, schede audio, ecc. Oggi, anche un portatile di fascia medio bassa ha una scheda audio integrata in un chip della scheda madre, grazie alla quale si possono generare e riprodurre suoni di elevata qualità, soprattutto se, per riprodurli, non ci si accontenta delle altoparlantine del computer ma si danno in pasto a sistemi di altoparlanti surround attraverso l’uscita che ogni computer offre in favore di uno spinottino jack (in genere lo stesso che si usa per le cuffie). Ovviamente, per risultati di elevata professionalità, si procede ancora con l’ausilio di apparecchiature esterne: ma si può ormai fare parecchio anche con il portatile di casa solo e nudo.
Il compito della scheda audio è quello di convertire segnali digitali in segnali analogici o viceversa. A volte immettiamo nel computer un segnale analogico attraverso un microfono inserito in una presa jack del computer o attraverso un cavetto con jack da inserire nella stessa presa o in una presa line-in dedicata: in questo caso la scheda audio trasforma il segnale analogico ricevuto dall’esterno in segnale digitale. Altre volte immettiamo nel computer un segnale digitale, contenuto in un file audio memorizzato sull’hard disk del computer, o su una chiavetta USB, o su un CD audio e la scheda audio lo converte in analogico in favore del sistema di altoparlanti interno o esterno che lo riproduce.
In tutti questi casi, però, il computer converte suoni, rappresentati in vario modo, da un tipo all’altro, ma non li crea lui, li riproduce soltanto. Esiste software per gestire questa riproduzione, per memorizzare e trovare al momento opportuno il brano musicale da riprodurre, per convertire lo stesso formato digitale in tanti modi, per trattare, cioè un suono già prodotto. Ma ci occuperemo di queste cose in altra sede.
In questo articolo, invece, ci occuperemo di software attraverso il quale è il computer che genera il suono e il nostro compito è quello di “dire” al computer quale suono generare, con quale timbro, per quale durata, ecc. fino a creare un vero e proprio brano musicale polifonico; brano musicale che potrà venire semplicemente suonato dal computer o registrato, con i suoni generati dal computer, in un file audio da memorizzare in formato digitale sull’hard disk, su una chiavetta USB o su un CD audio, come se fosse un suono generato da un complesso musicale e registrato.
Lo strumento con cui “diciamo” al computer quale suono generare, con quale timbro, per quale durata, ecc. è il file MIDI.
MIDI è l’acronimo di Musical Instruments Digital Interface (Interfaccia Digitale per Strumenti Musicali) ed è un protocollo standard creato affinché strumenti musicali, elettronici e non, sintetizzatori generatori di suoni elettronici, schede audio, ecc. possano intendersi tra loro.
L’elemento atomico del file MIDI è il messaggio MIDI, composto da due o più byte, uno dei quali si chiama byte di stato e gli altri sono byte di dati. Il byte di stato è il primo che legge il computer e, a seconda della sua natura, il computer si appresta a ricevere e interpretare i byte di dati: se il byte di stato è del genere note on (ti sto mandando una nota e ti indico su quale dei 16 canali MIDI ti arriverà), il computer si appresta a ricevere due byte di dati, uno che indica l’altezza della nota (il Do centrale ha il valore 60, in binario 00111100) e uno che indica la forza (velocity) con cui la nota deve suonare (da poco più di 0, che sta per pianissimo a 127, che sta per fortissimo); se il byte di stato è del genere control change (con quale espressione, con quale volume, in quale posizione stereofonica, ecc. devi far sentire il suono), il computer si appresta a ricevere quattro byte di dati con codificate tutte queste belle cose; se il byte di stato è del genere program change (che timbro devi usare per generare il suono), il computer si appresta a ricevere un byte di dati indicante in codice lo strumento musicale (il pianoforte classico ha il valore 0, la chitarra classica ha il valore 24, la tromba ha il valore 56, ecc. ovviamente espressi in binario). Ovviamente nel file MIDI, su ciascun canale, i messaggi control change e program change sono validi fino a nuovo avviso e, al limite, possono essere presenti nel file una sola volta, mentre i messaggi note on sono quelli che fanno la parte del leone e ce ne saranno tanti quante sono le note da suonare.
Quando il computer riceve il codice dello strumento col cui timbro gli si chiede di generare il suono, in mancanza di meglio va a consultare la tavola sonora aggregata alla scheda audio e preleva da lì il suono da passare alla scheda audio. La tavola sonora è un insieme di suoni prodotti per sintesi ad imitazione del suono dei vari strumenti musicali (128, codificati da 0 a 127) ed è costruita in modo da occupare il meno spazio possibile (sappiamo che la registrazione del suono digitale occupa molto spazio).
Se lasciamo al computer di pescare i suoni dalla tavola sonora otteniamo risultati mediocri: si sente benissimo che i suoni sono finti.
Con i moderni computer, dove il problema di spazio di memoria sul disco rigido è molto relativo, possiamo caricare i così detti sound fonts, che sono degli spezzoni di registrazioni da strumenti veri, effettuate a diverse altezze, da cui il computer può attingere il timbro dello strumento in modo sempre più realistico che non dalla tavola sonora. Una buona raccolta di sound fonts potrà occupare mezzo Giga sul disco, cosa che nei computer moderni fa ridere, e darci la possibilità di ottenere suoni che possono anche non risultare più così finti.
Se poi evitiamo le parti solistiche, che sono le più impegnative da realizzare per le sfumature espressive che dovrebbero avere, e ci limitiamo ad accompagnamento ritmico e a qualche svolazzo di controcanto, possiamo ottenere risultati veramente notevoli: non per nulla le basi per karaoke sono quasi sempre realizzate e conservate su file MIDI, anche per un fatto di portabilità, di scambio veloce con posta elettronica e di velocità di download da Internet. Infatti il file MIDI, rispetto ad un file audio, occupa uno spazio veramente insignificante: contiene, infatti, non suoni digitalizzati ma caratteri in codice binario. Un file MIDI che contiene una canzone abbastanza elaborata difficilmente supera i 30 kB, quando la stessa canzone, su file audio non compresso, arriva tranquillamente a 30 MB (cioè 1.000 volte tanto). La differenza è che il file MIDI contiene istruzioni per costruire un suono, ma il suono non c’è, mentre il file audio contiene suono digitalizzato.
Fatta questa premessa, con la quale spero si sia capito qualche cosa su come si possa far fare musica a un computer, non ci resta che passare in rassegna quali programmi ci offra il mondo del software libero per questo scopo.
Le applicazioni che ho selezionato sono descritte nell’allegato file in formato PDF, scaricabile e stampabile, che contiene tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati sono disponibili anche per i sistemi operativi Windows e OS X.
Per scaricare il file clicca sul suo nome qui sotto.

musica_suono

Software libero per digitalizzare

Tutto ciò che produciamo con il computer è rappresentabile in un file digitale, cioè in un documento che contiene informazione codificata con un linguaggio convenzionale in bit (binary digit, cioè 0 e 1), memorizzabile in modo permanente su un determinato tipo di supporto fisico (disco rigido, compact disc, memoria flash su chiavetta usb, dvd). Mutuando una bella definizione di Wikipedia, diciamo che la documentazione digitale è una rappresentazione astratta e numerica della realtà sensoriale.
In contrapposizione abbiamo la rappresentazione analogica della realtà sensoriale.
Per rappresentare analogicamente la realtà sensoriale suono, captiamo con un idoneo strumento le vibrazioni trasportate dall’onda sonora che lo genera e trasmettiamo intensità e profondità di queste vibrazioni nell’ampiezza e nella profondità di incisione di un solco su un materiale adatto. Ripercorrendo questo solco con un idoneo strumento sensibile alla sua ampiezza e profondità possiamo rigenerare le stesse vibrazioni e la stessa onda sonora, cioè riascoltare, in maniera analogica, il suono originario.
Un altro modo per registrare l’onda sonora, oltre a quello di catturarla fisicamente attraverso le vibrazioni che trasporta come abbiamo visto prima, è quello di registrarne il valore numerico ad intervalli di tempo regolari. Dal momento che l’onda sonora ha un aspetto sinusoidale, se noi registrassimo il valore della sua altezza in termini numerici, poniamo, trenta volte al secondo, otterremmo probabilmente una registrazione della sinusoide come una successione di triangoli: il che non servirebbe a nulla.
Se però misuriamo il valore dell’onda 44.100 volte al secondo, che è la frequenza utilizzata per il suono registrato sui CD musicali, la nostra sinusoide diventa ben liscia nelle sue curve.
Al punto che è dimostrato che, con questa frequenza di campionamento la sinusoide captata in via analogica e quella descritta con i numeri sono sì diverse (la prima è una curva continua, la seconda è una curva che collega punti discreti), ma la loro diversità non può essere colta dall’udito umano (se qualche vostro amico vi dice che sente la differenza tra un vinile e un CD caccia balle, a meno che la senta per il tic tic della puntina, ma allora è un’altra cosa).
L’unico inconveniente è che con questa tecnica abbiamo enormi grandezze da trattare, sia in termini di velocità di elaborazione (provate a tenere a mente 44 mila numeri al secondo) sia in termini di memoria fisica (il mio primo computer, un glorioso Philips TC 100, aveva un disco fisso di 20 MB, cioè non ci stava su neanche una canzoncina di due minuti).
Per non parlare dei file video, tipo i file .avi dove possiamo memorizzare le animazioni che generiamo, per esempio, con Blender: l’animazione, così come il filmato che facciamo con la telecamera, è costituita dalla visione ravvicinata di più fotografie, una via l’altra, al ritmo di 25 al secondo (lo standard televisivo PAL, in modo che l’animazione possa essere vista bene su un televisore che scansiona 25 volte al secondo). Un filmetto di tre minuti è lungo 180 secondi, cioè è formato da 4.500 fotografie: applichiamo pure tutte le tecniche di compressione e gli algoritmi per memorizzare solo ciò che differenzia una fotografia dall’altra, restringiamo a un piccolo rettangolino la scena, ciascuna immagine da memorizzare arriverà a pesare almeno 10 kB. Anche così il nostro filmetto, ridotto e strizzato alla stessa stregua di un file .mp3 audio, peserà una quarantina di MB, cioè una dozzina di volte tanto il suo omologo in campo audio (comunque sempre meglio dei 3 GB abbondanti che il nostro filmetto occuperebbe se non fossimo ricorsi a tecniche di compressione).
Ma i PC di oggi sono potenti e in spazi sempre più piccoli si possono memorizzare moli sempre più elevate di dati.
Allora, visto che la tecnologia ce lo consente, digitalizziamo tutto.
Il mondo del software commerciale ci propone costosi programmi per fare queste cose, ma anche il mondo del software libero non scherza e, in più, ce li offre.
Il documento PDF allegato contiene una mia rassegna di programmi di software libero, come sempre con tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
Per scaricare il file clicca sul suo nome qui sotto.

digitalizzazione

Software libero per utilizzare file digitali

Considerato il materiale che possiamo produrre direttamente con il PC e quello che possiamo acquisire per digitalizzazione da fonti esterne, possiamo arrivare ad avere una caterva di roba e, se non la organizziamo razionalmente, rischiamo di avere grosse difficoltà ad utilizzarla: il che equivale a non averla.
Un principio di base è quello di avere un file digitale per ogni cosa a livello elementare. Come la macchina fotografica digitale produce un file per ogni scatto, così, quando digitalizziamo con lo scanner le nostre fotografie, produciamo un file per ogni fotografia (non mettiamone due o tre nello scanner per fare un file solo). Quando digitalizziamo un disco vinilico che contiene più canzoni, facciamo un file per ogni canzone. Se digitalizziamo da un disco vinilico una sinfonia, facciamo un file per ogni movimento. Come, del resto, avviene per le tracce che troviamo sui CD musicali.
Ad ogni file diamo un nome che abbia una qualche relazione con il contenuto, meglio ancora se riusciamo proprio a descrivere in toto il contenuto stesso. Una foto scattata a Benevento, chiamiamola Benevento_01, ammesso che poi ci sia la Benevento_02, la Benevento_03, ecc. Una canzone chiamiamola con il suo titolo. Il movimento di una sinfonia chiamiamolo per quello che è (1. Allegro con brio, 3. Scherzo, ecc.).
I file così denominati raggruppiamoli in directory sempre più ingrappolate, partendo dal basso e fermandoci dove siamo soddisfatti. I file 1. Allegro con brio, … 3. Scherzo, … li mettiamo in una directory chiamata Beethoven – Sinfonia n. 3. I file Benevento_01, Benevento_02 … li mettiamo in una directory chiamata Benevento. I file delle canzoni li mettiamo in una directory che, trattandosi di musica leggera, sarà più interessante battezzare con il nome dell’interprete più che con quello dell’autore.
Le directory di musica classica saranno poi finalmente comprese in una directory Musica classica, quelle di musica leggera in una directory Musica leggera, quelle di fotografie in una directory Fotografie, magari passando attraverso vari raggruppamenti intermedi.
In questo modo organizziamo i nostri file in un archivio navigando nel quale, in un ragionevole numero di passaggi, arriviamo a trovare quello che ci serve.
L’archivio avrà una dimensione notevole ma, con le capienze degli attuali dischi rigidi dei computer, probabilmente sarà possibile ospitarlo tutto sul nostro computer.
Evitiamo l’errore di averne una sola copia sul computer. Facciamone immediatamente un’altra copia su uno o più supporti esterni: unità disco esterne, memorie flash più o meno su pennette, serie di DVD, ecc., ricordando che il DVD è praticamente indistruttibile fino a graffiatura volontaria o da grave disattenzione mentre le unità disco si possono guastare o smagnetizzarsi e le memorie flash, a distanza di tempo, andar soggette a qualche inconveniente.
Consideriamo comunque che ciò che c’è sul disco fisso del computer, se si guasta il sistema operativo si può fare in modo di recuperarlo (ovviamente prima di installare un altro sistema operativo che cancelli tutto il disco), se si guasta il disco tutto è irrimediabilmente perso.
Archiviati ordinatamente i nostri file, dobbiamo poi avere a disposizione sul computer software adatto per utilizzarli.
In genere i file prodotti da noi (documenti, fogli elettronici, ecc.) li possiamo aprire per vederli in chiaro utilizzando gli stessi programmi con cui li abbiamo prodotti.
Il problema si pone per i file digitali che contengono suono, immagini, filmati, per goderci i quali abbiamo bisogno di software che garantisca anche una buona qualità di riproduzione; meglio ancora se questo software ci può anche aiutare a trovare i file che vogliamo riprodurre.
L’allegato file PDF contiene una mia selezione di programmi di software libero adatti a questi scopi, con tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
L’ambiente nativo dei software presentati è Linux ma in qualche caso essi sono disponibili anche per i sistemi operativi Windows e OS X. Per questi ultimi sistemi operativi esiste comunque un’ampia scelta di software commerciali analoghi, ovviamente a pagamento.
Per scaricare il file clicca sul suo nome qui sotto.

utilizzo_file_digitali

Software libero per la multimedialità

Nell’articolo ‘Software libero per utilizzare file digitali’ e nel relativo allegato PDF abbiamo visto come possiamo fruire dei nostri archivi digitali per dilettarci la vista o l’udito, sempre, però, prendendo i file uno per uno, magari arrivando a mettere insieme fotografie in uno slideshow arricchito di qualche effetto di transizione e, persino, per esempio nel caso di Fotoxx, con la possibilità di abbinare allo slideshow un file audio (per musica di sottofondo o commento): quest’ultimo è un esempio di multimedialità, anche se, nell’esempio citato, molto grezza in quanto, con Fotoxx, non abbiamo modo di coordinare le immagini con la musica di sottofondo o con il commento, che potrà essere solo generico e non puntuale su ciascuna immagine.
Inoltre tutto quanto, audizioni e presentazioni, era finalizzato ad un uso sul nostro computer e non era esportabile se non su un altro computer attrezzato con gli stessi software presenti sul nostro.
In questo articolo vediamo, invece, come si possano mettere insieme più cose di natura diversa (immagini, musica, parola, scritto) per costruire qualche cosa di nuovo, che resti e che possa essere riprodotto anche su strumenti diversi dal computer (televisore, tablet, smartphone, lettore di DVD): multimedialità, pertanto, nel contenuto e nelle possibilità di fruizione del contenuto.
Nell’allegato file in formato PDF, scaricabile e stampabile, presento una mia selezione di programmi di software libero con cui possiamo costruire produzioni multimediali. Vi si trovano tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati, il cui ambiente nativo è Linux, sono spesso disponibili anche per i sistemi operativi Windows e OS X. Per questi ultimi sistemi informativi esiste ampia scelta di software commerciali a pagamento che fanno le stesse cose, anche se, a volte, non con le stesse sofisticazioni.
Per scaricare il file clicca sul suo nome qui sotto.

multimedialità