Girovagando su un blog di programmazione di videogiochi in Python, ho trovato il nome di quest'interessante applicazione. Si tratta di un programma scritto in C++ con le librerie GTK dedicato interamente alla creazione di suoni a 16 o 8 bit. Oltre ai 7 suoni fondamentali, c'è anche la funzione per la generazione casuale di un suono o per la modifica altrettanto casuale di quello corrente. È inoltre possibile modificare la forma dell'onda che può essere quadrata, a dente di sega o sinusoidale o può essere trattata come semplice rumore.
Il sito originale è attualmente inattivo, ma grazie a questo blog potete scaricare il pacchetto direttamente da qua.
Trovo SFXR anche graficamente molto piacevole, ma non credo che tutti condividano il mio gusto. :P
mercoledì 26 agosto 2009
DrPetter’s SFXR - Creare suoni a 16 o 8 bit per videogiochi
Pubblicato da Simone @ 10:36 PM 1 commenti
venerdì 7 agosto 2009
Metronome
Ho utilizzato la libreria GStreamer per la riproduzione del suono e GTK per l'interfaccia.
Download: metronome-1.0.tar.gz
Avviate setup.py e poi metronome.py.
Nonostante qualche de-sincronizzazione, spero vi piaccia. ;-)
Pubblicato da Simone @ 9:51 PM 0 commenti
domenica 26 ottobre 2008
Piramo e Tisbe
Riassunto del poema mitologico "Piramo e Tisbe" (Ovidio - Metamorfosi, I sec. d.C).
Piramo e Tisbe: due innamorati che non potevano vedersi a causa di una lite tra le loro due famiglie. Ogni giorno riuscivano a comunicare segretamente tramite una parete nascosta che univa le loro stanze. Così, a ogni ora si scambiavano parole d'amore e pensieri sulla la loro triste condizione.
Un giorno decisero di porre rimedio alla penosa lontananza e si diedero appuntamento oltre le mura della città, sotto un grande gelso, accanto a un corso d'acqua.
Nella notte, la prima a raggiungere il luogo fu Tisbe, la quale incontrò una leonessa reduce da una caccia fruttuosa, ancora sporca di sangue. Scappò per rifuggiarsi in una caverna, ma durante la fuga le cadde il velo che le copriva le spalle.
Quando Piramo arrivò, trovò il velo intriso di sangue e vedendo la leonessa pensò erroneamente alla morte della sua amata.
Il poveretto s'uccise, e l'amata fece lo stesso pensando fosse colpa sua, e pregò il gelso affinchè rimanesse di colore rosso per ricordare il sangue versato dai due innamorati.
Pubblicato da Simone @ 11:10 AM 1 commenti
domenica 14 settembre 2008
Emesene: Cercare nella conversazione
Oggi ho scritto una classe per Emesene che permette di cercare testo nella conversazione corrente con una piccola finestrella di dialogo. :-) A mio parere è molto comodo e supporta anche le espressioni regolari. Non ho mai trovato tanto facile creare una funzione di ricerca per un gtk.TextBuffer, quindi, se trovate qualsiasi bug, segnalatelo qua o nel post originale. ;-)
Download: search_conversation.patch
Url originale del post: topic,1531.0.html
Forse dovrei un po rallentare e fermarmi a pensare cosa serve veramente... :-)
Pubblicato da Simone @ 3:34 PM 0 commenti
sabato 13 settembre 2008
Emesene - GoogleSearch Plugin
Ho creato un plugin che permette di eseguire delle ricerche su Google mentre si conversa su Emesene utilizzando il comando /google. I risultati vengono inviati alla chat. Il plugin funziona con urllib e con le regex, invece di usare le API di Google che richiedono una chiave API e permettono di fare massimo 1000 ricerche al giorno.
Download: GoogleSearch.py
Url originale del post: topic,1529.0.html
Spero vi piaccia e vi sia utile.
PS: ringrazio Wolf che ha scritto questa guida. Mi ha permesso di camuffare urllib come se fosse Firefox cambiando lo UserAgent. :-)
Pubblicato da Simone @ 8:31 PM 0 commenti
venerdì 12 settembre 2008
Emesene: Plugin Away/Back
Ho creato un plugin per Emesene che aggiunge i comandi /away e /back per andare Online e Away velocemente durante la conversazione.
Download: Away.py
Url originale del post: topic,1527.0.html
Pubblicato da Simone @ 4:54 PM 0 commenti
Emesene: Salvare le conversazioni
Ho scritto una patch per Emesene che aggiunge un bottone al menu della finestra di conversazione per salvare il contenuto della chat su un file di testo.
E' la prima volta che partecipo ad un progetto opensource in modo attivo. Devo dire però che la comunità di Emesene sembra abbastanza accogliente. :-)
Download della patch: save_conversation.patch
Url originale del post: topic,1524.0.html
Pubblicato da Simone @ 4:39 PM 5 commenti
Attesa di caricamento sulla shell in Python
In seguito a questa discussione, ho pensato che fosse utile a diversa gente sapere come fare quelle cosette come le barre di caricamento, le percentuali che avanzano aggiornando la riga in stile wget. :-)
Ho scritto alcune soluzioni (importate time con import time):
1. Per fare la classica barretta roteante fatta di "| \ - /":
load = "| \ - /"
while 1:
for x in load:
sys.stdout.write("\r%s" % x)
time.sleep(0.05)
sys.stdout.flush()
for x in range(100):
sys.stdout.write("\r%s%% Complete" % x)
time.sleep(0.5)
sys.stdout.flush()
bar = ""
for x in range(100):
sys.stdout.write("\r%s -> %s%%" % (bar, x))
time.sleep(0.5)
sys.stdout.flush()
bar = bar + "="
Pubblicato da Simone @ 9:33 AM 4 commenti
giovedì 4 settembre 2008
iComboBox - gtk.ComboBox con i menu
Per CodePaint ho avuto bisogno di un ComboBox che supportasse anche i menu. Ho quindi creato un widget che eredita da gtk.ComboBox e che utilizza gtk.TreeStore al posto del gtk.ListStore (quello predefinito).
Download: i_combo_box.py
Modificatelo come vi pare. :P
Pubblicato da Simone @ 10:55 AM 0 commenti