diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 494f25e..e2d5234 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ The Garvuino is a PCB board for creating musics, sounds and chiptunes, either th ![](garvuino_pcb.png) +![](garvuino01.jpg) + It works with an Arduino Nano and an Atmega8 chip. ## Features @@ -39,7 +41,8 @@ From [various 1-bit engines](http://randomflux.info/1bit/viewforum.php?id=5) (on ### AVRAY - * http://picosong.com/HUGM/ + * http://picosong.com/HUGM/ (Xenon / Spectrum) + * http://picosong.com/wseMn/ (Cauldron / Amstrad) * http://battleofthebits.org/arena/Entry/Underground+Water/26509/ * https://www.youtube.com/watch?v=gzpGbokxwZ4 * *more to come* @@ -60,24 +63,24 @@ From [various 1-bit engines](http://randomflux.info/1bit/viewforum.php?id=5) (on ## Bill of Materials - Name nb (optionnal part) + Name nb (optionnal part) - Garvuino PCB 1 - crystal 24 mhz 1 - arduino nano 1 - atmega8 1 - ceramic capacitor 820 pF 2 - electrolytic capac. 10 uF 2 - ceramic capacitor 100 nF 1 x - led 1 x - DIN5 connector (midi) 1 x - 1 kΩ Resistor 1 x - 10 kΩ Resistor 2 - micro sd module 1 - sd module 1 x - momentary switch 1 - audio jack 3.5 mm (TRS) 1 - jumper 4 + Garvuino PCB 1 + crystal 24 mhz 1 + arduino nano 1 + atmega8 1 + ceramic capacitor 820 pF 2 + electrolytic capac. 10 uF 2 + ceramic capacitor 100 nF 1 x + led 1 x + DIN5 connector (midi) 1 x + 1 kΩ Resistor 1 x + 10 kΩ Resistor 2 + micro sd module 1 + sd module 1 x + momentary switch 1 + audio jack 3.5 mm (TRS) 1 + jumper 4 ## Atmega8 setup @@ -91,7 +94,7 @@ Connect it according to this schematic for the atmega8: Basically it's: | SD reader |Atmega| -|--------|-------| +|---------------| |MISO |pin 18: PB4| |MOSI |pin 17: PB3| |RESET |pin 01: PC6| diff --git a/arduino_sketches/avray/avray_light_sensor/avray_light_sensor.ino b/arduino_sketches/avray/avray_light_sensor/avray_light_sensor.ino old mode 100644 new mode 100755 diff --git a/arduino_sketches/avray/avray_light_sensor/noteList.cpp b/arduino_sketches/avray/avray_light_sensor/noteList.cpp old mode 100644 new mode 100755 diff --git a/arduino_sketches/avray/avray_light_sensor/noteList.h b/arduino_sketches/avray/avray_light_sensor/noteList.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/avray/avray_light_sensor/pitches.h b/arduino_sketches/avray/avray_light_sensor/pitches.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/avray/avray_sd_sketch/avray_sd_sketch.ino b/arduino_sketches/avray/avray_sd_sketch/avray_sd_sketch.ino old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/arduino_octode.ino b/arduino_sketches/beeper/arduino_octode/arduino_octode.ino old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/arduino_octode.ino.standard.hex b/arduino_sketches/beeper/arduino_octode/arduino_octode.ino.standard.hex old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/arduino_octode.ino.with_bootloader.standard.hex b/arduino_sketches/beeper/arduino_octode/arduino_octode.ino.with_bootloader.standard.hex old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/arduino_octode.zip b/arduino_sketches/beeper/arduino_octode/arduino_octode.zip old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/convert_arduino_octode.bat b/arduino_sketches/beeper/arduino_octode/convert_arduino_octode.bat old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/convert_arduino_octode.py b/arduino_sketches/beeper/arduino_octode/convert_arduino_octode.py old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/garvalf_octode-2015-05-18_hymn_dazbog.xm b/arduino_sketches/beeper/arduino_octode/garvalf_octode-2015-05-18_hymn_dazbog.xm old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/garvalf_octodexl-2015-05-18_hymn_dazbog.xm b/arduino_sketches/beeper/arduino_octode/garvalf_octodexl-2015-05-18_hymn_dazbog.xm old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/garvalf_rotor-octode-2014-10-22.xm b/arduino_sketches/beeper/arduino_octode/garvalf_rotor-octode-2014-10-22.xm old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/music.h b/arduino_sketches/beeper/arduino_octode/music.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/music.xm b/arduino_sketches/beeper/arduino_octode/music.xm old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/music_dazbog.h b/arduino_sketches/beeper/arduino_octode/music_dazbog.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/music_rotor.h b/arduino_sketches/beeper/arduino_octode/music_rotor.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/music_shiru.h b/arduino_sketches/beeper/arduino_octode/music_shiru.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/music_test.h b/arduino_sketches/beeper/arduino_octode/music_test.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/music_test2.h b/arduino_sketches/beeper/arduino_octode/music_test2.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/newdrum12500_1.wav b/arduino_sketches/beeper/arduino_octode/newdrum12500_1.wav old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/test.xm b/arduino_sketches/beeper/arduino_octode/test.xm old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/xmlib.py b/arduino_sketches/beeper/arduino_octode/xmlib.py old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_octode/xmlib.pyc b/arduino_sketches/beeper/arduino_octode/xmlib.pyc old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/arduino_phaser1.ino b/arduino_sketches/beeper/arduino_phaser1/arduino_phaser1.ino old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/arduino_phaser1.ino.standard.hex b/arduino_sketches/beeper/arduino_phaser1/arduino_phaser1.ino.standard.hex old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/arduino_phaser1.ino.with_bootloader.standard.hex b/arduino_sketches/beeper/arduino_phaser1/arduino_phaser1.ino.with_bootloader.standard.hex old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/bin2h.py b/arduino_sketches/beeper/arduino_phaser1/bin2h.py old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/convert_music.bat b/arduino_sketches/beeper/arduino_phaser1/convert_music.bat old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/drum_sample_data.h b/arduino_sketches/beeper/arduino_phaser1/drum_sample_data.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/garvalf_phaser1.bin b/arduino_sketches/beeper/arduino_phaser1/garvalf_phaser1.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/music_data.bin b/arduino_sketches/beeper/arduino_phaser1/music_data.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/music_data.h b/arduino_sketches/beeper/arduino_phaser1/music_data.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/music_data_garvalf.h b/arduino_sketches/beeper/arduino_phaser1/music_data_garvalf.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/music_data_mister_beep.h b/arduino_sketches/beeper/arduino_phaser1/music_data_mister_beep.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_phaser1/music_mister_beep.bin b/arduino_sketches/beeper/arduino_phaser1/music_mister_beep.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/arduino_qchan.ino b/arduino_sketches/beeper/arduino_qchan/arduino_qchan.ino old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/arduino_qchan.ino.standard.hex b/arduino_sketches/beeper/arduino_qchan/arduino_qchan.ino.standard.hex old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/arduino_qchan.ino.with_bootloader.standard.hex b/arduino_sketches/beeper/arduino_qchan/arduino_qchan.ino.with_bootloader.standard.hex old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/bin2h.py b/arduino_sketches/beeper/arduino_qchan/bin2h.py old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/convert_music.bat b/arduino_sketches/beeper/arduino_qchan/convert_music.bat old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/music_data.bin b/arduino_sketches/beeper/arduino_qchan/music_data.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/music_data.h b/arduino_sketches/beeper/arduino_qchan/music_data.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/music_data_movie.h b/arduino_sketches/beeper/arduino_qchan/music_data_movie.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/music_data_movie1.bin b/arduino_sketches/beeper/arduino_qchan/music_data_movie1.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/music_data_reveries.h b/arduino_sketches/beeper/arduino_qchan/music_data_reveries.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/music_data_vapeurs.h b/arduino_sketches/beeper/arduino_qchan/music_data_vapeurs.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/reveries.bin b/arduino_sketches/beeper/arduino_qchan/reveries.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_qchan/vapeurs_alcool.bin b/arduino_sketches/beeper/arduino_qchan/vapeurs_alcool.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/arduino_tritone.ino b/arduino_sketches/beeper/arduino_tritone/arduino_tritone.ino old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/arduino_tritone.ino.standard.hex b/arduino_sketches/beeper/arduino_tritone/arduino_tritone.ino.standard.hex old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/arduino_tritone.ino.with_bootloader.standard.hex b/arduino_sketches/beeper/arduino_tritone/arduino_tritone.ino.with_bootloader.standard.hex old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/bin2h.py b/arduino_sketches/beeper/arduino_tritone/bin2h.py old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/bourrasque_arduino.bin b/arduino_sketches/beeper/arduino_tritone/bourrasque_arduino.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/convert_drums.bat b/arduino_sketches/beeper/arduino_tritone/convert_drums.bat old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/convert_drums.py b/arduino_sketches/beeper/arduino_tritone/convert_drums.py old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/convert_music.bat b/arduino_sketches/beeper/arduino_tritone/convert_music.bat old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/drum_sample_data.h b/arduino_sketches/beeper/arduino_tritone/drum_sample_data.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/incantation_arduino.bin b/arduino_sketches/beeper/arduino_tritone/incantation_arduino.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/music_data.bin b/arduino_sketches/beeper/arduino_tritone/music_data.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/music_data.h b/arduino_sketches/beeper/arduino_tritone/music_data.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/music_data_bourrasque.h b/arduino_sketches/beeper/arduino_tritone/music_data_bourrasque.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/music_data_incantation.h b/arduino_sketches/beeper/arduino_tritone/music_data_incantation.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/music_data_misterbeep.bin b/arduino_sketches/beeper/arduino_tritone/music_data_misterbeep.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/music_data_misterbeep.h b/arduino_sketches/beeper/arduino_tritone/music_data_misterbeep.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/music_data_snakecharmer.h b/arduino_sketches/beeper/arduino_tritone/music_data_snakecharmer.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/music_data_souvenirs_tritone.h b/arduino_sketches/beeper/arduino_tritone/music_data_souvenirs_tritone.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/music_data_test.h b/arduino_sketches/beeper/arduino_tritone/music_data_test.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/music_data_test2.h b/arduino_sketches/beeper/arduino_tritone/music_data_test2.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/snake_charmer_arduino.bin b/arduino_sketches/beeper/arduino_tritone/snake_charmer_arduino.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/souvenirs_tritone_arduino.bin b/arduino_sketches/beeper/arduino_tritone/souvenirs_tritone_arduino.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/test_bourrasque_arduino.bin b/arduino_sketches/beeper/arduino_tritone/test_bourrasque_arduino.bin old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/test_bourrasques.bbsong b/arduino_sketches/beeper/arduino_tritone/test_bourrasques.bbsong old mode 100644 new mode 100755 diff --git a/arduino_sketches/beeper/arduino_tritone/tritone_drums.wav b/arduino_sketches/beeper/arduino_tritone/tritone_drums.wav old mode 100644 new mode 100755 diff --git a/arduino_sketches/mozzi/mozzi_midi/mozzi_midi.ino b/arduino_sketches/mozzi/mozzi_midi/mozzi_midi.ino old mode 100644 new mode 100755 diff --git a/arduino_sketches/sid/sid_midi/noteList.cpp b/arduino_sketches/sid/sid_midi/noteList.cpp old mode 100644 new mode 100755 diff --git a/arduino_sketches/sid/sid_midi/noteList.h b/arduino_sketches/sid/sid_midi/noteList.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/sid/sid_midi/pitches.h b/arduino_sketches/sid/sid_midi/pitches.h old mode 100644 new mode 100755 diff --git a/arduino_sketches/sid/sid_midi/sid_midi.ino b/arduino_sketches/sid/sid_midi/sid_midi.ino old mode 100644 new mode 100755 diff --git a/atmega8/amstrad_6128_audio_out.png b/atmega8/amstrad_6128_audio_out.png old mode 100644 new mode 100755 diff --git a/atmega8/atmega8_burn.fzz b/atmega8/atmega8_burn.fzz old mode 100644 new mode 100755 diff --git a/atmega8/atmega8_burn_bb.pdf b/atmega8/atmega8_burn_bb.pdf old mode 100644 new mode 100755 diff --git a/atmega8/atmega8_burn_bb.png b/atmega8/atmega8_burn_bb.png old mode 100644 new mode 100755 diff --git a/atmega8/atmega8_schematic.png b/atmega8/atmega8_schematic.png old mode 100644 new mode 100755 diff --git a/atmega8/avray/AY_Emul_247_2ch_m8_ay.hex b/atmega8/avray/AY_Emul_247_2ch_m8_ay.hex old mode 100644 new mode 100755 diff --git a/atmega8/avray/AY_Emul_247_2ch_m8_ym.hex b/atmega8/avray/AY_Emul_247_2ch_m8_ym.hex old mode 100644 new mode 100755 diff --git a/atmega8/avray/Conf_serial_24MHz_1Mhz.hex b/atmega8/avray/Conf_serial_24MHz_1Mhz.hex old mode 100644 new mode 100755 diff --git a/atmega8/avray/Conf_serial_24MHz_1_75Mhz.hex b/atmega8/avray/Conf_serial_24MHz_1_75Mhz.hex old mode 100644 new mode 100755 diff --git a/atmega8/avray/Conf_serial_24MHz_2Mhz.hex b/atmega8/avray/Conf_serial_24MHz_2Mhz.hex old mode 100644 new mode 100755 diff --git a/atmega8/avray/GPLv3.txt b/atmega8/avray/GPLv3.txt old mode 100644 new mode 100755 diff --git a/atmega8/avray/GPLv3_rus.txt b/atmega8/avray/GPLv3_rus.txt old mode 100644 new mode 100755 diff --git a/atmega8/avray/avray_readme.txt b/atmega8/avray/avray_readme.txt old mode 100644 new mode 100755 diff --git a/atmega8/avray/ay_serial_24mhz_calculs.txt b/atmega8/avray/ay_serial_24mhz_calculs.txt old mode 100644 new mode 100755 diff --git a/atmega8/avray/source_AY_Emul_247.asm b/atmega8/avray/source_AY_Emul_247.asm old mode 100644 new mode 100755 diff --git a/breadboard/garvuino_09g_breadboard_only.fzz b/breadboard/garvuino_09g_breadboard_only.fzz old mode 100644 new mode 100755 diff --git a/breadboard/garvuino_09g_breadboard_only_bb.jpg b/breadboard/garvuino_09g_breadboard_only_bb.jpg old mode 100644 new mode 100755 diff --git a/breadboard/garvuino_09g_breadboard_only_bb.pdf b/breadboard/garvuino_09g_breadboard_only_bb.pdf old mode 100644 new mode 100755 diff --git a/doc/garvuino_manual.md b/doc/garvuino_manual.md new file mode 100644 index 0000000..cdafdb4 --- /dev/null +++ b/doc/garvuino_manual.md @@ -0,0 +1,25 @@ +Garvuino Manual +Garvalf +2017-09-13 + + +# Garvuino + +Thank you for your interest in Garvuino! The Garvuino is a PCB board for creating musics, sounds and chiptunes, either through programmation, soundtracker or live recording (midi). + +It's open-source hardware, so you can modify, hack, have fun with it without restriction. + +## Assembly the board + +If you got the board through a kit, soldering it should be pretty simple as there are only basic components. + +If you have no clue about how to solder, this guide might be of some use for you: https://www.makerspaces.com/how-to-solder/ + +Solder the resistors and capacitors first for example, then the jumpers, socket, led, switch, crystal and audio jack. In any case, the sd card reader should be soldered after all of this, but it's also adviced to solder the midi DIN5 connecter last, otherwise you might find it difficult to solder the sd card reader. + +There is a little error on the version 1.09 / 2017-08 of the PCB board, which I've fixed with a wire. + +## Flashing the board + +This board is supposed to work extensively with the Arduino IDE (http://arduino.cc/). You must download it and use it for developping, changing sounds and engines. The only exception is if you only intend to use the board as a AY player, then you can just change the tunes on the SD card. + diff --git a/doc/garvuino_manual.pdf b/doc/garvuino_manual.pdf new file mode 100644 index 0000000..c72ab9c Binary files /dev/null and b/doc/garvuino_manual.pdf differ diff --git a/doc/garvuino_manual/garvuino_manual.css b/doc/garvuino_manual/garvuino_manual.css new file mode 100755 index 0000000..981815b --- /dev/null +++ b/doc/garvuino_manual/garvuino_manual.css @@ -0,0 +1,394 @@ +/* =========== SAMPLE STYLE FOR TEXTALLION ===========================*/ +/* http://textallion.googlecode.com */ + +/*Inspired by http://code.google.com/p/better-web-readability-project/ */ + + +@font-face { + /* optionnal */ + /* see http://code.google.com/webfonts */ + /* example with http://www.google.com/webfonts/family?family=Goudy+Bookletter+1911&subset=latin#code + * Just add "CustomFont" (and rename it if you prefer), before serif in the body {}, or remove it if you don't want this */ + font-family: "CustomFont"; + font-style: normal; + font-weight: normal; + src: url("http://themes.googleusercontent.com/font?kit=l5lwlGTN3pEY5Bf-rQEuILmKcuvUA98TddnVPjOJl_w"); +} + + +body { + margin:2em; + padding:1.2em; + /*font-size:1.2em;*/ + font:1.5em CustomFont, serif; + line-height:1.625em; + background-color:#FFFEF0; + font-size-adjust:0.4; + /*font-style:normal; + font-variant:normal; + font-weight:normal;*/ + color:#333; +} + +/* alternatives: "Palatino Linotype", "Book Antiqua", Palatino , Bookman */ + + + +/* +p:first-line { + margin-left: 5.7em;padding-left: 5.7em; +} +* */ + +p { + /* background-color:#FFFEF0; */ + text-indent:1.625em; + margin-top: 0.7em; + margin-bottom: 0.7em; + text-align: justify; + -webkit-hyphens: auto; -moz-hyphens: auto; -ms-hyphens: auto; -o-hyphens: auto; hyphens: auto; + +} + +ul { + margin-top: 0.7em; + margin-bottom: 0.7em; + text-align: justify; +} + + + +p.initial { + text-indent:0.05em; +} + +p.initial:first-letter { + position: relative; + padding-top:8px; + display: block; + float: left; + font-weight: normal; + font-size: 3.4em; +} + + + + +/*p img { float: left; margin: 0.5em 0.8125em 0.8125em 0; padding: 0; }*/ +/*p img.right { float: right; margin: 0.5em 0 0.8125em 0.8125em }*/ + + +img { + margin: 0.3em 0.3em 0.3em 0.3em ; + max-width: 90%; +} + +blockquote p, li p { + } + +blockquote, pre { + line-height: 1.2em; + margin-right:10px; margin-left:10px; + padding: 1em; + font-family : monospace; + /*background-color: #E7E6DA;*/ + /*border:1px #9b9989 dotted;*/ + /*border-left: 3px solid #999;*/ +} + +/*Andale Mono*/ + +/*ul { + text-indent: 0.4em; + margin-left: 4.2em; + text-align: left;} */ + + + +h1,h2,h3,h4,h5,h6 { font-weight: bold; color: #333; } +.title1,.title2,.title3 { font-weight: bold; color: #333; } + + +h1 { font-size: 2.125em; margin-bottom: 0.765em; } +h2 { font-size: 1.9em; margin-bottom: 0.855em; color:Sienna;} +h3 { font-size: 1.7em; margin-bottom: 0.956em; color:SaddleBrown;} +h4 { font-size: 1.55em; margin-bottom: 1.161em; } +h5,h6 { font-size: 1.313em; margin-bottom: 1.238em; } + +.title1 { font-size: 2.125em; margin-bottom: 0.765em; } +.title2 { font-size: 1.9em; margin-bottom: 0.855em; } +.title3 { font-size: 1.7em; margin-bottom: 0.956em; } + + +a { + color:#09c; + text-decoration:none; + } + +a:link {color:#057;} +a:visited {color:#046;} +a:hover {background-color:#eee; text-decoration: none; border-bottom: 1px solid #ccc } + +div.center { + text-indent:0em; + text-align:center;margin-right:auto;margin-left:auto; + margin-top:0em; + margin-bottom:-0.5em; +} + +.center { + text-indent:0em; + text-align:center;margin-right:auto;margin-left:auto; + margin-top:0em; + margin-bottom:-0.5em; +} + + +p.center { + text-indent:0em; + text-align:center;margin-right:auto;margin-left:auto; + margin-top:0em; + margin-bottom:0em; +} + + +.big { + font-size:135%; +} + +.small { + font-size:70%; +} + +.exergue { + text-align:right;margin-left:40px;margin-right:10px; + font-style:italic; + font-size:90%; +} + +.exergueauthor { + text-align:right; + font-size:90%; + font-variant: small-caps; +} + +.italic {font-style:italic;} +.bold {font-weight:bold;} +.boxed {border-style:solid;} + +div.code { + line-height: 1.2em; + margin-right:10px; margin-left:10px; + padding: 1em; + font-family : monospace; + background-color: #E7E6DA; + border:1px #9b9989 dotted; + border-left: 3px solid #999; +} + +div.code p{ + line-height: 1.2em; + font-family : monospace; + background-color: #D6D5CA; + +} + + + +div.column2 { + -moz-column-count: 2; + -moz-column-gap: 3em; + -moz-column-rule: 1px solid black; + + -webkit-column-count: 2; + -webkit-column-gap: 3em; + -webkit-column-rule: 1px solid black; +} + +div.column3 { + -moz-column-count: 3; + -moz-column-gap: 3em; + -moz-column-rule: 1px solid black; + + -webkit-column-count: 3; + -webkit-column-gap: 3em; + -webkit-column-rule: 1px solid black; +} + +div.column4 { + -moz-column-count: 4; + -moz-column-gap: 3em; + -moz-column-rule: 1px solid black; + + -webkit-column-count: 4; + -webkit-column-gap: 3em; + -webkit-column-rule: 1px solid black; +} + + + + + +/* txt2cyoa */ + +a.hiddenlink { + background-color:#FFFEF0; + color: #FFFEF0; /* same color as the surrounding text */ + text-decoration: none; /* to remove the underline */ + cursor: text; /* to make the cursor stay as a text cursor, not the hand */ + } + + +#header .title1 { color: #fff; text-align: center;} + +#header h1 { color: #fff; text-align: center;} + + + + +.wrap, .wrap_left { + float: left; + margin-top: 0; + margin-right: 20px; + margin-bottom: 10px; + margin-left: 0px; + border: 1px solid #000; + padding: 2px; +} + +.wrap_right { + float: right; + margin-top: 0; + margin-right: 0px; + margin-bottom: 10px; + margin-left: 20px; + border: 1px solid #000; + padding: 2px; +} + +.l { + font-size: 0.8em; + display:inline; + padding: 0.1em 0.3em 0.1em 0.3em; + + text-decoration: none; + + width:160px; + font-weight: 500; + +} +.l:hover +{ + border:none; + color: #FFF; + background: #6487ba; +} + + +input +{ + color: #000; + background: #eee; + border: 1px solid #6487ba; +} + +button0 { + color:#000; + size: 3em; + /*font: bold 100%; */ + background-color:#eee; + /*border:2px solid; + border-color: #000; */ + } + + + + +#footer { + text-align: center; + font-size: 0.8em; +} + +#footer2 { + margin:auto; + text-align: center; + font-size: 0.7em; + background-color:#ddd; + width:50%; +} + + +#note { + text-align: left; + font-style: italic; + color: #444; +} + +#note p { + text-align: left; + font-style: italic; + color: #444; +} + + +/* footnotes */ + +span[id^="ftn"] { + display: none; + color: #bbb; + } +span[id^="ftn"]:target { + display: block; + color: #222; + background-color: rgba(214,213,202, 0.9); + font-size: 0.8em; + position: fixed; + right: 0.6em; + bottom: 1.1em; + width: 40%; + border-left: 3px solid #777; + padding: 0.5em; + } + +a.ftn:link { + color: #222; +} + +a.ftn:visited { + color: #222; +} + + +a.ftn:hover { + color: #444; + /*text-decoration: underline;*/ +} + +table { + border-collapse: collapse; +} + +td { + padding:4px; +} + +div.toc { + line-height: 1.1em; + margin-top: 0; + margin-bottom: 0px; + font-size:0.9em; +} + +div.toc ul { + margin-top: 0.0em; + margin-bottom: 0.2em; +} + + +.smallcaps { +text-transform: lowercase; +font-variant: small-caps; +} +.smallcaps:first-letter { +text-transform: uppercase; +} diff --git a/doc/garvuino_manual/garvuino_manual.jpg b/doc/garvuino_manual/garvuino_manual.jpg new file mode 100755 index 0000000..091fc30 Binary files /dev/null and b/doc/garvuino_manual/garvuino_manual.jpg differ diff --git a/doc/garvuino_manual/garvuino_manual.png b/doc/garvuino_manual/garvuino_manual.png new file mode 100755 index 0000000..46bb78b Binary files /dev/null and b/doc/garvuino_manual/garvuino_manual.png differ diff --git a/doc/garvuino_manual/garvuino_manual.sty b/doc/garvuino_manual/garvuino_manual.sty new file mode 100755 index 0000000..2b80064 --- /dev/null +++ b/doc/garvuino_manual/garvuino_manual.sty @@ -0,0 +1,224 @@ +% =========== SAMPLE STYLE FOR TEXTALLION ============================== + +\usepackage[small,sf,bf]{titlesec} +\pagenumbering{roman} + +\usepackage[all]{nowidow} + +\widowpenalty10000 +\clubpenalty10000 + +% For using extended colors +\usepackage[usenames,svgnames]{xcolor} +\usepackage{mdframed} % boxes and frames + +% helping the creation of the index +\usepackage{makeidx} + +% create the index. Disable to save time if you don't use it +\makeindex + +% for customizing titles +\def\TITLExSEPxSIZE{10} %in pt, default 20 + +\def\TITLExPARTxOPTIONS{\centering\normalfont\Huge\bfseries} % add options if needed, for ex. \centering +\def\TITLExCHAPTERxOPTIONS{\centering\color{DarkCyan}\normalfont\LARGE\bfseries} % add options if needed, for ex. \centering +\def\TITLExSECTIONxOPTIONS{\color{CadetBlue}\normalfont\Large\bfseries} +\def\TITLExSUBSECTIONxOPTIONS{\normalfont\large\bfseries} +\def\TITLExSUBxSUBxSECTIONxOPTIONS{\normalfont\normalsize\bfseries} + + + +% ----------- FONT OPTION 1 -------------------------------------------- + +% DEF: beware of _ in the "def", they may not be interpreted + +%% LATEX + +\def\DEFAULTxFONT{pag} % default font for LaTeX (pdflatex) + %% Valid use can be: + % {cmr} for computer modern (default in LaTeX) + % {bch} for charter bt roman, + % {lmr} for latin modern roman + % {lmss} for latin modern sans + % {lmtt} for latin modern typewriter + % {pag} for avant garde + % {pcr} for courier + % {phv} for helvetica + % {pnc} for new century schoolbook + % {ppl} for palatino, + % {pzc} for zapf chancery, + % {ptm} for times + % Dunhill (cmdh) / ptm + % dayrom (needs to be installed) + + + +\def\DEFAULTxFONTxSIZE{14} % 8pt, 9pt, 10pt, 11pt, 12pt, 14pt, 17pt, and 20pt (don't add pt). 12pt is default for LaTeX. Other sizes might not work. + + +%% XETEX (other rendering) + +\def\DEFAULTxXETEXxFONT{Share Tech} % default XeTeX font. + %% Valid use can be: + % Linux Libertine O + % Fontin Regular + % Linux Biolinum O (no bolt italic?) + % DejaVu Serif, DejaVu Sans,DejaVu Mono + % Gentium (ttf-gentium) + % Delicious + % Tallys (no bold, no italic) + % Junicode : doesn't work well + % Cheboygan (no bold, no italic) + % Sans Guilt (Gill Sans), get it at http://ospublish.constantvzw.org/foundry/sans-guilt or use "Cabin" (font-cabin package), or "Gillius ADF" + + + +\def\DEFAULTxXETEXxFONTxSIZE{16} % 8pt, 9pt, 10pt, 11pt, 12pt, 14pt, 17pt, and 20pt (don't add pt). 12pt is default for LaTeX. FOR XETEX ONLY. It seems xetex fonts usually render smaller. + + + + + +% --------- FONT OPTION 2 ---------------------------------------------- + +% if not used, set this empty one as default otherwise there will be an error +\def\SPECIALxFONT{} + +%\usepackage{egothic} +%\def\SPECIAL_FONT{\normalfont\egothfamily} + +%\usepackage{inslrmin} % ex \usepackage{egothic} +%\def\SPECIAL_FONT{\iminfamily} % ex \normalfont\egothfamily + + +% ---------- MARGINS & PAGE -------------------------------------------- + + +\def\ADDITIONALxOPTIONS{} + +% define the text zone + +\def\HEIGHTxOFxTEXT{237} % in mm +\def\WIDTHxOFxTEXT{150} % in mm + +% -- for A5 (example) +%\def\HEIGHTxOFxTEXT{150} % in mm +%\def\WIDTHxOFxTEXT{100} % in mm + +%\def\TOP_MARGIN_OF_DOCUMENT{0} % in mm +%\def\BOTTOM_MARGIN_OF_DOCUMENT{0} % in mm +%\def\LEFT_MARGIN_OF_DOCUMENT{0} % in mm +%\def\RIGHT_MARGIN_OF_DOCUMENT{0} % in mm + +\def\SIZExOFxPAPER{a4paper} % a5paper, a4paper... for custom use for ex. \SIZExOFxPAPER{papersize={110mm,200mm}} +\def\ORIENTATIONxOFxPAPER{portrait} %landscape, portrait + + +\def\PARAGRAPHxSPACE{8} % default 8 in pt. Will be a fixed size. + +\def\LINExSPACE{1.20} % default 120%. Only for Latex (not xetex) + +%\addtolength{\parskip}{\baselineskip} % skip one line between 2 paragraphs. + + +\def\WIDTHxOFxCOLUMNS{20} % default 20 mm +\def\LINEWIDTHxOFxCOLUMNS{1} % default 1 pt + + + +\def\INITIALxLETTERxSIZE{2} % number of lines used by initials when they are activated. 2 or 3 seems a reasonable choice. + +\def\GEOMETRYxADDITIONALxOPTION{} % ex: "twocolumn, twoside, bindingoffset=1cm" % DOESN'T WORK YET + + +%\def\TYPE_OF_DOCUMENT{book} % book, article... IT DOESNT WORK + + +\def\PAGExBREAKxPOLICY{2} % higher number will make it more likely to produce a page break for a new \section or chapter (heading 1), from 0 (never break), to 4 (always break). + +\def\PAGExSUBxBREAKxPOLICY{2} % higher number will make it more likely to produce a page break for a new \section (heading 1), from 0 (never break), to 4 (always break). + + +\def\FOOTERxSPACE{18} % from below the text, in mm +\def\FOOTNOTExSPACE{14} % space between the body and a footnote, in mm + +\usepackage{color} + +\definecolor{MyColor}{rgb}{0.0,0.2,0.3} +\def\LINKxCOLOR{MyColor} + + +\def\STYLExOFxBULLET{\textbullet} % can be \textbullet or \textemdash +%\def\STYLExOFxBULLET{\textemdash} % can be \textbullet or \textemdash + +\def\HEADERxNUMBERING{-2} % display or not the numbers in the chapters (4 is generally the default in LaTeX). It looks odd for literature so we turn it to -1 here. (-1 because of chapters replacing sections) + +%% Additionnal style + +\usepackage{fancybox} + +\renewcommand{\chaptermark}[1]{ \markboth{#1}{} } %% for getting lower case in chapters headnote +\renewcommand{\sectionmark}[1]{ \markright{#1}{} } %% for getting lower case in sections headnote + +%% use fancyhd in the future instead? + +%% \leftmark -> = chapter = +%% \rightmark -> == section == + +%% Header text even (left) (and both odd and even if article class is used) + +\def\PAGExSTYLE{plain} %% can be fancy, plain or fancyplain for different output control + +\def\LEFTxHEAD{} +\def\CENTERxHEAD{\MYxFONT\DOCUMENTxTITLE} +\def\RIGHTxHEAD{} + +%% Header text odd (right) + +\def\LEFTxHEADxODD{} +\def\CENTERxHEADxODD{\MYxFONT\rightmark} +\def\RIGHTxHEADxODD{} + +%% Footer text even (left) (and both odd and even if article class is used) + +\def\LEFTxFOOT{~ \MYxFONT\normalsize\thepage ~} +\def\CENTERxFOOT{} +\def\RIGHTxFOOT{} + +%% Footer text odd (right) + +\def\LEFTxFOOTxODD{} +\def\CENTERxFOOTxODD{} +\def\RIGHTxFOOTxODD{~ \MYxFONT\normalsize\thepage ~} + + + +%-- exergue definitions -- + +\def\EXERGUExLEFTxMARGIN{40} % in pt, default 40 +\def\EXERGUExRIGHTxMARGIN{10} % in pt, default 10 +\def\EXERGUExAUTHORxSPACE{4} % in pt, default 4 +\def\EXERGUExSIZE{\small} % default \small (possible values are \small \normalsize \large etc.) +\def\EXERGUExSHAPE{\slshape} % default \slshape +\def\EXERGUExAUTHORxSHAPE{\scshape} % default \scshape + % slshape = slander ; scshape = small capitals ; itshape = italic ; upshape = normal letters ; bfseries = bold + + +%-- code definitions -- + +\def\CODExLEFTxMARGIN{20} % in pt, default 20 +\def\CODExRIGHTxMARGIN{20} % in pt, default 20 +\def\CODExSHAPE{ttfamily} % default ttfamily (monospace type courier) + + +% table margins + +\renewcommand{\arraystretch}{1.0} % rows +\addtolength{\tabcolsep}{0pt} % columns + +\def\TABUxSEP{2mm} % space around content for tables (using tabu package) + + +%% mdframed (boxes) style +\mdfsetup{linecolor=brown ,linewidth=2pt ,backgroundcolor=brown!10 ,splittopskip = \topskip ,roundcorner=10pt} diff --git a/doc/garvuino_manual/garvuino_manual.svg b/doc/garvuino_manual/garvuino_manual.svg new file mode 100755 index 0000000..a0a2407 --- /dev/null +++ b/doc/garvuino_manual/garvuino_manual.svg @@ -0,0 +1,241 @@ + + + + + + + + image/svg+xml + + + + + + + + + + Garvuino Manual + Garvalf + TEXTALLION EDITIONS + roman + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/garvuino_manual/garvuino_manual.t2t b/doc/garvuino_manual/garvuino_manual.t2t new file mode 100755 index 0000000..7f09dbf --- /dev/null +++ b/doc/garvuino_manual/garvuino_manual.t2t @@ -0,0 +1,58 @@ +Garvuino Manual +Garvalf +2017-09-13 + + +%% DEF DOCUMENT METADATA. Use your own. Remplace the second part only, don't modify the xx DOCUMENT ## xx + +%!postproc(tex): 'xx DOCUMENT TITLE xx' 'Garvuino Manual' + +%!postproc(tex): 'xx DOCUMENT AUTHOR xx' 'Garvalf' + +%!postproc(tex): 'xx DOCUMENT TAGS xx' 'arduino, 8bit, 1bit, chiptune, ym2149, ay38910' + + +%!style(tex): garvuino_manual.sty + +%!style(xhtml): garvuino_manual.css + + +%!includeconf: /usr/share/textallion//core/textallion.t2t + +%!postproc(tex): 'TEXTALLIONPATH' '/usr/share/textallion/' + + += Garvuino = + + +Thank you for your interest in Garvuino! The Garvuino is a PCB board for creating musics, sounds and chiptunes, either through programmation, soundtracker or live recording (midi). + +It's open-source hardware, so you can modify, hack, have fun with it without restriction. + + + +== Assembly the board == + +If you got the board through a kit, soldering it should be pretty simple as there are only basic components. + +If you have no clue about how to solder, this guide might be of some use for you: https://www.makerspaces.com/how-to-solder/ + +Solder the resistors and capacitors first for example, then the jumpers, socket, led, switch, crystal and audio jack. In any case, the sd card reader should be soldered after all of this, but it's also adviced to solder the midi DIN5 connecter last, otherwise you might find it difficult to solder the sd card reader. + +There is a little error on the version 1.09 / 2017-08 of the PCB board, which I've fixed with a wire. + + + + +== Flashing the board == + +This board is supposed to work extensively with the Arduino IDE (http://arduino.cc/). You must download it and use it for developping, changing sounds and engines. The only exception is if you only intend to use the board as a AY player, then you can just change the tunes on the SD card. + + +//TO BE CONTINUED// + + + + + + diff --git a/doc/garvuino_manual/makefile b/doc/garvuino_manual/makefile new file mode 100755 index 0000000..6f86419 --- /dev/null +++ b/doc/garvuino_manual/makefile @@ -0,0 +1,689 @@ +# Makefile for TeXtallion +# Tiny almost-Kiss Word Processor +# http://anamnese.online.fr/site2/textallion/docs/presentation.html +# License: http://en.wikipedia.org/wiki/BSD_licenses +# +# get newest txt2tags at http://txt2tags.org (might not be fully compatible with textallion) +# get newest textallion at https://bitbucket.org/farvardin/textallion +# +# This is a Makefile for *GNU make*, the default for Linux. +# On *BSD systems, you'll need to use "gmake" instead of "make" + +# Makefile initially generated on 2017-09-13 + + +TEXTALLIONFOLDER = /usr/share/textallion// +# keep /usr/share/textallion if it is written so! + +ifeq ($(wildcard /usr/bin/python2),) + PYTHONVER = python +else + PYTHONVER = python2 +endif + +TXT2TAGS = $(PYTHONVER) $(TEXTALLIONFOLDER)/contrib/txt2tags/txt2tags +#TXT2TAGS = txt2tags + +ifdef TEXTALLIONDOC + DOCUMENT = $(TEXTALLIONDOC) +else + DOCUMENT = garvuino_manual + #DOCUMENT = the_blue_death + #DOCUMENT = la_mort_bleue + #DOCUMENT = template + #DOCUMENT = un_nouveau_monde + #DOCUMENT = un_nouveau_monde_gbl + #DOCUMENT = who_are_you + #DOCUMENT = sample + #DOCUMENT = exemple_lettre +endif + +DOCUMENT_TITLE = Garvuino Manual +DOCUMENT_AUTHOR = Garvalf +DOCUMENT_TAGS = arduino, 8bit, 1bit, chiptune, ym2149, ay38910 +DOCUMENT_INFO = textallion - https://bitbucket.org/farvardin/textallion + +ifdef DOCLANG + DOCUMENT_LANGUAGE = $(DOCLANG) +else + DOCUMENT_LANGUAGE = en +endif + +#DOCUMENT_COVER = $(TEXTALLIONFOLDER)/media/sample_cover.png +DOCUMENT_COVER = $(DOCUMENT).jpg + +PDFREADER = xdg-open +EPUBREADER = ebook-viewer +HTMLREADER = firefox +DIFFTOOL = meld +RENPY = /opt/renpy/renpy.sh + +UNAME := $(shell uname) + +ifeq ($(UNAME), Darwin) + EDITTOOL = open +else +# EDITTOOL = gvim + EDITTOOL = geany +endif + + + + +info: + printf "make: + \n all \n beamer \n booklet \n clean \n cleanall \n clean-everything \n configuration-update \n cover \n cyoa-epub \n cyoa-gbl \n cyoa-graph \n cyoa-html \n cyoa-hyena \n cyoa-inform7 \n cyoa-pdf \n cyoa-play \n cyoa-ramus \n cyoa-renpy \n cyoa-togbl \n cyoa-twee \n cyoa-txt \n edit \n epub \n html \n htmlhandhelds \n info \n makefile \n pdf \n pdfsmall \n read \n readepub \n readhtml \n readindex \n readpdf \n slidy \n split \n tidy \n txt \n vignettes \n website \n xetex \n \n" + +all: pdf md clean + + +#distrib: html clean +# -rm $(DOCUMENT).zip +# -rm -fr $(DOCUMENT) +# -mkdir $(DOCUMENT) +# -cp * $(DOCUMENT) +# zip $(DOCUMENT).zip -r $(DOCUMENT) -x $(DOCUMENT).zip + + +md: + $(TXT2TAGS) -t md -o ../garvuino_manual.md garvuino_manual.t2t + + +html: + $(TXT2TAGS) -T $(TEXTALLIONFOLDER)/templates/xhtml.html -t xhtml --css-inside --css-sugar --toc --outfile $(DOCUMENT).html $(DOCUMENT).t2t + +htmlhandhelds: + $(TXT2TAGS) -t xhtml --no-style --style=$(TEXTALLIONFOLDER)/includes/sample_handheld.css --toc --outfile $(DOCUMENT).html $(DOCUMENT).t2t + +edit: + $(EDITTOOL) $(DOCUMENT).t2t & +txt: + $(TXT2TAGS) --no-headers -t txt $(DOCUMENT).t2t + +pdf: + $(TXT2TAGS) -T $(TEXTALLIONFOLDER)/templates/latex.tex -t tex --toc --outfile $(DOCUMENT).tex $(DOCUMENT).t2t +ifeq ($(DOCUMENT_LANGUAGE),en) + sed -i -e "s/,frenchb,francais//g" $(DOCUMENT).tex +endif + -pdflatex -interaction batchmode $(DOCUMENT).tex + -makeindex $(DOCUMENT).idx + -pdflatex -interaction batchmode $(DOCUMENT).tex + # (the compilation of the latex document is duplicated so the TOC generated the first time will be included the second time) + -pdflatex -interaction batchmode $(DOCUMENT).tex + # and one again because of makeindex + mv $(DOCUMENT).pdf ../ + + +pdfweb: + make html + wkhtmltopdf --page-size A4 --margin-top 1.0cm --margin-bottom 1.0cm --margin-left 0.5cm --margin-right 0.5cm $(DOCUMENT).html $(DOCUMENT).pdf + +pdfwk: + make pdfweb + +pdfnolatex: + make pdfweb + + +xetex: + $(TXT2TAGS) -T $(TEXTALLIONFOLDER)/templates/xetex.tex -t tex --toc --outfile $(DOCUMENT).tex $(DOCUMENT).t2t +ifeq ($(DOCUMENT_LANGUAGE),en) + sed -i -e "s/,frenchb,francais//g" $(DOCUMENT).tex +endif + -xelatex -interaction batchmode $(DOCUMENT).tex + -xelatex -interaction batchmode $(DOCUMENT).tex + +latex: + make pdf + + +lettre: + $(TXT2TAGS) -T $(TEXTALLIONFOLDER)/templates/lettre.tex -t tex --no-toc --outfile $(DOCUMENT).tex $(DOCUMENT).t2t + -pdflatex -interaction batchmode $(DOCUMENT).tex + -make clean + +lettre-1page: + pdfjam $(DOCUMENT).pdf '1' --outfile $(DOCUMENT)b.pdf + mv $(DOCUMENT)b.pdf $(DOCUMENT).pdf + +readpdf: + $(PDFREADER) $(DOCUMENT).pdf & + +readhtml: + $(HTMLREADER) $(DOCUMENT).html & + +readindex: + $(HTMLREADER) index_$(DOCUMENT).html & + +readepub: + $(EPUBREADER) $(DOCUMENT).epub & + +read: + make readpdf & + +pdfsmall: pdf + -pdfnup $(DOCUMENT).pdf --nup 2x1 + +booklet: pdf + -pdf2ps $(DOCUMENT).pdf + -psbook $(DOCUMENT).ps | psnup -2 > $(DOCUMENT)_booklet.ps + -ps2pdf $(DOCUMENT)_booklet.ps + + +slidy: + $(TXT2TAGS) -C $(TEXTALLIONFOLDER)/templates/slidy.conf.t2t -T $(TEXTALLIONFOLDER)/templates/slidy -t xhtml --css-inside -o $(DOCUMENT)_slide.html $(DOCUMENT).t2t + +beamer: + $(TXT2TAGS) --no-style --no-infile -C $(TEXTALLIONFOLDER)/templates/beamer.conf.t2t -C $(TEXTALLIONFOLDER)/core/textallion_beamer.t2t -T $(TEXTALLIONFOLDER)/templates/beamer -t tex -o $(DOCUMENT)_slide.tex $(DOCUMENT).t2t + pdflatex $(DOCUMENT)_slide.tex + + +# uses html tidy + +tidy: + -tidy -asxhtml --tidy-mark 1 --wrap 0 --clean 1 --output-xhtml 1 --input-encoding utf8 --doctype strict --new-inline-tags video,audio,canvas $(DOCUMENT).html > $(DOCUMENT)2.html + cat $(DOCUMENT)2.html | sed -e "s///g" | sed -e "s/border=\"0\"//g" | sed -e "s/lang=\"fr\"//g" | sed -e "s/border=\"0\"//g" | sed -e "s/<\?xml version=\"1.0\" encoding=\"utf8\"\?>//g" | sed -e "s/name=\"toc[0-9]\"//g"> $(DOCUMENT).html + +# uses calibre + + +epub: + $(TXT2TAGS) -T $(TEXTALLIONFOLDER)/templates/epub.html -t xhtml --no-style --no-toc --outfile $(DOCUMENT).html $(DOCUMENT).t2t + cat $(DOCUMENT).html | sed -e "s///g" > $(DOCUMENT)2.html + mv $(DOCUMENT)2.html $(DOCUMENT).html + -make tidy + cat $(DOCUMENT).html | sed -e "s/❦/*/g" | sed -e "s/❧/*/g" | sed -e "s/✵/*/g" | sed -e "s/☼/*/g" | sed -e "s/☽/*/g" | sed -e "s/☾/*/g" | sed -e "s/○/*/g" | sed -e "s/html\#ftn/html/g" > $(DOCUMENT)2.html + mv $(DOCUMENT)2.html $(DOCUMENT).html + # + ebook-convert $(DOCUMENT).html $(DOCUMENT).epub --max-levels 0 --pretty-print --level1-toc //h:h1 --level2-toc //h:h2 --level3-toc //h:h3 --max-toc-links 0 --toc-threshold 3 --chapter-mark pagebreak --cover $(DOCUMENT_COVER) --extra-css $(TEXTALLIONFOLDER)/includes/epub.css --no-default-epub-cover --preserve-cover-aspect-ratio --no-chapters-in-toc --disable-font-rescaling + # --filter-css font-family + # + ebook-meta $(DOCUMENT).epub --title "$(DOCUMENT_TITLE)" --authors "$(DOCUMENT_AUTHOR)" --tags "$(DOCUMENT_TAGS)" --language $(DOCUMENT_LANGUAGE) --book-producer 'textallion - https://bitbucket.org/farvardin/textallion' --comments "$(DOCUMENT_INFO)" --cover $(DOCUMENT_COVER) + +# split (not working well...) + +split: + htmldoc --no-links --charset utf8 --strict --book -t htmlsep -d ebook $(DOCUMENT)2.html + #$(TXT2TAGS) -t html --split 2 --no-toc --outfile $(DOCUMENT).html $(DOCUMENT).t2t + +website: + cat $(TEXTALLIONFOLDER)/templates/website.html | sed -e "s|%%DOCUMENT AUTHOR%%|$(DOCUMENT_AUTHOR)|g" | sed -e "s|%%DOCUMENT TITLE%%|$(DOCUMENT_TITLE)|g" | sed -e "s|%%DOCUMENT%%|$(DOCUMENT)|g" | sed -e "s|%%DOCUMENT COVER%%|$(DOCUMENT_COVER)|g" > index_$(DOCUMENT).html + + +cover: + convert $(DOCUMENT).svg $(DOCUMENT).jpg + convert $(DOCUMENT).svg $(DOCUMENT).png + + +configuration-update: + $(DIFFTOOL) makefile $(TEXTALLIONFOLDER)/samples/makefile + $(DIFFTOOL) $(DOCUMENT).sty $(TEXTALLIONFOLDER)/includes/sample.sty + $(DIFFTOOL) $(DOCUMENT).css $(TEXTALLIONFOLDER)/includes/sample.css + +# CYOA part + +cyoa-play: + $(BROWSER) $(DOCUMENT).html + +cyoa-html: + $(TXT2TAGS) -T $(TEXTALLIONFOLDER)/templates/cyoa.html --config-file $(TEXTALLIONFOLDER)/core/txt2cyoa.t2t -t xhtml --css-inside --outfile $(DOCUMENT).html $(DOCUMENT).t2t + + +cyoa-ramus: + $(TXT2TAGS) -T $(TEXTALLIONFOLDER)/templates/ramus.html --config-file $(TEXTALLIONFOLDER)/core/txt2cyoa.t2t -t xhtml --no-css-inside --outfile $(DOCUMENT)_ramus.html $(DOCUMENT).t2t + sed -i -e "s/href=\"#/rel=\"/g" $(DOCUMENT)_ramus.html + sed -i -e "s/style=\"display:none\"//g" $(DOCUMENT)_ramus.html + #sed -i -e "s/onclick\(.*\)rel/rel/" $(DOCUMENT)_ramus.html + sed -i -e "s/

<\/p><\/div>/xxCLEARLINKSxx\n<\/div>/g" $(DOCUMENT)_ramus.html + # remove the 1st occurence only + sed -i -e "0,/\xxCLEARLINKSxx/s/\xxCLEARLINKSxx//" $(DOCUMENT)_ramus.html + # Create the do clear links + # If you don't like it this way, uncomment the next line first, to remove everything + #sed -i -e "s/xxCLEARLINKSxx//g" $(DOCUMENT)_ramus.html + sed -i -e "s/\xxCLEARLINKSxx/\[\?do clear_links\(\)\; \?\]/g" $(DOCUMENT)_ramus.html + sed -i -e "s/xxRAMUS_INITxx/

\n
\n
  • Start: 1<\/a><\/b>/g" $(DOCUMENT)_ramus.html + + + +cyoa-txt: + $(TXT2TAGS) --no-headers -t txt $(DOCUMENT).t2t + +cyoa-pdf: + #$(TXT2TAGS) -t tex --outfile $(DOCUMENT).tex $(DOCUMENT).t2t + #-pdflatex $(DOCUMENT).tex + $(TXT2TAGS) -T $(TEXTALLIONFOLDER)/templates/latex.tex --config-file $(TEXTALLIONFOLDER)/core/txt2cyoa.t2t -t tex --no-toc --outfile $(DOCUMENT).tex $(DOCUMENT).t2t + -pdflatex -interaction batchmode $(DOCUMENT).tex + +cyoa-gamebook: +# doesnt work yet! +# http://www.ctan.org/tex-archive/macros/latex/contrib/gamebook + #$(TXT2TAGS) -t tex --outfile $(DOCUMENT).tex $(DOCUMENT).t2t + #-pdflatex $(DOCUMENT).tex + $(TXT2TAGS) -T $(TEXTALLIONFOLDER)/templates/gamebook.tex --config-file $(TEXTALLIONFOLDER)/core/txt2cyoa.t2t -t tex --no-toc --outfile $(DOCUMENT).tex $(DOCUMENT).t2t + #sed -i -e "s/\\textbf{\\begin{center}\\subsection\*{\\Huge{([^ ].*?)}}\\end{center}\\vskip-2em}/\gbsection{\1}/g" $(DOCUMENT).tex + sed -i -e "s/\\textbf{\\begin{itemize}/\begin{gbturnoptions}/g" $(DOCUMENT).tex + sed -i -e "s/\\item/\gbitem/g" $(DOCUMENT).tex + -pdflatex -interaction batchmode $(DOCUMENT).tex + +cyoa-epub: + $(TXT2TAGS) -T $(TEXTALLIONFOLDER)/templates/epub.html --config-file $(TEXTALLIONFOLDER)/core/txt2cyoa.t2t -t xhtml --no-style --no-toc --outfile $(DOCUMENT).html $(DOCUMENT).t2t + cat $(DOCUMENT).html | sed -e "s///g" > $(DOCUMENT)2.html + mv $(DOCUMENT)2.html $(DOCUMENT).html + -make tidy + cat $(DOCUMENT).html | sed -e "s/❦/*/g" | sed -e "s/❧/*/g" | sed -e "s/✵/*/g" | sed -e "s/☼/*/g" | sed -e "s/☽/*/g" | sed -e "s/☾/*/g" | sed -e "s/○/*/g" |\ + sed -e "s/el[1-9].style.visibility = 'hidden';//g" |\ + sed -e "s/span.c[1-9] {display:none}//g" |\ + sed -e "s/span.c[1-9] {display: none}//g" |\ + sed -e "s/div.c[1-9] {display:none}//g" |\ + sed -e "s/span.c[1-9] {visibility:hidden}//g" > $(DOCUMENT)2.html + mv $(DOCUMENT)2.html $(DOCUMENT).html + # + ebook-convert $(DOCUMENT).html $(DOCUMENT).epub --max-levels 0 --pretty-print --level1-toc //h:h1 --level2-toc //h:h2 --level3-toc //h:h3 --max-toc-links 0 --toc-threshold 3 --chapter-mark pagebreak --page-breaks-before //h:div[@id] --cover $(DOCUMENT_COVER) --extra-css $(TEXTALLIONFOLDER)/includes/epub.css --no-default-epub-cover --no-svg-cover --preserve-cover-aspect-ratio --no-chapters-in-toc + # + ebook-meta $(DOCUMENT).epub --title "$(DOCUMENT_TITLE)" --authors "$(DOCUMENT_AUTHOR)" --tags "$(DOCUMENT_TAGS)" --language $(DOCUMENT_LANGUAGE) --book-producer 'textallion & txt2cyoa - https://bitbucket.org/farvardin/textallion' --comments 'textallion - https://bitbucket.org/farvardin/textallion' --cover $(DOCUMENT_COVER) + + +cyoa-graph: + printf "\n \n \n \n" > graph.txt + -cat $(TEXTALLIONFOLDER)/core/txt2cyoa.t2t $(DOCUMENT).t2t |grep -E "^#|^>|^==|^-|rdv|preproc|postproc" >> graph.txt + -$(TXT2TAGS) --no-headers -o graph2.txt -t txt graph.txt + -echo "digraph G { " > graph.txt + -echo "bgcolor=beige; " >> graph.txt + -echo "node [shape=egg, fillcolor=antiquewhite2, style=filled];" >> graph.txt + -echo "edge [arrowsize=1, fillcolor=gold];" >> graph.txt + -cat graph2.txt | grep -E "\->|;" | sed -e "s/'//g" >> graph.txt + -echo "} " >> graph.txt + -cp graph.txt graph2.txt + #gawk '/->/ { z=$0} /[0-9]+[^->]/ {print z$0}' fichier.txt + # we convert to graphviz using the python script, and remove the extra "0->" before the conf + -cat graph2.txt | $(PYTHONVER) $(TEXTALLIONFOLDER)/includes/lines.py | sed -e "s/0->bgcolor/bgcolor/g" | sed -e "s/0->node/node/g" | sed -e "s/0->edge/edge/g" > graph.txt + -rm graph2.txt + -dot graph.txt -Tpng > $(DOCUMENT)_graph.png + -dot graph.txt -Tsvg > $(DOCUMENT)_graph.svg + -mv graph.txt $(DOCUMENT)_graph.txt + +cyoa-gbl: + printf "$(DOCUMENT)\nPar YourName\n%%date(%Y-%m-%d)\n" > $(DOCUMENT)_gbl.t2t + echo "%!includeconf: txt2cyoa.t2t" >> $(DOCUMENT)_gbl.t2t + cat $(DOCUMENT).gbl | sed -e "s/= \(.*\) =/\n=== \1 ===\n/g" |\ + # sed -e "s/=\(.*\)=/\n=== \1 ===\n/g" | sed -e "s/= \(.*\)=/\n=== \1 ===\n/g" | sed -e "s/=\(.*\) =/\n=== \1 ===\n/g" |\ + sed -e "s/^#\([0-9]*\)# \(.*\)/\n\n== \1 ==\n\n=== \2 ===\n\n/g" | sed -e "s/^>\(.*\)=\([0-9]*\)/- \1, rdv au \2/g" >> $(DOCUMENT)_gbl.t2t + +cyoa-togbl: + cat $(DOCUMENT).t2t | sed -e "s/=== \1 ===/ \(.*\) =/g" |\ + sed -e "s/^#\([0-9]*\)# \(.*\)/\n\n== \1 ==\n\n=== \2 ===\n\n/g" | sed -e "s/^>\(.*\)=\([0-9]*\)/- \1, rdv au \2/g" >> $(DOCUMENT)_export.gbl + +cyoa-twine: cyoa-twee + +cyoa-twee: + # for use with http://gimcrackd.com/etc/src/ + # corrected twee parser at https://github.com/mcdemarco/twee + #echo "du texte et puis à la fin de la ligne, un numéro par exemple 42"|sed -e "s/\([0-9]\+\)$/\[\[\1 \1\]\]/g" + # try to use Unix line feed if possible + echo ":: StoryTitle" > $(DOCUMENT)_export.tw + cat $(DOCUMENT).t2t | perl -pe 's/^\%(.*)\n//' |\ + # remove extra textallion syntax |\ + perl -pe 's/TESTLUCK/\/\/Am I lucky today? (throwing a dice, 5 or 6 means luck)\/\//'|\ + # abbreviations |\ + perl -pe 's/tt (\d+)/turn to [[\1]]/g' |\ + perl -pe 's/rdv au (\d+)/rendez-vous au [[\1]]/g' |\ + perl -pe 's/rendez-vous au (\d+)/rendez-vous au [[\1]]/g' |\ + # replace any ="introduction" by 0 |\ + perl -pe "s/[I-i]ntro["duction"]*/0/g" |\ + perl -pe "s/\=\"[I-i]ntro["duction"]*/0/g" |\ + # italic and underline are the same. Only bold is different |\ + perl -pe "s/\*\*(.*?)\*\*/''\1''/g" |\ + perl -pe "s/\`\`(.*?)\`\`/{{{\1}}}/g" |\ + perl -pe 's/¯/ /g' |\ + perl -pe 's/[ ]*\{.{4}\}[ ]*//g' |\ + perl -pe 's/[ ]*\{.{3}\}[ ]*//g' |\ + perl -pe 's/rdv/rendez-vous/' |\ + # images / [[bla.jpg] 1] est pour image sur premiere page |\ + perl -pe 's/\[\[(.*).jpg] 1\]//' |\ + perl -pe 's/\[\[(.*).png] 1\]//' |\ + perl -pe 's/\[(.*).jpg\]/\[img\[\1.jpg\]\]/' |\ + perl -pe 's/\[(.*).png\]/\[img\[\1.png\]\]/' |\ + # why did we remove media? |\ + #perl -pe 's/..\/media\///' |\ + perl -pe 's/\[(.*).ogg\]//' |\ + # choices and links (\r is for windows newline) \ + perl -pe 's/- (.*?) (\d+?)( *)\n/- \1 [[\2]]\n/g' |\ + perl -pe 's/- (.*?) (\d+?)( *)\r/- \1 [[\2]]/g' |\ + # deprecated: perl -pe 's/\[(\d+) \#(.*?)\]/[[\2|\1]]/g' |\ + perl -pe 's/\[([^\#].*?) \| \#(.*?)\]/[[\1|\2]]/g' |\ + perl -pe 's/\[([^\#].*?)\|\#(.*?)\]/[[\1|\2]]/g' |\ + perl -pe 's/\[([^\#].*?) \#(.*?)\]/[[\1|\2]]/g' |\ + #perl -pe 's/\[(\d+) \#(\d+)\]/[[\1]]/g' |\ + #perl -pe 's/ \#(\d+?) / [[\1]] /g' |\ + #perl -pe 's/ \#(.*?) / [[\1]] /g' |\ + #perl -pe 's/ \#([^ ].*) / [[\1]]/g' |\ + perl -pe 's/\[\#(\d+?)\]/[[\1]]/g' |\ + perl -pe 's/\[\#(.*?)\]/[[\1]]/g' |\ + # notes \ + perl -pe 's/°°(.*?)°°(.*?)°°/ \/\/\2\/\/ /' |\ + # chapters \ + perl -pe 's/== (\d+) ==/:: \1/' |\ + perl -pe 's/==(\d+)==\[(.*)\]/:: \1/' |\ + perl -pe 's/==(\d+)==/:: \2/' |\ + perl -pe 's/== (.*?) ==\[(.*?)\]/:: \2/' |\ + perl -pe 's/== (.*?) ==/:: \1/' |\ + # make twee lists \ + perl -pe 's/^- /* /' |\ + perl -pe 's/^+ /# /' |\ + # \ + perl -pe 's/:: 0/:: Start/' >> $(DOCUMENT)_export.tw + -iconv -f UTF-8 -t ISO-8859-15 $(DOCUMENT)_export.tw -o $(DOCUMENT)_export_iso8859.tw + # export to html + $(PYTHONVER) $(TEXTALLIONFOLDER)/templates/twee/twee -t jonah $(DOCUMENT)_export.tw > $(DOCUMENT)_twee_jonah.html + $(PYTHONVER) $(TEXTALLIONFOLDER)/templates/twee/twee -t sugarcane $(DOCUMENT)_export.tw > $(DOCUMENT)_twee_sugarcane.html + $(PYTHONVER) $(TEXTALLIONFOLDER)/templates/twee/twee -t mobile $(DOCUMENT)_export.tw > $(DOCUMENT)_twee_mobile.html + $(PYTHONVER) $(TEXTALLIONFOLDER)/templates/twee/twee -t sugarcube $(DOCUMENT)_export.tw > $(DOCUMENT)_twee_sugarcube.html + +cyoa-hyena: + # for use with http://www.projectaon.org/staff/jens/ + # specifications: http://www.collectingsmiles.com/wiki/index.php?title=Hyena_AudioGame_specifications + # implementation (player): http://www.freegameengines.org/gamebook-engine/ + printf "#start \nStart the game: Click #page0\n" > $(DOCUMENT)_export.gamebook + cat $(DOCUMENT).t2t | perl -pe 's/^\%(.*)\n//' | perl -pe 's/(\d+)\n/Click #page\1\n/' | perl -pe 's/== (\d+) ==/#page\1/' | perl -pe 's/==(\d+)==\[(.*)\]/page\1/' >> $(DOCUMENT)_export.gamebook + printf "\n#script\n\n" >> $(DOCUMENT)_export.gamebook + +cyoa-choicescript: + # for use with http://www.choiceofgames.com/ + # specifications: http://www.choiceofgames.com/make-your-own-games/choicescript-intro/ + -rm -fr $(DOCUMENT)_choicescript + -mkdir -p $(DOCUMENT)_choicescript/media/ + -cp -fr $(TEXTALLIONFOLDER)/templates/choicescript/* $(DOCUMENT)_choicescript + sed "s/ChoiceScript Game/`sed q $(DOCUMENT).t2t`/" $(TEXTALLIONFOLDER)/templates/choicescript/mygame/index.html > $(DOCUMENT)_choicescript/mygame/index.html + sed "s/ChoiceScript Game/`sed q $(DOCUMENT).t2t`/" $(TEXTALLIONFOLDER)/templates/choicescript/mygame/index_fr.html > $(DOCUMENT)_choicescript/mygame/index_fr.html + printf "*comment Made using ChoiceScript and Textallion.\n" > $(DOCUMENT)_choicescript/mygame/scenes/textallion.txt + #printf "Welcome \n*page_break\n" > choicescript/mygame/scenes/textallion.txt \ + cat $(DOCUMENT).t2t | perl -pe 's/^\%(.*)\n//' | perl -pe 's/^\%(.*)\n//' |\ + #sed can't replace multiple newlines. So we remove them, and add them back later. \ + perl -pe 's/\n/NEWLINE/g' |\ + perl -pe 's/NEWLINENEWLINE- /\n\n*choice\n- /g' |\ + perl -pe 's/NEWLINE/\n/g' |\ + perl -pe 's/(\d+)\n/\1\n\t\t*goto \1\n/' |\ + perl -pe 's/- /\t# \1/' |\ + perl -pe 's/== (\d+) ==/\n*label \1\n\[b\]\1\[\/b\]/g' |\ + perl -pe 's/==(\d+)==\[(.*)\]/*label \1\n\[b\]\1\[\/b\]/g' |\ + perl -pe 's/==(\d+)==/*label \1\n\[b\]\1\[\/b\]/g' |\ + # end of game |\ + perl -pe 's/FIN/FIN\n*ending/' |\ + perl -pe 's/THE END/THE END\n*ending/' |\ + # remove extra textallion syntax |\ + perl -pe 's/TESTLUCK/\[i\]Am I lucky today? (throwing a dice, 5 or 6 means luck)\[\/i\]/'|\ + perl -pe 's/¯/ /g' |\ + perl -pe 's/[ ]*\{.{4}\}[ ]*//g' |\ + perl -pe 's/[ ]*\{.{3}\}[ ]*//g' |\ + perl -pe 's|\/\/(.*)\/\/|\[i\]\1\[/i\]|' |\ + perl -pe 's/\[\[(.*).jpg] 1\]/*image \1.jpg/' |\ + perl -pe 's/\[\[(.*).png] 1\]/*image \1.jpg/' |\ + perl -pe 's/\[(.*).jpg\]/*image \1.jpg/' |\ + perl -pe 's/\[(.*).jpg\]/*image \1.jpg/' |\ + perl -pe 's/..\/media\///' |\ + perl -pe 's/\[(.*).ogg\]//' |\ + perl -pe 's/rdv/rendez-vous/' >> $(DOCUMENT)_choicescript/mygame/scenes/textallion.txt + -cp *.jpg $(DOCUMENT)_choicescript/mygame/ + -cp *.png $(DOCUMENT)_choicescript/mygame/ + -cp ../media/*.jpg $(DOCUMENT)_choicescript/mygame/ + -cp ../media/*.png $(DOCUMENT)_choicescript/mygame/ + + +cyoa-cs: cyoa-choicescript + + +cyoa-undum: + # for use with http://www.undum.com/ + # pb with undum if 1 extra line break in the code + -rm -fr $(DOCUMENT)_undum + -mkdir -p $(DOCUMENT)_undum/media/ + -cp -fr $(TEXTALLIONFOLDER)/templates/undum_media/* $(DOCUMENT)_undum/media/ + -cat $(TEXTALLIONFOLDER)/templates/undum.html > $(DOCUMENT)_undum/$(DOCUMENT)_undum.html + -cat $(DOCUMENT).t2t | perl -pe 's/^\%(.*)\n//' |\ + # remove 1 empty useless image \ + perl -pe 's/\{->--\}\[\[(.*)\] 1\]\{-<--\}//' |\ + # remove 3 first lines of the t2t doc \ + sed '1,4d' |\ + perl -pe 's/^\%(.*)\n//' |\ + # remove textallion specific syntax (and later also) \ + perl -pe 's/[ ]*\{.{4}\}[ ]*//g' |\ + perl -pe 's/[ ]*\{.{3}\}[ ]*//g' |\ + perl -pe 's/\{/NEWLINE/g' |\ + #sed can't replace multiple newlines. So we remove them, and add them back later. |\ + perl -pe 's/\n/NEWLINE/g' |\ + perl -pe "s/\'/APOSTROPHE/g" |\ + perl -pe 's/NEWLINENEWLINE- (.*?)(\d+)NEWLINE/<\/p>APOSTROPH2\n\+ APOSTROPH2