Pagina 1 di 5

Metronomo PC [NUOVA VERSIONE IN FONDO!]

MessaggioInviato: ven mar 27, 2009 11:53 am
da _zioDrum_
Ciao a tutti, ho appena finito di scrivere un programma che fa da metronomo.
Devo dire che l'ho scritto prima di tutto per me, perchè mi servivano alcune funzioni e non avevo voglia di mettermi a cercare in internet tra migliaia di programmi...

Se vi interessa potete scaricarlo da qua:
edit: ULTIMA VERSIONE -> http://www.labatteria.it/public/file/metronomo2.zip

edit: se non parte probabilmente non avete installato il framework 2.0 potete scaricarlo qui

Per ora oltre a fare da metronomo normale ha anche la funzione "Acceleratore" e la funzione "Tempo finder" che vi permette di trovare il tempo premendo più volte un tasto.
Col tempo conto di aggiungere nuove funzioni (magari suggerite da voi) come ad esempio una funzione che suona una battuta si e una no per migliorare il timing o aggiungere suoni personalizzati ecc...

Ora veniamo ai dati tecnici!

Il programma è scritto in c# su piattaforma .net 2.0. Ora i linuxiani e macchisti storceranno il naso ma invece ho una sorpresa per voi! :D

Il programma (almeno testato su windows) funziona perfettamente su piattaforma MONO che altro non è che il porting del framework .net per linux e mac.

Anzi, mi fareste un grosso favore a testarlo così magari vedo se c'è qualcosa da correggere. Chi ha installato già mono può far partire il programma dal terminale scrivendo "mono metronomo.net.exe" (senza virgolette).

Il programma almeno qui funziona, sicuramente avrà qualche bug e sarei felice di avere un vostro aiuto come beta-tester. :)

MessaggioInviato: ven mar 27, 2009 11:57 am
da The Maus
:D ah va, pure io avevo scritto un mini-metrono (in C++) ma con molte meno funzionalità!

:wink: Se riesci a fare il porting su Mobile (e quindi a farlo girare su Palmari e affini) secondo me diventa mooolto utile, magari amplificando l'uscita audio con un mixer, per live prove etc

MessaggioInviato: ven mar 27, 2009 11:57 am
da themucco
A me non và. :oops:

MessaggioInviato: ven mar 27, 2009 12:00 pm
da _zioDrum_
mucco hai installato il framework .net?

MessaggioInviato: ven mar 27, 2009 12:01 pm
da themucco
no, dove lo trovo? :o

MessaggioInviato: ven mar 27, 2009 12:03 pm
da _zioDrum_
da mamma microsoft :D

http://www.microsoft.com/downloads/deta ... b15c5e04f5

Se non sbaglio xp sp2 dovrebbe già portarlo di serie...

MessaggioInviato: ven mar 27, 2009 12:04 pm
da themucco
Sul sp2 del mio pc non c'è, bhò, comunque provo. :wink:

MessaggioInviato: ven mar 27, 2009 12:09 pm
da JackIlBlack
a me va...grazie! sicuramente meglio delle porcherie che si trovano on line (almeno quello che ho trovato io)

MessaggioInviato: ven mar 27, 2009 12:15 pm
da _zioDrum_
The Maus ha scritto::D ah va, pure io avevo scritto un mini-metrono (in C++) ma con molte meno funzionalità!

:wink: Se riesci a fare il porting su Mobile (e quindi a farlo girare su Palmari e affini) secondo me diventa mooolto utile, magari amplificando l'uscita audio con un mixer, per live prove etc


maus, potrei provarci a fare il porting su mobile anche se ci sono talmente tante piattaforme...lo devo fare per iphone? :D

Posso provare quando avrò tempo magari x win mobile (che supporta il .net) se trovo qualche emulatore...

MessaggioInviato: ven mar 27, 2009 12:15 pm
da 1020152
Bello, ma manca una funzionalita' utile per noi batteristi (o forse solo per me?) che sarebbe la partizione della singola battuta... cosi' si riescono ad avere partizioni in terzine, sestine e cosi' via...
Inoltre potrebbe risultare carino poter cambiare i tipi di bip, cosi' da avere clave, cowbell o clap, ecc...

MessaggioInviato: ven mar 27, 2009 12:17 pm
da themucco
A me continua a non fare (installato framework), bhò. :oops:

MessaggioInviato: ven mar 27, 2009 12:19 pm
da The Maus
L'emulatroi...ehm emulatore di WinMobile dovrebbe essere compreso in VS2005

MessaggioInviato: ven mar 27, 2009 12:43 pm
da exa73
Fantastico! Un gran bel lavoro, in particolare la funzione che ti permette di accelerare scegliendo secondi, minuti o battute. :tru

MessaggioInviato: ven mar 27, 2009 12:46 pm
da _zioDrum_
themucco, che errore ti da?

1020152: per ora si possono cambiare i tipi di suoni in modo rudimentale andando nella cartella Resources...piano piano implementerò vari suoni per tutti i gusti! :D
Vorrei capire meglio il fatto della ripartizione, se vuoi puoi anche spiegarmelo per mp...

the maus: ah, non lo sapevo, appena posso provo! :D

exa73, grazie! :)

MessaggioInviato: ven mar 27, 2009 12:56 pm
da 1020152
tipo in un 4/4 c'e' un bip ad ogni battere e quindi 4 bip... con le ripartizioni di battuta fra ogni battere ci sono (nel caso di terzine per esmpio) 3 bip, per un totale di 12 bip (in una battuta completa)...
In poche parole una funzione che permette di mettere ripartizioni da 2 a 6 (tipiche ripartizioni) in modo tale da avere oltre al tempo in battere anche i riferimenti qualora si vogliano studiare diverse figure...

Non so se si e' capito...

MessaggioInviato: ven mar 27, 2009 1:02 pm
da _zioDrum_
Ok ok, chiaro...avevo già in mente di farla sta cosa, poi mi è sfuggita! :D

Appena ho un po' di tempo vedrò come fare... grazie! :)

MessaggioInviato: ven mar 27, 2009 1:59 pm
da Bizio
:tru ottimo carmine .. specialmente la funzione accelleratore ..lo userò .. grazie mille :B
se vuoi fare il capolavoro , dovresti fare un paio di modifiche ....se possibile , finestra dove poter modificare il tempo composto ...es. 7/4 fare in modo che si possa dare accento 4+3 -- 3+4 --5+2 etc etc..
infine inserire i volumi dei due wave del battere e levare.
bravo zio :B

MessaggioInviato: ven mar 27, 2009 2:05 pm
da The Maus
:D Zio se ti serve una mano per l'interfaccia grafica io ci sono

MessaggioInviato: ven mar 27, 2009 2:15 pm
da Lucio3loads
Molto utile, complimenti davvero :D

MessaggioInviato: ven mar 27, 2009 2:18 pm
da Varo
bravo.. complimenti..

già salvato sul desktop!!

sono una sega in fatto di programmazione e mi spiace non poter dare il mio contributo..

MessaggioInviato: ven mar 27, 2009 2:18 pm
da aracopilla
:) Ottimo lavoro Zio Drum, funziona tutto, mancano solamente alcuni controlli che adesso ti riepilogo, ma nulla di grave: :) Attivando l'acceleratore e non inserendo i dati sui campi viene segnalato un'errore, dovresti fare in modo che non si possa dare lo start se i campi non sono completi ed inibire la funzione se si è già in esecuzione perchè anche in questo caso viene evidenziato un'errore. La funzione tempo finder o non funziona o io non riesco a comprenderla. :D Altri consigli vedo che sono già arrivati e tutti positivi. Complimenti da un elettronico che fa anche software ma fondamentalmente in assembler. :)

MessaggioInviato: ven mar 27, 2009 2:47 pm
da DannyK
ottimo...

MessaggioInviato: ven mar 27, 2009 3:13 pm
da _zioDrum_
Grazie a tutti! Sono felice di essermi reso utile... :)

Cercherò piano piano di inserire tutte le funzioni che avete richiesto!

aracopilla, eh si purtroppo essendo ancora in fase di test la gestione delle eccezioni è pari a zero! :D Per il finder basta che premi ctrl a tempo e "dovrebbe" comparirti il tempo che stai suonando... 8)

MessaggioInviato: ven mar 27, 2009 3:19 pm
da =>Mr.He
che bello grazie zio bel lavoro! :) :)

MessaggioInviato: ven mar 27, 2009 5:21 pm
da themucco
Non mi dà nessun errore, semplicemente clicco sull' icona va la clessidra per 1/2 secondo è poi non parte nulla? :o :oops:

MessaggioInviato: ven mar 27, 2009 5:30 pm
da Bizio
sul computer portatile và bene .. su quello dello studio dà errore in debug .. ti allego stringhe. :wink:



Le informazioni su come richiamare il debug JIT (Just-In-Time) anziché questa finestra
sono riportate in fondo al messaggio.

************** Testo dell'eccezione **************
System.FormatException: Formato della stringa di input non corretto.
in System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
in System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
in Metronome.net.TempoMaker.StartBase()
in Metronome.net.Form1.timer1_Tick(Object sender, EventArgs e)
in System.Windows.Forms.Timer.OnTick(EventArgs e)
in System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Assembly caricati **************
mscorlib
Versione assembly: 2.0.0.0
Versione Win32: 2.0.50727.1433 (REDBITS.050727-1400)
Base di codice: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
Metronomo.net
Versione assembly: 1.0.0.0
Versione Win32: 1.0.0.0
Base di codice: file:///C:/Documents%20and%20Settings/Utente/Documenti/metronomo/Metronomo.net.exe
----------------------------------------
System.Windows.Forms
Versione assembly: 2.0.0.0
Versione Win32: 2.0.50727.1433 (REDBITS.050727-1400)
Base di codice: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Versione assembly: 2.0.0.0
Versione Win32: 2.0.50727.1433 (REDBITS.050727-1400)
Base di codice: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Versione assembly: 2.0.0.0
Versione Win32: 2.0.50727.1433 (REDBITS.050727-1400)
Base di codice: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.resources
Versione assembly: 2.0.0.0
Versione Win32: 2.0.50727.1433 (REDBITS.050727-1400)
Base di codice: file:///C:/WINDOWS/assembly/GAC_MSIL/System.resources/2.0.0.0_it_b77a5c561934e089/System.resources.dll
----------------------------------------
mscorlib.resources
Versione assembly: 2.0.0.0
Versione Win32: 2.0.50727.1433 (REDBITS.050727-1400)
Base di codice: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
System.Windows.Forms.resources
Versione assembly: 2.0.0.0
Versione Win32: 2.0.50727.1433 (REDBITS.050727-1400)
Base di codice: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_it_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

************** Debug JIT **************
Per attivare il debug JIT, è necessario impostare il valore
jitDebugging nella sezione system.windows.forms del file di configurazione
dell'applicazione o del computer (machine.config).
L'applicazione inoltre deve essere compilata con il debug
attivato.

Ad esempio:

<configuration>
<system>
</configuration>

Quando il debug JIT è attivato, tutte le eccezioni non gestite
vengono inviate al debugger JIT registrato nel computer,
anziché essere gestite da questa finestra di dialogo.


ZIO .. poi l'accelleratore cambia velocità ogni misura anche se l'imposto ogni 16 misure ..
un .. altro consiglio conviene togliere dall'accelleratore minuti e secondi , dato che l'unità di misura sono appunto le misure


:D :B

MessaggioInviato: ven mar 27, 2009 6:03 pm
da _zioDrum_
ahhh la fase di debug...croce e delizia... :D

devo vedere un po' che ho combinato, al momento sono fuso col cervello e già è tanto che riesco a scrivere parole sensate! :D

MessaggioInviato: ven mar 27, 2009 6:41 pm
da Augusto-trambusto
grande Zio!!!!!
Sapresti farlo anche in Java?

MessaggioInviato: ven mar 27, 2009 6:54 pm
da The Maus
dovrebbe essere facilmente portatibile in java

MessaggioInviato: mar mar 31, 2009 2:45 pm
da _zioDrum_
NUOVA VERSIONE!!! -> http://www.megaupload.com/?d=TYVK2O3D

Ciao a tutti, stamattina mi sono liberato un pochino e ho apportato alcune modifiche al metronomo per correggere qualche errore.

Ora il buon bizio sarà contento perchè non aumenterà la velocità ogni battuta! :D

Ho corretto anche il problema dell'errore generato dai campi vuoti nell'acceleratore...

Stamattina ho concentrato i miei sforzi sulla suddivisione di ogni singolo click in 3, 4 ecc...dopo essermi scervellato per trovare un algoritmo poco complesso ho anche capito che il timer del framework fa cagare e ad una certa velocità inizia a scazzare alla grande! E quindi ne è derivata una grande perdita di precisione...

Per ora il progetto "suddivisioni" è accantonato... 8)

Nel prossimo ritaglio di tempo mi concentrerò sui tempi dispari come suggerito da bizio cioè cercherò di implementare un sistema per suddividere chessò un 7/4 in 4+3 con 2 click differenti per segnalare l'inizio della battuta e la seconda parte...

Da ora in poi upperò su megaupload per non intasare il server con i miei inutili file! :tru