Saattoi sattua vain huono lataushetki, (vai onko tässä mahdollisesti ongelmana että olen w10:ssä?) mutta:
Buildi ei onnistu
Myös netbeanssin kautta mainin ajaminen ei toimi.
Javadoc puuttuu jostain kohdista, vaikka sitten kommentoituja selityksiä on. Nämähän voisi samantien hoitaa javadoccina kaikki?
Johonkin dokumenttiin voisi merkitä selkeämmin mitkä ovat - huomioon ottaen kurssin tarkoituksen - oleelliset algoritmit ja tietorakenteet ja mitä aika ja tilavaatimuksia näillä on. Sitten tietysti myös kun testausta tehdään, niin sen, että päästiinkö vaatimuksiin.
Muuten koodi on mielestäni pääosin ihan kunnossa. Tosin projektissa on juuri synteettisaattoriin liittyviä erityisia muuttujia ja metodeita niin paljon, että vaikea seurata.
Joitain huomioita koodista:
Rakenne
Nyt synth luokassa näyttää olevan vähän kaikenlaista. Eri toiminnallisuuksia voisi jakaa omiin paketteihin.
Määrittelydokumentin mukaan GUI:n hoitaa synth-luokka. Tämä kyllä jo näyttää olevan vaihdettu omaan GUI pakettiin ladatussa versiossa. Hyvä niin.
Selkeämpi pakkaus voisi olla I/O -paketti joka hoitaisi näppäimistöltä tulevaa, ja ulospäinlähtevää
Jos utils pakkaus jää yhteen luokkaan, niin sen voisi mahdollisesti siirtää muun logiikan kylkeen. Tai sitten jättää ydinalgoritmit synth -pakettiin ja siirtää jotain muita utils luokkaan.
Arkkitehtuuri: Jollain kaaviolla (dokumentointiin) voisi selventää mikä luokka riippuu mistäkin. Miten tieto etenee näppäimestä ääneksi? Luokkia voisi ehkä myös jakaa lisää, katso nimeäminen. En tiedä onko tässä koodin tasolla mitään pielessä sen enempää. Muista kuitenkin Single resposibilty principle ja riippuvuuksien minimointi.
Nimeäminen: Luokkien nimet eivät ole kovin intuitiivisia. Implementation -dokumentti auttoi paljon, muuten olisin varmaan ollut aika hukassa. Esimerkiksi synth näyttää nyt huolehtivan bufferoinnista, joistain ulkoasuseikoista(?) ja jostain muusta (audioinfo). "Keyboard" luokasta ajattelisin ehkä ennemmin jotain input-lukijaa. Luokassa kuitenkin myös jo tehdään taajuudet. Toisaalta utils paketissa on lisää keyboard - toiminnallisuutta. ADSR -luokka ei oikein nimenä sano mitään, toisaalta voi olla että ääniin jotenkin perehtyneelle luokka on ihan intuitiivinen.
Kiitos arvioinnista! Kokeilin nyt Windows 10 ohjelmaa mutta ei toimi näköjään mullakaan. Hyviä pointteja kaikki ja tulen korjailemaan asioita vielä viimeiseen palautukseen.
Ladattu 6.12.2018 n. 23:45
Hyvää työtä. Työ vaikuttaa oikein hienolta!
Joitain huomioita:
Saattoi sattua vain huono lataushetki, (vai onko tässä mahdollisesti ongelmana että olen w10:ssä?) mutta:
Javadoc puuttuu jostain kohdista, vaikka sitten kommentoituja selityksiä on. Nämähän voisi samantien hoitaa javadoccina kaikki?
Johonkin dokumenttiin voisi merkitä selkeämmin mitkä ovat - huomioon ottaen kurssin tarkoituksen - oleelliset algoritmit ja tietorakenteet ja mitä aika ja tilavaatimuksia näillä on. Sitten tietysti myös kun testausta tehdään, niin sen, että päästiinkö vaatimuksiin.
Muuten koodi on mielestäni pääosin ihan kunnossa. Tosin projektissa on juuri synteettisaattoriin liittyviä erityisia muuttujia ja metodeita niin paljon, että vaikea seurata.
Joitain huomioita koodista:
Rakenne
Arkkitehtuuri: Jollain kaaviolla (dokumentointiin) voisi selventää mikä luokka riippuu mistäkin. Miten tieto etenee näppäimestä ääneksi? Luokkia voisi ehkä myös jakaa lisää, katso nimeäminen. En tiedä onko tässä koodin tasolla mitään pielessä sen enempää. Muista kuitenkin Single resposibilty principle ja riippuvuuksien minimointi.
Nimeäminen: Luokkien nimet eivät ole kovin intuitiivisia. Implementation -dokumentti auttoi paljon, muuten olisin varmaan ollut aika hukassa. Esimerkiksi synth näyttää nyt huolehtivan bufferoinnista, joistain ulkoasuseikoista(?) ja jostain muusta (audioinfo). "Keyboard" luokasta ajattelisin ehkä ennemmin jotain input-lukijaa. Luokassa kuitenkin myös jo tehdään taajuudet. Toisaalta utils paketissa on lisää keyboard - toiminnallisuutta. ADSR -luokka ei oikein nimenä sano mitään, toisaalta voi olla että ääniin jotenkin perehtyneelle luokka on ihan intuitiivinen.